{"version":3,"file":"app.js","mappings":"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","sources":["webpack://cancerdk/./src/foundation/js/animatedButtonHandler.js","webpack://cancerdk/./src/foundation/js/formFileUploads.js","webpack://cancerdk/./node_modules/tinymce/skins/ui/oxide/skin.css","webpack://cancerdk/./node_modules/css-loader/dist/runtime/api.js","webpack://cancerdk/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://cancerdk/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://cancerdk/./node_modules/mark.js/dist/mark.js","webpack://cancerdk/./node_modules/tinymce/icons/default/icons.js","webpack://cancerdk/./node_modules/tinymce/icons/default/index.js","webpack://cancerdk/./node_modules/tinymce/models/dom/model.js","webpack://cancerdk/./node_modules/tinymce/plugins/autolink/index.js","webpack://cancerdk/./node_modules/tinymce/plugins/autolink/plugin.js","webpack://cancerdk/./node_modules/tinymce/plugins/autoresize/index.js","webpack://cancerdk/./node_modules/tinymce/plugins/autoresize/plugin.js","webpack://cancerdk/./node_modules/tinymce/plugins/emoticons/index.js","webpack://cancerdk/./node_modules/tinymce/plugins/emoticons/js/emojis.js","webpack://cancerdk/./node_modules/tinymce/plugins/emoticons/plugin.js","webpack://cancerdk/./node_modules/tinymce/plugins/lists/index.js","webpack://cancerdk/./node_modules/tinymce/plugins/lists/plugin.js","webpack://cancerdk/./node_modules/tinymce/themes/silver/index.js","webpack://cancerdk/./node_modules/tinymce/themes/silver/theme.js","webpack://cancerdk/./node_modules/tinymce/tinymce.js","webpack://cancerdk/./node_modules/vue-loader/dist/exportHelper.js","webpack://cancerdk/webpack/bootstrap","webpack://cancerdk/webpack/runtime/compat get default export","webpack://cancerdk/webpack/runtime/define property getters","webpack://cancerdk/webpack/runtime/global","webpack://cancerdk/webpack/runtime/hasOwnProperty shorthand","webpack://cancerdk/webpack/runtime/make namespace object","webpack://cancerdk/webpack/runtime/jsonp chunk loading","webpack://cancerdk/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","webpack://cancerdk/./node_modules/vue/dist/vue.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://cancerdk/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://cancerdk/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://cancerdk/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://cancerdk/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://cancerdk/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://cancerdk/./src/foundation/js/pageOverlayOpeningCallback.js","webpack://cancerdk/./src/foundation/js/pageOverlayClosingCallback.js","webpack://cancerdk/./src/foundation/js/isObjectNotNullOrEmpty.js","webpack://cancerdk/./src/foundation/js/api.js","webpack://cancerdk/./src/store/modules/store.main.js","webpack://cancerdk/./src/store/modules/store.labels.js","webpack://cancerdk/./src/foundation/js/deepClone.js","webpack://cancerdk/./src/store/modules/store.search.js","webpack://cancerdk/./src/store/modules/store.dictionary.js","webpack://cancerdk/./src/store/modules/store.events.js","webpack://cancerdk/./src/store/modules/store.fundraising.js","webpack://cancerdk/./src/store/modules/store.donation.js","webpack://cancerdk/./src/store/modules/store.basket.js","webpack://cancerdk/./src/store/modules/store.checkOut.js","webpack://cancerdk/./src/store/modules/store.forum.js","webpack://cancerdk/./src/store/modules/store.frivillige.js","webpack://cancerdk/./src/foundation/js/stafet/getFieldValue.js","webpack://cancerdk/./src/store/modules/store.stafet.js","webpack://cancerdk/./src/store/modules/store.stafetRoundCounter.js","webpack://cancerdk/./src/store/modules/store.frivilligprofil.js","webpack://cancerdk/./src/store/modules/store.lottery.js","webpack://cancerdk/./src/store/modules/store.mitid.js","webpack://cancerdk/./src/store/modules/store.frivilligjob.js","webpack://cancerdk/./src/store/index.js","webpack://cancerdk/./src/store/modules/store.forms.js","webpack://cancerdk/./src/components/FactBox/FactBox.options.js","webpack://cancerdk/./src/components/FactBox/FactBox.init.js","webpack://cancerdk/./src/components/SecondaryArticleSpots/SecondaryArticleSpots.vue","webpack://cancerdk/./src/components/ContentCarousel/ContentCarousel.vue","webpack://cancerdk/./node_modules/@glidejs/glide/dist/glide.esm.js","webpack://cancerdk/./src/components/ContentCarousel/cards/SliderCardBasic.vue","webpack://cancerdk/./src/components/ContentCarousel/cards/SliderCardBasic.vue?2105","webpack://cancerdk/./src/components/ContentCarousel/cards/ActivitySliderCard.vue","webpack://cancerdk/./src/components/ContentCarousel/cards/ActivitySliderCard.vue?e0b8","webpack://cancerdk/./src/components/PodcastSliderCard/PodcastSliderCard.vue","webpack://cancerdk/./src/components/PodcastSliderCard/PodcastSliderCard.vue?c9eb","webpack://cancerdk/./src/components/CaseCard/CaseCard.vue","webpack://cancerdk/./src/components/CaseCard/CaseCard.options.js","webpack://cancerdk/./src/components/CaseCard/CaseCard.vue?b09c","webpack://cancerdk/./src/components/ReportCard/ReportCard.vue","webpack://cancerdk/./src/foundation/js/imageTransformation/imageTransform.js","webpack://cancerdk/./src/foundation/js/imageTransformation/imagePresets.js","webpack://cancerdk/./src/components/ReportCard/ReportCard.vue?1c9a","webpack://cancerdk/./src/components/ThemeCard/ThemeCard.vue","webpack://cancerdk/./src/components/ThemeCard/ThemeCard.options.js","webpack://cancerdk/./src/components/ThemeCard/ThemeCard.vue?f032","webpack://cancerdk/./src/components/ContentCarousel/ContentCarousel.options.js","webpack://cancerdk/./src/components/ContentCarousel/methods/configCaseCarousel.js","webpack://cancerdk/./src/components/ContentCarousel/methods/configPodcastCarousel.js","webpack://cancerdk/./src/components/ContentCarousel/methods/configFeaturedGroups.js","webpack://cancerdk/./src/components/ContentCarousel/methods/configByViewport.js","webpack://cancerdk/./src/components/ContentCarousel/ContentCarousel.vue?9e8f","webpack://cancerdk/./src/components/SecondaryArticleSpots/SecondaryArticleSpots.options.js","webpack://cancerdk/./src/components/SecondaryArticleSpots/SecondaryArticleSpots.vue?391d","webpack://cancerdk/./src/components/TooltipComponent/TooltipComponent.vue","webpack://cancerdk/./src/components/TooltipComponent/TooltipComponent.options.js","webpack://cancerdk/./src/components/TooltipComponent/TooltipComponent.vue?9113","webpack://cancerdk/./src/components/TooltipComponent/TooltipComponent.init.js","webpack://cancerdk/./src/components/Accordion/Accordion.options.js","webpack://cancerdk/./src/components/Accordion/Accordion.init.js","webpack://cancerdk/./src/components/ActionResponseBox/ActionResponseBox.vue","webpack://cancerdk/./src/components/ActionResponseBox/ActionResponseBox.options.js","webpack://cancerdk/./src/components/ActionResponseBox/ActionResponseBox.vue?2919","webpack://cancerdk/./src/components/ActiveGroups/ActiveGroups.vue","webpack://cancerdk/./src/components/GroupDetails/GroupDetails.vue","webpack://cancerdk/./src/components/GroupDetails/GroupDetails.options.js","webpack://cancerdk/./src/components/GroupDetails/GroupDetails.vue?8536","webpack://cancerdk/./src/components/SpotCard/SpotCard.vue","webpack://cancerdk/./src/components/SpotCard/SpotCard.options.js","webpack://cancerdk/./src/components/SpotCard/SpotCard.vue?6b5c","webpack://cancerdk/./src/components/SpotCardGrid/SpotCardGrid.vue","webpack://cancerdk/./src/components/SpotCardGrid/SpotCardGrid.options.js","webpack://cancerdk/./src/components/SpotCardGrid/SpotCardGrid.vue?1091","webpack://cancerdk/./src/components/ActiveGroups/ActiveGroups.options.js","webpack://cancerdk/./src/components/ActiveGroups/ActiveGroups.vue?c883","webpack://cancerdk/./src/components/ActiveRoleListCard/ActiveRoleListCard.vue","webpack://cancerdk/./src/components/ActiveRoleListCard/ActiveRoleListCard.options.js","webpack://cancerdk/./src/components/ActiveRoleListCard/ActiveRoleListCard.vue?9f5b","webpack://cancerdk/./src/components/ActiveRolesList/ActiveRolesList.vue","webpack://cancerdk/./src/components/ActiveRolesList/ActiveRolesList.options.js","webpack://cancerdk/./src/components/ActiveRolesList/ActiveRolesList.vue?f52f","webpack://cancerdk/./src/components/ActivityCard/ActivityCard.vue","webpack://cancerdk/./src/foundation/js/getLabel.js","webpack://cancerdk/./src/components/ActivityCard/ActivityCard.options.js","webpack://cancerdk/./src/components/ActivityCard/ActivityCard.vue?8fac","webpack://cancerdk/./src/components/AdvancedRadio/AdvancedRadio.vue","webpack://cancerdk/./src/foundation/js/formFieldFormBinder.js","webpack://cancerdk/./src/foundation/js/formFieldCommonOptions.js","webpack://cancerdk/./src/components/AdvancedRadio/AdvancedRadio.options.js","webpack://cancerdk/./src/components/AdvancedRadio/AdvancedRadio.vue?92c4","webpack://cancerdk/./src/components/AmountSelector/AmountSelector.vue","webpack://cancerdk/./src/components/AmountSelector/AmountSelector.options.js","webpack://cancerdk/./src/components/AmountSelector/AmountSelector.vue?d0b6","webpack://cancerdk/./src/components/ArticleAnchors/ArticleAnchors.vue","webpack://cancerdk/./src/components/ArticleAnchors/ArticleAnchors.options.js","webpack://cancerdk/./src/components/ArticleAnchors/ArticleAnchors.vue?1961","webpack://cancerdk/./src/components/AttachmentsEditor/AttachmentsEditor.vue","webpack://cancerdk/./src/foundation/js/utils/communityAttachmentUtils.js","webpack://cancerdk/./src/components/AttachmentsEditor/AttachmentsEditor.options.js","webpack://cancerdk/./src/components/AttachmentsEditor/AttachmentsEditor.vue?0df6","webpack://cancerdk/./src/components/AttachmentsViewer/AttachmentsViewer.vue","webpack://cancerdk/./src/components/AttachmentsViewer/AttachmentsViewer.options.js","webpack://cancerdk/./src/components/AttachmentsViewer/AttachmentsViewer.vue?4ef4","webpack://cancerdk/./src/foundation/js/debounce.js","webpack://cancerdk/./src/components/Basket/Basket.vue","webpack://cancerdk/./src/components/BasketAside/BasketAside.vue","webpack://cancerdk/./src/components/BasketCard/BasketCard.vue","webpack://cancerdk/./src/components/BasketCard/BasketCard.options.js","webpack://cancerdk/./src/components/BasketCard/BasketCard.vue?bdc8","webpack://cancerdk/./src/components/BasketAside/BasketAside.options.js","webpack://cancerdk/./src/components/BasketAside/BasketAside.vue?eb97","webpack://cancerdk/./src/components/Basket/Basket.options.js","webpack://cancerdk/./src/foundation/js/interpolate.js","webpack://cancerdk/./src/components/Basket/Basket.vue?35af","webpack://cancerdk/./src/components/BreadCrumb/BreadCrumb.options.js","webpack://cancerdk/./src/components/BreadCrumb/BreadCrumb.init.js","webpack://cancerdk/./src/components/BurgerMenu/BurgerMenu.init.js","webpack://cancerdk/./src/components/BuySection/BuySection.vue","webpack://cancerdk/./src/components/BuySection/BuySection.options.js","webpack://cancerdk/./src/components/BuySection/BuySection.vue?7fd9","webpack://cancerdk/./src/components/CaseCarousel/CaseCarousel.vue","webpack://cancerdk/./src/components/CaseCarousel/CaseCarousel.options.js","webpack://cancerdk/./src/components/CaseCarousel/CaseCarousel.vue?c92a","webpack://cancerdk/./src/components/CaseModule/CaseModule.options.js","webpack://cancerdk/./src/components/CategoryPicker/CategoryPicker.options.js","webpack://cancerdk/./src/components/CategoryPicker/CategoryPicker.vue","webpack://cancerdk/./src/components/CategoryPicker/CategoryPicker.vue?31fe","webpack://cancerdk/./src/components/ChangesSaved/ChangesSaved.vue","webpack://cancerdk/./src/components/PageOverlay/methods/onTransitionendCallback.js","webpack://cancerdk/./src/components/ChangesSaved/ChangesSaved.options.js","webpack://cancerdk/./src/components/ChangesSaved/ChangesSaved.vue?d161","webpack://cancerdk/./src/components/CheckoutContent/CheckoutContent.vue","webpack://cancerdk/./src/components/CheckoutStepOne/CheckoutStepOne.vue","webpack://cancerdk/./src/foundation/js/inputValidators/nonEmptyStringValidator.js","webpack://cancerdk/./src/foundation/js/inputValidators/emailValidator.js","webpack://cancerdk/./src/foundation/js/inputValidators/phoneValidator.js","webpack://cancerdk/./src/foundation/js/inputValidators/nameValidator.js","webpack://cancerdk/./src/foundation/js/inputValidators/textAreaValidator.js","webpack://cancerdk/./src/foundation/js/inputValidators/companyNameValidator.js","webpack://cancerdk/./src/foundation/js/inputValidators/cvrValidator.js","webpack://cancerdk/./src/components/FormInputTextField/FormInputTextField.vue","webpack://cancerdk/./src/components/FormInputTextField/FormInputTextField.options.js","webpack://cancerdk/./src/components/FormInputTextField/FormInputTextField.vue?3cb6","webpack://cancerdk/./src/components/FormAddressField/FormAddressField.vue","webpack://cancerdk/./node_modules/dawa-autocomplete2/dist/js/dawa-autocomplete2.es.js","webpack://cancerdk/./src/components/FormAddressField/FormAddressField.options.js","webpack://cancerdk/./src/components/FormAddressField/FormAddressField.vue?ecb9","webpack://cancerdk/./src/components/CheckoutContent/CheckoutScrollToTop.js","webpack://cancerdk/./src/components/CheckoutStepOne/CheckoutStepOne.options.js","webpack://cancerdk/./src/foundation/js/inputValidators/eanValidator.js","webpack://cancerdk/./src/components/CheckoutStepOne/CheckoutStepOne.vue?866b","webpack://cancerdk/./src/components/CheckoutStepTwo/CheckoutStepTwo.vue","webpack://cancerdk/./src/components/DeliveryCard/DeliveryCard.vue","webpack://cancerdk/./src/components/DeliveryCard/DeliveryCard.options.js","webpack://cancerdk/./src/components/DeliveryCard/DeliveryCard.vue?52ce","webpack://cancerdk/./src/components/DeliveryAddress/DeliveryAddress.vue","webpack://cancerdk/./src/components/DeliveryAddress/DeliveryAddress.options.js","webpack://cancerdk/./src/components/DeliveryAddress/DeliveryAddress.vue?219a","webpack://cancerdk/./src/components/PickUpAddress/PickUpAddress.vue","webpack://cancerdk/./src/components/PickUpAddress/PickUpAddress.options.js","webpack://cancerdk/./src/components/PickUpAddress/PickUpAddress.vue?e97a","webpack://cancerdk/./src/components/CheckoutStepTwo/CheckoutStepTwo.options.js","webpack://cancerdk/./src/components/CheckoutStepTwo/CheckoutStepTwo.vue?0b00","webpack://cancerdk/./src/components/CheckoutStepThree/CheckoutStepThree.vue","webpack://cancerdk/./src/components/WebshopPaymentSelector/WebshopPaymentSelector.vue","webpack://cancerdk/./src/components/WebshopPaymentSelector/WebshopPaymentSelector.options.js","webpack://cancerdk/./src/components/WebshopPaymentSelector/WebshopPaymentSelector.vue?eeca","webpack://cancerdk/./src/components/CheckoutStepThree/CheckoutStepThree.options.js","webpack://cancerdk/./src/components/CheckoutStepThree/CheckoutStepThree.vue?3b2e","webpack://cancerdk/./src/components/CheckoutContent/CheckoutContent.options.js","webpack://cancerdk/./src/components/CheckoutContent/CheckoutContent.vue?ac32","webpack://cancerdk/./src/components/CheckoutHeader/CheckoutHeader.options.js","webpack://cancerdk/./src/components/CheckoutHeader/CheckoutHeader.init.js","webpack://cancerdk/./src/components/ColorPreview/ColorPreview.vue","webpack://cancerdk/./src/components/ColorPreview/ColorPreview.options.js","webpack://cancerdk/./src/components/ColorPreview/ColorPreview.vue?f52b","webpack://cancerdk/./src/components/ColorPreview/ColorPreview.init.js","webpack://cancerdk/./src/components/ConfirmChanges/ConfirmChanges.vue","webpack://cancerdk/./src/components/ConfirmChanges/ConfirmChanges.options.js","webpack://cancerdk/./src/components/ConfirmChanges/ConfirmChanges.vue?dc54","webpack://cancerdk/./src/components/ConfirmDeleteOverlay/ConfirmDeleteOverlay.vue","webpack://cancerdk/./src/components/ConfirmDeleteOverlay/ConfirmDeleteOverlay.options.js","webpack://cancerdk/./src/components/ConfirmDeleteOverlay/ConfirmDeleteOverlay.vue?2667","webpack://cancerdk/./src/components/ConfirmDeleteProfile/ConfirmDeleteProfile.vue","webpack://cancerdk/./src/components/ConfirmDeleteProfile/ConfirmDeleteProfile.options.js","webpack://cancerdk/./src/components/ConfirmDeleteProfile/ConfirmDeleteProfile.vue?9664","webpack://cancerdk/./src/components/ContactBanner/ContactBanner.options.js","webpack://cancerdk/./src/components/ContributionSelector/ContributionSelector.options.js","webpack://cancerdk/./src/components/CreateCancerForumProfile/CreateCancerForumProfile.vue","webpack://cancerdk/./src/components/FormCheckbox/FormCheckbox.vue","webpack://cancerdk/./src/components/FormCheckbox/FormCheckbox.options.js","webpack://cancerdk/./src/components/FormCheckbox/FormCheckbox.vue?887c","webpack://cancerdk/./src/components/CreateCancerForumProfile/CreateCancerForumProfile.options.js","webpack://cancerdk/./src/components/CreateCancerForumProfile/CreateCancerForumProfile.vue?c76f","webpack://cancerdk/./src/components/CreateEvent/CreateEvent.vue","webpack://cancerdk/./src/components/FormInputDropdown/FormInputDropdown.vue","webpack://cancerdk/./src/components/FormInputDropdown/FormInputDropdown.options.js","webpack://cancerdk/./src/components/FormInputDropdown/FormInputDropdown.vue?3f92","webpack://cancerdk/./src/components/FormRadioGroup/FormRadioGroup.vue","webpack://cancerdk/./src/components/FormRadioGroup/FormRadioGroup.options.js","webpack://cancerdk/./src/components/FormRadioGroup/FormRadioGroup.vue?f53b","webpack://cancerdk/./src/foundation/js/inputValidators/isBoolean.js","webpack://cancerdk/./src/foundation/js/inputValidators/postalCodeValidator.js","webpack://cancerdk/./src/components/CreateEvent/config/fieldsConfig.js","webpack://cancerdk/./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/ScriptLoader.js","webpack://cancerdk/./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/Utils.js","webpack://cancerdk/./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/TinyMCE.js","webpack://cancerdk/./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/EditorPropTypes.js","webpack://cancerdk/./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js","webpack://cancerdk/./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/index.js","webpack://cancerdk/./src/components/CreateEvent/CreateEvent.options.js","webpack://cancerdk/./src/components/CreateEvent/CreateEvent.vue?80d6","webpack://cancerdk/./src/foundation/js/utils/handleComponentProps.js","webpack://cancerdk/./src/components/CreateFolderOverlay/CreateFolderOverlay.vue","webpack://cancerdk/./src/components/CreateFolderOverlay/CreateFolderOverlay.options.js","webpack://cancerdk/./src/components/CreateFolderOverlay/CreateFolderOverlay.vue?485b","webpack://cancerdk/./src/components/CreateFrivilligeProfile/CreateFrivilligeProfile.vue","webpack://cancerdk/./src/components/FormInputNameField/FormInputNameField.vue","webpack://cancerdk/./src/components/FormInputNameField/FormInputNameField.options.js","webpack://cancerdk/./src/components/FormInputNameField/FormInputNameField.vue?a3e9","webpack://cancerdk/./src/components/FormInputEmailField/FormInputEmailField.vue","webpack://cancerdk/./src/components/FormInputEmailField/FormInputEmailField.options.js","webpack://cancerdk/./src/components/FormInputEmailField/FormInputEmailField.vue?106d","webpack://cancerdk/./src/components/FormInputPhoneField/FormInputPhoneField.vue","webpack://cancerdk/./src/components/FormInputPhoneField/FormInputPhoneField.options.js","webpack://cancerdk/./src/components/FormInputPhoneField/FormInputPhoneField.vue?df98","webpack://cancerdk/./src/components/CreateFrivilligeProfile/CreateFrivilligeProfile.options.js","webpack://cancerdk/./src/components/CreateFrivilligeProfile/CreateFrivilligeProfile.vue?a843","webpack://cancerdk/./src/components/CreateFrivilligJob/CreateFrivilligJob.vue","webpack://cancerdk/./src/components/FormInputTextarea/FormInputTextarea.vue","webpack://cancerdk/./src/components/FormInputTextarea/FormInputTextarea.options.js","webpack://cancerdk/./src/components/FormInputTextarea/FormInputTextarea.vue?83e1","webpack://cancerdk/./src/components/CreateFrivilligJob/CreateFrivilligJob.options.js","webpack://cancerdk/./src/components/CreateFrivilligJob/CreateFrivilligJob.vue?febb","webpack://cancerdk/./src/components/CreateGallery/CreateGallery.vue","webpack://cancerdk/./src/components/CreateGallery/CreateGallery.options.js","webpack://cancerdk/./src/components/CreateGallery/CreateGallery.vue?358e","webpack://cancerdk/./src/components/CreateNewFileOverlay/CreateNewFileOverlay.vue","webpack://cancerdk/./src/components/CreateNewFileOverlay/CreateNewFileOverlay.options.js","webpack://cancerdk/./src/components/CreateNewFileOverlay/CreateNewFileOverlay.vue?b24e","webpack://cancerdk/./src/components/CreatePost/CreatePost.vue","webpack://cancerdk/./src/components/CreatePost/CreatePost.options.js","webpack://cancerdk/./src/components/CreatePost/CreatePost.vue?cab2","webpack://cancerdk/./src/components/CTABox/CTABox.vue","webpack://cancerdk/./src/components/CTABox/CTABox.options.js","webpack://cancerdk/./src/components/CTABox/CTABox.vue?5387","webpack://cancerdk/./src/components/CTABox/CTABox.init.js","webpack://cancerdk/./src/components/DeleteCancerProfileModal/DeleteCancerProfileModal.vue","webpack://cancerdk/./src/components/DeleteCancerProfileModal/DeleteCancerProfileModal.options.js","webpack://cancerdk/./src/components/DeleteCancerProfileModal/DeleteCancerProfileModal.vue?e4a0","webpack://cancerdk/./src/components/DeleteCommentOverlay/DeleteCommentOverlay.vue","webpack://cancerdk/./src/components/DeleteCommentOverlay/DeleteCommentOverlay.options.js","webpack://cancerdk/./src/components/DeleteCommentOverlay/DeleteCommentOverlay.vue?056d","webpack://cancerdk/./src/components/DeleteEventModal/DeleteEventModal.vue","webpack://cancerdk/./src/components/DeleteEventModal/DeleteEventModal.options.js","webpack://cancerdk/./src/components/DeleteEventModal/DeleteEventModal.vue?fa99","webpack://cancerdk/./src/components/DeleteFrivilligjobOverlay/DeleteFrivilligjobOverlay.vue","webpack://cancerdk/./src/components/DeleteFrivilligjobOverlay/DeleteFrivilligjobOverlay.options.js","webpack://cancerdk/./src/components/DeleteFrivilligjobOverlay/DeleteFrivilligjobOverlay.vue?3b51","webpack://cancerdk/./src/components/DeletePostOverlay/DeletePostOverlay.vue","webpack://cancerdk/./src/components/DeletePostOverlay/DeletePostOverlay.options.js","webpack://cancerdk/./src/components/DeletePostOverlay/DeletePostOverlay.vue?aa55","webpack://cancerdk/./src/components/DeleteRoleOverlay/DeleteRoleOverlay.vue","webpack://cancerdk/./src/components/DeleteRoleOverlay/DeleteRoleOverlay.options.js","webpack://cancerdk/./src/components/DeleteRoleOverlay/DeleteRoleOverlay.vue?b433","webpack://cancerdk/./src/components/DictionaryWord/DictionaryWord.vue","webpack://cancerdk/./src/components/DictionaryWord/DictionaryWord.options.js","webpack://cancerdk/./src/components/DictionaryWord/DictionaryWord.vue?9774","webpack://cancerdk/./src/components/Dictionary/Dictionary.options.js","webpack://cancerdk/./src/components/Dictionary/Dictionary.vue","webpack://cancerdk/./src/components/Dictionary/Dictionary.vue?d5eb","webpack://cancerdk/./src/components/Dictionary/Dictionary.init.js","webpack://cancerdk/./src/components/DictionaryList/DictionaryList.vue","webpack://cancerdk/./src/components/DictionaryList/DictionaryList.options.js","webpack://cancerdk/./src/components/DictionaryList/DictionaryList.vue?1d4a","webpack://cancerdk/./src/components/DirectMessageNavigation/DirectMessageNavigation.vue","webpack://cancerdk/./src/components/DirectMessageNavigation/DirectMessageNavigation.options.js","webpack://cancerdk/./src/components/DirectMessageNavigation/DirectMessageNavigation.vue?cdd2","webpack://cancerdk/./src/components/DirectMessagesContent/DirectMessagesContent.vue","webpack://cancerdk/./src/components/DirectMessageThread/DirectMessageThread.vue","webpack://cancerdk/./src/components/DirectMessageThread/DirectMessageThread.options.js","webpack://cancerdk/./src/components/DirectMessageThread/DirectMessageThread.vue?f288","webpack://cancerdk/./src/components/DirectMessagesContent/DirectMessagesContent.options.js","webpack://cancerdk/./src/components/DirectMessagesContent/DirectMessagesContent.vue?9f1b","webpack://cancerdk/./src/components/DocumentAndFolderList/DocumentAndFolderList.vue","webpack://cancerdk/./src/components/FileListCard/FileListCard.vue","webpack://cancerdk/./src/components/FileListCard/FileListCard.options.js","webpack://cancerdk/./src/components/FileListCard/FileListCard.vue?48a7","webpack://cancerdk/./src/components/DocumentAndFolderList/DocumentAndFolderList.options.js","webpack://cancerdk/./src/components/DocumentAndFolderList/DocumentAndFolderList.vue?9fa8","webpack://cancerdk/./src/components/DonationAmount/DonationAmount.options.js","webpack://cancerdk/./src/components/DonationCard/DonationCard.vue","webpack://cancerdk/./src/components/DonationCard/DonationCard.options.js","webpack://cancerdk/./src/components/DonationCard/DonationCard.vue?5be9","webpack://cancerdk/./src/components/DonationReceiptOverlay/DonationReceiptOverlay.vue","webpack://cancerdk/./src/components/DonationReceiptOverlay/DonationReceiptOverlay.options.js","webpack://cancerdk/./src/components/DonationReceiptOverlay/DonationReceiptOverlay.vue?e3df","webpack://cancerdk/./src/components/DropdownWithTags/DropdownWithTags.vue","webpack://cancerdk/./src/components/DropdownWithTags/DropdownWithTags.options.js","webpack://cancerdk/./src/components/DropdownWithTags/DropdownWithTags.vue?666b","webpack://cancerdk/./src/components/EditFrivilligProfile/EditFrivilligProfile.vue","webpack://cancerdk/./src/components/ProfilePicture/ProfilePicture.vue","webpack://cancerdk/./src/components/ProfilePicture/ProfilePicture.options.js","webpack://cancerdk/./src/components/ProfilePicture/ProfilePicture.vue?cfa5","webpack://cancerdk/./src/components/EditFrivilligProfile/EditFrivilligProfile.options.js","webpack://cancerdk/./src/components/EditFrivilligProfile/EditFrivilligProfile.vue?161e","webpack://cancerdk/./src/components/FeaturedGroups/FeaturedGroups.vue","webpack://cancerdk/./src/components/FeaturedGroups/FeaturedGroups.options.js","webpack://cancerdk/./src/components/FeaturedGroups/FeaturedGroups.vue?0d3f","webpack://cancerdk/./src/components/FeaturedPostSpotCard/FeaturedPostSpotCard.vue","webpack://cancerdk/./src/components/FeaturedPostSpotCard/FeaturedPostSpotCard.options.js","webpack://cancerdk/./src/components/FeaturedPostSpotCard/FeaturedPostSpotCard.vue?bd2e","webpack://cancerdk/./src/components/FeatureNavigationTeam/FeatureNavigationTeam.options.js","webpack://cancerdk/./src/components/FlowEditModal/FlowEditModal.vue","webpack://cancerdk/./src/components/FlowEditModal/FlowEditModal.options.js","webpack://cancerdk/./src/components/FlowEditModal/FlowEditModal.vue?cee4","webpack://cancerdk/./src/components/FlowHeader/FlowHeader.options.js","webpack://cancerdk/./src/components/FormAddressFieldGroup/FormAddressFieldGroup.options.js","webpack://cancerdk/./src/components/FormInputCprField/FormInputCprField.vue","webpack://cancerdk/./src/foundation/js/inputValidators/cprValidator.js","webpack://cancerdk/./src/components/FormInputCprField/FormInputCprField.options.js","webpack://cancerdk/./src/components/FormInputCprField/FormInputCprField.vue?7514","webpack://cancerdk/./src/components/FormInputCvrField/FormInputCvrField.vue","webpack://cancerdk/./src/components/FormInputCvrField/FormInputCvrField.options.js","webpack://cancerdk/./src/components/FormInputCvrField/FormInputCvrField.vue?d820","webpack://cancerdk/./src/components/FormInputDateField/FormInputDateField.vue","webpack://cancerdk/./src/components/FormInputDateField/FormInputDateField.options.js","webpack://cancerdk/./src/components/FormInputDateField/FormInputDateField.vue?3419","webpack://cancerdk/./src/components/FormStepSubmitting/FormStepSubmitting.vue","webpack://cancerdk/./src/foundation/js/configurations/_stafetCommonStepsProps.js","webpack://cancerdk/./src/components/FormStepSubmitting/FormStepSubmitting.options.js","webpack://cancerdk/./src/components/FormStepSubmitting/FormStepSubmitting.vue?7796","webpack://cancerdk/./src/components/FormStepZero/FormStepZero.vue","webpack://cancerdk/./src/components/FormStepZero/FormStepZero.options.js","webpack://cancerdk/./src/components/FormStepZero/FormStepZero.vue?1343","webpack://cancerdk/./src/components/ForumEditProfile/ForumEditProfile.vue","webpack://cancerdk/./src/components/ForumEditProfile/ForumEditProfile.options.js","webpack://cancerdk/./src/components/ForumEditProfile/ForumEditProfile.vue?febd","webpack://cancerdk/./src/components/FrivilligeCheckoutContent/FrivilligeCheckoutContent.vue","webpack://cancerdk/./src/components/FrivilligeCheckoutStepOne/FrivilligeCheckoutStepOne.vue","webpack://cancerdk/./src/components/FrivilligeCheckoutStepOne/FrivilligeCheckoutStepOne.options.js","webpack://cancerdk/./src/components/FrivilligeCheckoutStepOne/FrivilligeCheckoutStepOne.vue?ea29","webpack://cancerdk/./src/components/FrivilligeCheckoutStepTwo/FrivilligeCheckoutStepTwo.vue","webpack://cancerdk/./src/foundation/js/utils/dateUtils.js","webpack://cancerdk/./src/components/FrivilligeCheckoutStepTwo/FrivilligeCheckoutStepTwo.options.js","webpack://cancerdk/./src/components/FrivilligeCheckoutStepTwo/FrivilligeCheckoutStepTwo.vue?8115","webpack://cancerdk/./src/components/FrivilligeCheckoutContent/FrivilligeCheckoutContent.options.js","webpack://cancerdk/./src/components/FrivilligeCheckoutContent/FrivilligeCheckoutContent.vue?9fdc","webpack://cancerdk/./src/components/FrivilligePostsList/FrivilligePostsList.vue","webpack://cancerdk/./src/components/GroupPost/GroupPost.vue","webpack://cancerdk/./src/components/GroupPost/GroupPost.options.js","webpack://cancerdk/./src/components/GroupPost/GroupPost.vue?b6fa","webpack://cancerdk/./src/components/FrivilligePostsList/FrivilligePostsList.options.js","webpack://cancerdk/./src/components/FrivilligePostsList/FrivilligePostsList.vue?7328","webpack://cancerdk/./src/components/FrivilligeShopWrongRoleModal/FrivilligeShopWrongRoleModal.vue","webpack://cancerdk/./src/components/FrivilligeShopWrongRoleModal/FrivilligeShopWrongRoleModal.options.js","webpack://cancerdk/./src/components/FrivilligeShopWrongRoleModal/FrivilligeShopWrongRoleModal.vue?de6b","webpack://cancerdk/./src/components/FrivilligGroupHero/FrivilligGroupHero.options.js","webpack://cancerdk/./src/components/FrivilligjobAside/FrivilligjobAside.options.js","webpack://cancerdk/./src/components/FrivilligjobCard/FrivilligjobCard.vue","webpack://cancerdk/./src/components/FrivilligjobCard/FrivilligjobCard.options.js","webpack://cancerdk/./src/components/FrivilligjobCard/FrivilligjobCard.vue?6b66","webpack://cancerdk/./src/foundation/js/addScrollCallback.js","webpack://cancerdk/./src/components/FullscreenMedia/FullscreenMedia.init.js","webpack://cancerdk/./src/components/FundraiseForm/FundraiseForm.vue","webpack://cancerdk/./src/foundation/js/inputValidators/scrollToFirstError.js","webpack://cancerdk/./src/components/FundraiseForm/FundraiseForm.options.js","webpack://cancerdk/./src/components/FundraiseForm/FundraiseForm.vue?451e","webpack://cancerdk/./src/components/FundraisingAsideVue/FundraisingAsideVue.vue","webpack://cancerdk/./src/components/FundraisingAsideVue/FundraisingAsideVue.options.js","webpack://cancerdk/./src/components/FundraisingAsideVue/FundraisingAsideVue.vue?2474","webpack://cancerdk/./src/components/FundraisingCard/FundraisingCard.vue","webpack://cancerdk/./src/components/FundraisingCard/FundraisingCard.options.js","webpack://cancerdk/./src/components/FundraisingCard/FundraisingCard.vue?0a51","webpack://cancerdk/./src/components/FundraisingHero/FundraisingHero.options.js","webpack://cancerdk/./src/components/FVLConfirmDeleteProfile/FVLConfirmDeleteProfile.vue","webpack://cancerdk/./src/components/FVLConfirmDeleteProfile/FVLConfirmDeleteProfile.options.js","webpack://cancerdk/./src/components/FVLConfirmDeleteProfile/FVLConfirmDeleteProfile.vue?880e","webpack://cancerdk/./src/components/GalleryCard/GalleryCard.vue","webpack://cancerdk/./src/components/GalleryCard/GalleryCard.options.js","webpack://cancerdk/./src/components/GalleryCard/GalleryCard.vue?682d","webpack://cancerdk/./src/components/GeneralSearch/GeneralSearch.vue","webpack://cancerdk/./src/components/GeneralSearch/subcomponents/SearchResultCard.vue","webpack://cancerdk/./src/components/GeneralSearch/subcomponents/SearchResultCard.vue?dafe","webpack://cancerdk/./src/components/GeneralSearch/subcomponents/RecipeCard.vue","webpack://cancerdk/./src/components/GeneralSearch/subcomponents/RecipeCard.vue?d8a2","webpack://cancerdk/./src/components/LocationCard/LocationCard.vue","webpack://cancerdk/./src/components/LocationCard/LocationCard.options.js","webpack://cancerdk/./src/components/LocationCard/LocationCard.vue?e201","webpack://cancerdk/./src/components/SortDropdown/SortDropdown.vue","webpack://cancerdk/./src/components/SortDropdown/SortDropdown.options.js","webpack://cancerdk/./src/components/SortDropdown/SortDropdown.vue?a0e2","webpack://cancerdk/./src/components/SimpleCard/SimpleCard.vue","webpack://cancerdk/./src/components/SimpleCard/SimpleCard.options.js","webpack://cancerdk/./src/components/SimpleCard/SimpleCard.vue?d0d9","webpack://cancerdk/./src/components/GeneralSearch/GeneralSearch.options.js","webpack://cancerdk/./src/components/GeneralSearch/subcomponents/eventDataAdapter.js","webpack://cancerdk/./src/components/GeneralSearch/GeneralSearch.vue?a5ce","webpack://cancerdk/./src/components/GeneralSearch/GeneralSearch.init.js","webpack://cancerdk/./src/components/GroupCard/GroupCard.vue","webpack://cancerdk/./src/components/GroupCard/GroupCard.options.js","webpack://cancerdk/./src/components/GroupCard/GroupCard.vue?7a79","webpack://cancerdk/./src/components/GroupSearchResult/GroupSearchResult.vue","webpack://cancerdk/./src/components/GroupSearchResult/GroupSearchResult.options.js","webpack://cancerdk/./src/components/GroupSearchResult/GroupSearchResult.vue?3e95","webpack://cancerdk/./src/components/GruppeadgangsanmodningList/GruppeadgangsanmodningList.vue","webpack://cancerdk/./src/components/GruppeadgangsanmodningList/GruppeadgangsanmodningList.options.js","webpack://cancerdk/./src/components/GruppeadgangsanmodningList/GruppeadgangsanmodningList.vue?8372","webpack://cancerdk/./src/components/GtmTracker/GtmTracker.vue","webpack://cancerdk/./src/components/GtmTracker/GtmTracker.options.js","webpack://cancerdk/./src/components/GtmTracker/GtmTracker.vue?e8b1","webpack://cancerdk/./src/components/HeroGeneralSearch/HeroGeneralSearch.options.js","webpack://cancerdk/./src/components/HeroGeneralSearch/HeroGeneralSearch.init.js","webpack://cancerdk/./src/components/HeroSectionCancerforum/HeroSectionCancerforum.vue","webpack://cancerdk/./src/components/HeroSectionCancerforum/HeroSectionCancerforum.options.js","webpack://cancerdk/./src/components/HeroSectionCancerforum/HeroSectionCancerforum.vue?d9df","webpack://cancerdk/./src/components/ImageGallery/ImageGallery.vue","webpack://cancerdk/./node_modules/vue-easy-lightbox/dist/vue-easy-lightbox.esm.min.js","webpack://cancerdk/./src/components/ImageGallery/ImageGallery.options.js","webpack://cancerdk/./src/components/ImageGallery/ImageGallery.vue?8c24","webpack://cancerdk/./src/components/TheHeader/TheHeader.options.js","webpack://cancerdk/./src/components/IndependentHeader/IndependentHeader.options.js","webpack://cancerdk/./src/components/IndependentHeader/IndependentHeader.init.js","webpack://cancerdk/./src/components/InfoCarousel/InfoCarousel.options.js","webpack://cancerdk/./src/components/InfoCarousel/InfoCarousel.init.js","webpack://cancerdk/./src/components/LoginOverlay/LoginOverlay.vue","webpack://cancerdk/./src/components/LoginOverlay/LoginOverlay.options.js","webpack://cancerdk/./src/components/LoginOverlay/LoginOverlay.vue?8325","webpack://cancerdk/./src/components/LotteryForm/LotteryForm.vue","webpack://cancerdk/./src/components/LotteryForm/LotteryForm.options.js","webpack://cancerdk/./src/components/LotteryForm/LotteryForm.vue?81e8","webpack://cancerdk/./src/components/MaterialCard/MaterialCard.vue","webpack://cancerdk/./src/components/MaterialCard/MaterialCard.options.js","webpack://cancerdk/./src/components/MaterialCard/MaterialCard.vue?c008","webpack://cancerdk/./src/components/MemberListOverlayFVL/MemberListOverlayFVL.vue","webpack://cancerdk/./src/components/MemberListOverlayFVL/MemberListOverlayFVL.options.js","webpack://cancerdk/./src/components/MemberListOverlayFVL/MemberListOverlayFVL.vue?3e0a","webpack://cancerdk/./src/components/MemberOverlay/MemberOverlay.vue","webpack://cancerdk/./src/components/MemberOverlay/MemberOverlay.options.js","webpack://cancerdk/./src/components/MemberOverlay/MemberOverlay.vue?3952","webpack://cancerdk/./src/components/MemberOverlayProfileCard/MemberOverlayProfileCard.vue","webpack://cancerdk/./src/components/MemberOverlayProfileCard/MemberOverlayProfileCard.options.js","webpack://cancerdk/./src/components/MemberOverlayProfileCard/MemberOverlayProfileCard.vue?d1ec","webpack://cancerdk/./src/components/MitIdLogout/MitIdLogout.options.js","webpack://cancerdk/./src/components/MoveFileOverlay/MoveFileOverlay.vue","webpack://cancerdk/./src/components/MoveFileOverlay/MoveFileOverlay.options.js","webpack://cancerdk/./src/components/MoveFileOverlay/MoveFileOverlay.vue?aa79","webpack://cancerdk/./src/components/NoSearchResults/NoSearchResults.vue","webpack://cancerdk/./src/components/NoSearchResults/NoSearchResults.options.js","webpack://cancerdk/./src/components/NoSearchResults/NoSearchResults.vue?dd12","webpack://cancerdk/./src/components/NotificationList/NotificationList.vue","webpack://cancerdk/./src/components/NotificationList/NotificationList.options.js","webpack://cancerdk/./src/components/NotificationList/NotificationList.vue?2682","webpack://cancerdk/./src/components/OpretHoldOverlay/OpretHoldOverlay.vue","webpack://cancerdk/./src/components/OpretHoldOverlay/OpretHoldOverlay.options.js","webpack://cancerdk/./src/components/OpretHoldOverlay/OpretHoldOverlay.vue?eb9b","webpack://cancerdk/./src/components/OrdreOverview/OrdreOverview.vue","webpack://cancerdk/./src/components/OrdreOverview/OrdreOverview.options.js","webpack://cancerdk/./src/components/OrdreOverview/OrdreOverview.vue?8a25","webpack://cancerdk/./src/components/SubNavigation/childComponents/SubNavigationMobile.vue","webpack://cancerdk/./src/components/SubNavigation/childComponents/SubNavProfile.vue","webpack://cancerdk/./src/components/SubNavigation/childComponents/SubNavProfile.vue?d9d0","webpack://cancerdk/./src/components/SubNavigation/SubNavigation.options.js","webpack://cancerdk/./src/components/SubNavigation/childComponents/SubNavigationMobile.vue?e6ac","webpack://cancerdk/./src/components/SubNavigation/SubNavigation.init.js","webpack://cancerdk/./src/components/TheHeader/TheHeader.init.js","webpack://cancerdk/./src/components/OverlayLinkInterceptor/OverlayLinkInterceptor.init.js","webpack://cancerdk/./src/components/PageOverlay/PageOverlay.vue","webpack://cancerdk/./src/components/BurgerMenu/BurgerMenu.vue","webpack://cancerdk/./src/components/BurgerMenu/subcomponents/PrimaryLink.vue","webpack://cancerdk/./src/components/BurgerMenu/subcomponents/PrimaryLink.vue?a468","webpack://cancerdk/./src/components/BurgerMenu/subcomponents/SecondaryLink.vue","webpack://cancerdk/./src/components/BurgerMenu/BurgerMenu.options.js","webpack://cancerdk/./src/components/BurgerMenu/subcomponents/SecondaryLink.vue?88f3","webpack://cancerdk/./src/components/BurgerMenu/BurgerMenu.vue?9074","webpack://cancerdk/./src/components/SearchOverlay/SearchOverlay.vue","webpack://cancerdk/./src/components/SearchOverlay/SearchOverlay.options.js","webpack://cancerdk/./src/components/SearchOverlay/SearchOverlay.vue?9c60","webpack://cancerdk/./src/components/FilterOverlay/FilterOverlay.vue","webpack://cancerdk/./src/components/FilterOverlay/FilterOverlay.options.js","webpack://cancerdk/./src/components/FilterOverlay/FilterOverlay.vue?89b5","webpack://cancerdk/./src/components/ArticleOverlay/ArticleOverlay.vue","webpack://cancerdk/./src/components/ArticleOverlay/ArticleOverlay.options.js","webpack://cancerdk/./src/components/ArticleOverlay/ArticleOverlay.vue?f14e","webpack://cancerdk/./src/components/SignUpForm/SignUpForm.vue","webpack://cancerdk/./src/components/SuccessPage/SuccessPage.vue","webpack://cancerdk/./src/components/SuccessPage/SuccessPage.options.js","webpack://cancerdk/./src/components/SuccessPage/SuccessPage.vue?5c61","webpack://cancerdk/./src/components/SignUpForm/SignUpForm.options.js","webpack://cancerdk/./src/components/SignUpForm/SignUpForm.vue?580e","webpack://cancerdk/./src/components/PersonalDonationStep2a/PersonalDonationStep2a.vue","webpack://cancerdk/./src/components/PersonalDonationStep3/PersonalDonationStep3.vue","webpack://cancerdk/./src/components/PersonalDonationStep3/PersonalDonationStep3.options.js","webpack://cancerdk/./src/components/PersonalDonationStep3/PersonalDonationStep3.vue?b8ac","webpack://cancerdk/./src/components/PersonalDonationStep2a/PersonalDonationStep2a.options.js","webpack://cancerdk/./src/components/PersonalDonationStep2a/PersonalDonationStep2a.vue?503a","webpack://cancerdk/./src/components/MemberListOverlay/MemberListOverlay.vue","webpack://cancerdk/./src/components/MemberListOverlay/MemberListOverlay.options.js","webpack://cancerdk/./src/components/MemberListOverlay/MemberListOverlay.vue?b0e5","webpack://cancerdk/./src/components/ClosedGroupOverlay/ClosedGroupOverlay.vue","webpack://cancerdk/./src/components/ClosedGroupOverlay/ClosedGroupOverlay.options.js","webpack://cancerdk/./src/components/ClosedGroupOverlay/ClosedGroupOverlay.vue?8955","webpack://cancerdk/./src/components/UploadNewFileOverlay/UploadNewFileOverlay.vue","webpack://cancerdk/./src/components/UploadNewFileOverlay/UploadNewFileOverlay.options.js","webpack://cancerdk/./src/components/UploadNewFileOverlay/UploadNewFileOverlay.vue?31f5","webpack://cancerdk/./src/components/HoldetsLys/HoldetsLys.vue","webpack://cancerdk/./src/components/HoldetsLys/HoldetsLys.options.js","webpack://cancerdk/./src/components/HoldetsLys/HoldetsLys.vue?9251","webpack://cancerdk/./src/components/HoldetsDeltagere/HoldetsDeltagere.vue","webpack://cancerdk/./src/foundation/js/teamParticipantUtils.js","webpack://cancerdk/./src/components/HoldetsDeltagere/HoldetsDeltagere.options.js","webpack://cancerdk/./src/components/HoldetsDeltagere/HoldetsDeltagere.vue?e4ac","webpack://cancerdk/./src/components/HoldetsDonationer/HoldetsDonationer.vue","webpack://cancerdk/./src/components/HoldetsDonationer/HoldetsDonationer.options.js","webpack://cancerdk/./src/components/HoldetsDonationer/HoldetsDonationer.vue?91f5","webpack://cancerdk/./src/components/TilmeldHoldKvittering/TilmeldHoldKvittering.vue","webpack://cancerdk/./src/components/TilmeldHoldKvittering/TilmeldHoldKvittering.options.js","webpack://cancerdk/./src/components/TilmeldHoldKvittering/TilmeldHoldKvittering.vue?208d","webpack://cancerdk/./src/components/HoldOprettelseKvittering/HoldOprettelseKvittering.vue","webpack://cancerdk/./src/components/HoldOprettelseKvittering/HoldOprettelseKvittering.options.js","webpack://cancerdk/./src/components/HoldOprettelseKvittering/HoldOprettelseKvittering.vue?5169","webpack://cancerdk/./src/components/HoldRedigerKvittering/HoldRedigerKvittering.vue","webpack://cancerdk/./src/components/HoldRedigerKvittering/HoldRedigerKvittering.options.js","webpack://cancerdk/./src/components/HoldRedigerKvittering/HoldRedigerKvittering.vue?c6b9","webpack://cancerdk/./src/components/HoldetsRoundCounterOverlay/HoldetsRoundCounterOverlay.vue","webpack://cancerdk/./src/components/StafetRoundCounter/StafetRoundCounter.vue","webpack://cancerdk/./src/components/StafetRoundCounter/StafetRoundCounter.options.js","webpack://cancerdk/./src/components/StafetRoundCounter/StafetRoundCounter.vue?9b48","webpack://cancerdk/./src/components/StafetRoundCounterAccordion/StafetRoundCounterAccordion.vue","webpack://cancerdk/./src/components/StafetRoundCounterAccordion/StafetRoundCounterAccordion.options.js","webpack://cancerdk/./src/components/StafetRoundCounterAccordion/StafetRoundCounterAccordion.vue?2110","webpack://cancerdk/./src/components/HoldetsRoundCounterOverlay/HoldetsRoundCounterOverlay.options.js","webpack://cancerdk/./src/components/HoldetsRoundCounterOverlay/HoldetsRoundCounterOverlay.vue?c298","webpack://cancerdk/./src/components/ProfileDeleted/ProfileDeleted.vue","webpack://cancerdk/./src/components/ProfileDeleted/ProfileDeleted.options.js","webpack://cancerdk/./src/components/ProfileDeleted/ProfileDeleted.vue?0d64","webpack://cancerdk/./src/components/TilmeldProfilKvittering/TilmeldProfilKvittering.vue","webpack://cancerdk/./src/components/TilmeldProfilKvittering/TilmeldProfilKvittering.options.js","webpack://cancerdk/./src/components/TilmeldProfilKvittering/TilmeldProfilKvittering.vue?1bc5","webpack://cancerdk/./src/components/CalendarOverlay/CalendarOverlay.vue","webpack://cancerdk/./src/components/CalendarOverlay/CalendarOverlay.options.js","webpack://cancerdk/./src/components/CalendarOverlay/CalendarOverlay.vue?0730","webpack://cancerdk/./src/components/PageOverlay/PageOverlay.options.js","webpack://cancerdk/./src/components/PageOverlay/methods/closeSliderGripBehaviour.js","webpack://cancerdk/./src/components/PageOverlay/PageOverlay.vue?81ae","webpack://cancerdk/./src/components/PageOverlay/PageOverlay.init.js","webpack://cancerdk/./src/components/PersonalFundraising/PersonalFundraising.vue","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://cancerdk/./node_modules/date-fns/esm/isDate/index.js","webpack://cancerdk/./node_modules/date-fns/esm/toDate/index.js","webpack://cancerdk/./node_modules/date-fns/esm/isValid/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://cancerdk/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://cancerdk/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://cancerdk/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://cancerdk/./node_modules/date-fns/esm/format/index.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://cancerdk/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/Setter.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/Parser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","webpack://cancerdk/./node_modules/date-fns/esm/constants/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/constants.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/utils.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","webpack://cancerdk/./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parse/index.js","webpack://cancerdk/./node_modules/date-fns/esm/setMonth/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://cancerdk/./node_modules/date-fns/esm/set/index.js","webpack://cancerdk/./node_modules/date-fns/esm/setHours/index.js","webpack://cancerdk/./node_modules/date-fns/esm/setMinutes/index.js","webpack://cancerdk/./node_modules/date-fns/esm/setSeconds/index.js","webpack://cancerdk/./node_modules/date-fns/esm/setMilliseconds/index.js","webpack://cancerdk/./node_modules/date-fns/esm/isBefore/index.js","webpack://cancerdk/./node_modules/date-fns/esm/isEqual/index.js","webpack://cancerdk/./node_modules/date-fns/esm/isAfter/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getHours/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getMinutes/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getSeconds/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getMonth/index.js","webpack://cancerdk/./node_modules/date-fns/esm/parseISO/index.js","webpack://cancerdk/./node_modules/date-fns/esm/eachDayOfInterval/index.js","webpack://cancerdk/./node_modules/date-fns/esm/addMonths/index.js","webpack://cancerdk/./node_modules/date-fns/esm/startOfWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/setYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/subMonths/index.js","webpack://cancerdk/./node_modules/date-fns/esm/addYears/index.js","webpack://cancerdk/./node_modules/date-fns/esm/subYears/index.js","webpack://cancerdk/./node_modules/date-fns/esm/addDays/index.js","webpack://cancerdk/./node_modules/date-fns/esm/startOfDay/index.js","webpack://cancerdk/./node_modules/date-fns/esm/add/index.js","webpack://cancerdk/./node_modules/date-fns/esm/startOfISOWeek/index.js","webpack://cancerdk/./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","webpack://cancerdk/./node_modules/date-fns/esm/endOfWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getDay/index.js","webpack://cancerdk/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://cancerdk/./node_modules/date-fns/esm/sub/index.js","webpack://cancerdk/./node_modules/date-fns/esm/subDays/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/startOfWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getISOWeek/index.js","webpack://cancerdk/./node_modules/date-fns/esm/startOfISOWeekYear/index.js","webpack://cancerdk/./node_modules/date-fns/esm/getISOWeekYear/index.js","webpack://cancerdk/./src/components/PersonalFundraising/PersonalFundraising.options.js","webpack://cancerdk/./src/components/PersonalFundraising/PersonalFundraising.vue?692f","webpack://cancerdk/./src/components/PersonalFundraising/PersonalFundraising.init.js","webpack://cancerdk/./src/components/PostAside/PostAside.options.js","webpack://cancerdk/./src/components/PostComment/PostComment.vue","webpack://cancerdk/./src/components/PostComment/PostComment.options.js","webpack://cancerdk/./src/components/PostComment/PostComment.vue?da6d","webpack://cancerdk/./src/components/PostComments/PostComments.vue","webpack://cancerdk/./src/components/PostComments/PostComments.options.js","webpack://cancerdk/./src/components/PostComments/PostComments.vue?e6ea","webpack://cancerdk/./src/components/PostComments/PostComments.init.js","webpack://cancerdk/./src/components/PostHeader/PostHeader.options.js","webpack://cancerdk/./src/components/PostHeaderAddComment/PostHeaderAddComment.vue","webpack://cancerdk/./src/components/PostHeaderAddComment/PostHeaderAddComment.options.js","webpack://cancerdk/./src/components/PostHeaderAddComment/PostHeaderAddComment.vue?6fb0","webpack://cancerdk/./src/components/PostsList/PostsList.vue","webpack://cancerdk/./src/components/PostsList/PostsList.options.js","webpack://cancerdk/./src/components/PostsList/PostsList.vue?0239","webpack://cancerdk/./src/components/PreFooter/PreFooter.options.js","webpack://cancerdk/./src/components/PreFooter/PreFooter.init.js","webpack://cancerdk/./src/components/ProductCard/ProductCard.vue","webpack://cancerdk/./src/components/ProductCard/ProductCard.options.js","webpack://cancerdk/./src/components/ProductCard/ProductCard.vue?14b2","webpack://cancerdk/./src/components/ProductDetail/ProductDetail.options.js","webpack://cancerdk/./src/components/ProductList/ProductList.vue","webpack://cancerdk/./src/components/ProductList/ProductList.options.js","webpack://cancerdk/./src/components/ProductList/ProductList.vue?745c","webpack://cancerdk/./src/components/ProductList/ProductList.init.js","webpack://cancerdk/./src/components/ProductsCardsSlider/ProductsCardsSlider.vue","webpack://cancerdk/./src/components/ProductsCardsSlider/ProductsCardsSlider.options.js","webpack://cancerdk/./src/components/ProductsCardsSlider/config/config.js","webpack://cancerdk/./src/components/ProductsCardsSlider/ProductsCardsSlider.vue?a2bc","webpack://cancerdk/./src/components/ProjectCard/ProjectCard.vue","webpack://cancerdk/./src/components/ProjectCard/ProjectCard.options.js","webpack://cancerdk/./src/components/ProjectCard/ProjectCard.vue?3802","webpack://cancerdk/./src/components/ProjectsList/ProjectsList.vue","webpack://cancerdk/./src/components/SearchFilteredTags/SearchFilteredTags.vue","webpack://cancerdk/./src/components/SearchFilteredTags/SearchFilteredTags.options.js","webpack://cancerdk/./src/components/SearchFilteredTags/SearchFilteredTags.vue?0f11","webpack://cancerdk/./src/components/ProjectsList/ProjectsList.options.js","webpack://cancerdk/./src/components/ProjectsList/ProjectsList.vue?5d4b","webpack://cancerdk/./src/components/ReceiptContent/ReceiptContent.vue","webpack://cancerdk/./src/components/ReceiptContent/ReceiptContent.options.js","webpack://cancerdk/./src/components/ReceiptContent/ReceiptContent.vue?748c","webpack://cancerdk/./src/components/RelayList/RelayList.vue","webpack://cancerdk/./src/components/RelayList/RelayList.options.js","webpack://cancerdk/./src/components/RelayList/RelayList.vue?09ca","webpack://cancerdk/./src/components/RequestRole/RequestRole.vue","webpack://cancerdk/./src/components/RequestRole/RequestRole.options.js","webpack://cancerdk/./src/components/RequestRole/RequestRole.vue?71dd","webpack://cancerdk/./src/components/RolesFormContent/RolesFormContent.vue","webpack://cancerdk/./src/components/RolesFormContent/RolesFormContent.options.js","webpack://cancerdk/./src/components/RolesFormContent/RolesFormContent.vue?babf","webpack://cancerdk/./src/components/SearchAndCTA/SearchAndCTA.options.js","webpack://cancerdk/./src/components/SearchOverlay/SearchOverlay.init.js","webpack://cancerdk/./src/foundation/js/sessionStorageWrapper/getItemFromStorage.js","webpack://cancerdk/./src/foundation/js/sessionStorageWrapper/updateItemFromStorage.js","webpack://cancerdk/./src/components/SessionStorageFormularTest/SessionStorageFormularTest.options.js","webpack://cancerdk/./src/foundation/js/sessionStorageWrapper/clearItemFromStorage.js","webpack://cancerdk/./src/components/SignUpButton/SignUpButton.options.js","webpack://cancerdk/./src/components/SpotCardGrid/SpotCardGrid.init.js","webpack://cancerdk/./src/components/StafetActions/StafetActions.vue","webpack://cancerdk/./src/components/StafetActions/StafetActions.options.js","webpack://cancerdk/./src/components/StafetActions/StafetActions.vue?a6b3","webpack://cancerdk/./src/components/StafetAddDeltager/StafetAddDeltager.vue","webpack://cancerdk/./src/components/StafetAddDeltager/StafetAddDeltager.options.js","webpack://cancerdk/./src/components/StafetAddDeltager/StafetAddDeltager.vue?ffa1","webpack://cancerdk/./src/components/StafetAddMoreDeltagerFlow/StafetAddMoreDeltagerFlow.vue","webpack://cancerdk/./src/components/StafetHeader/StafetHeader.vue","webpack://cancerdk/./src/components/StafetHeader/StafetHeader.options.js","webpack://cancerdk/./src/components/StafetHeader/StafetHeader.vue?b853","webpack://cancerdk/./src/components/StafetPayment/StafetPayment.vue","webpack://cancerdk/./src/components/StafetPayment/StafetPayment.options.js","webpack://cancerdk/./src/components/StafetPayment/StafetPayment.vue?4f00","webpack://cancerdk/./src/components/StafetAddMoreDeltagerFlow/StafetAddMoreDeltagerFlow.options.js","webpack://cancerdk/./src/components/StafetAddMoreDeltagerFlow/methods/updateBasket.js","webpack://cancerdk/./src/components/StafetAddMoreDeltagerFlow/StafetAddMoreDeltagerFlow.vue?504e","webpack://cancerdk/./src/components/StafetDeltagPaaHoldFlow/StafetDeltagPaaHoldFlow.vue","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepOne/StafetDeltagPaaHoldStepOne.vue","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepOne/config/fieldsConfig.js","webpack://cancerdk/./src/foundation/js/stafet/fieldValidator.js","webpack://cancerdk/./src/foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepOne/StafetDeltagPaaHoldStepOne.options.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepOne/StafetDeltagPaaHoldStepOne.vue?2071","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepTwo/StafetDeltagPaaHoldStepTwo.vue","webpack://cancerdk/./src/components/SupportSelector/SupportSelector.vue","webpack://cancerdk/./src/components/SupportSelector/supportTypeEnum.js","webpack://cancerdk/./src/components/SupportSelector/SupportSelector.options.js","webpack://cancerdk/./src/components/SupportSelector/validators/donationTypeValidator.js","webpack://cancerdk/./src/components/SupportSelector/validators/teamValidator.js","webpack://cancerdk/./src/components/SupportSelector/validators/deltagerValidator.js","webpack://cancerdk/./src/components/SupportSelector/SupportSelector.vue?9a13","webpack://cancerdk/./src/components/StafetLysPoserList/StafetLysPoserList.vue","webpack://cancerdk/./src/components/StafetLysPoserList/StafetLysPoserList.options.js","webpack://cancerdk/./src/components/StafetLysPoserList/StafetLysPoserList.vue?2d92","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepTwo/StafetDeltagPaaHoldStepTwo.options.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepTwo/StafetDeltagPaaHoldStepTwo.vue?36d2","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepThree/StafetDeltagPaaHoldStepThree.vue","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepThree/StafetDeltagPaaHoldStepThree.options.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepThree/StafetDeltagPaaHoldStepThree.vue?b645","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepFour/StafetDeltagPaaHoldStepFour.vue","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepFour/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepFour/StafetDeltagPaaHoldStepFour.options.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepFour/StafetDeltagPaaHoldStepFour.vue?3caf","webpack://cancerdk/./src/foundation/js/stafet/mapStafetHeaderSteps.js","webpack://cancerdk/./src/foundation/js/stafet/getCommonComputedFields.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldFlow/config/stepsConfig.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldFlow/StafetDeltagPaaHoldFlow.options.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldFlow/methods/updateBasket.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldFlow/StafetDeltagPaaHoldFlow.vue?bf95","webpack://cancerdk/./src/components/StafetDeltagSomFighterFlow/StafetDeltagSomFighterFlow.vue","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepOne/StafetDeltagSomFighterStepOne.vue","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepOne/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepOne/StafetDeltagSomFighterStepOne.options.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepOne/StafetDeltagSomFighterStepOne.vue?6017","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepTwo/StafetDeltagSomFighterStepTwo.vue","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepTwo/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepTwo/StafetDeltagSomFighterStepTwo.options.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepTwo/StafetDeltagSomFighterStepTwo.vue?efbe","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepThree/StafetDeltagSomFighterStepThree.vue","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepThree/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepThree/StafetDeltagSomFighterStepThree.options.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepThree/StafetDeltagSomFighterStepThree.vue?441e","webpack://cancerdk/./src/components/StafetDeltagSomFighterFlow/config/stepsConfig.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterFlow/methods/updateBasket.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterFlow/StafetDeltagSomFighterFlow.options.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterFlow/StafetDeltagSomFighterFlow.vue?0101","webpack://cancerdk/./src/components/StafetDonationFlow/StafetDonationFlow.vue","webpack://cancerdk/./src/components/StafetDonationStepOne/StafetDonationStepOne.vue","webpack://cancerdk/./src/components/StafetDonationStepOne/StafetDonationStepOne.options.js","webpack://cancerdk/./src/components/StafetDonationStepOne/StafetDonationStepOne.vue?2b14","webpack://cancerdk/./src/components/StafetDonationStepTwo/StafetDonationStepTwo.vue","webpack://cancerdk/./src/components/StafetDonationStepPrivat/StafetDonationStepPrivat.vue","webpack://cancerdk/./src/components/StafetDonationStepPrivat/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDonationStepPrivat/StafetDonationStepPrivat.options.js","webpack://cancerdk/./src/components/StafetDonationStepPrivat/StafetDonationStepPrivat.vue?9d94","webpack://cancerdk/./src/components/StafetDonationStepVirksomhed/StafetDonationStepVirksomhed.vue","webpack://cancerdk/./src/components/StafetDonationStepVirksomhed/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDonationStepVirksomhed/StafetDonationStepVirksomhed.options.js","webpack://cancerdk/./src/components/StafetDonationStepVirksomhed/StafetDonationStepVirksomhed.vue?fdc8","webpack://cancerdk/./src/components/StafetDonationStepTwo/StafetDonationStepTwo.options.js","webpack://cancerdk/./src/components/StafetDonationStepTwo/StafetDonationStepTwo.vue?d123","webpack://cancerdk/./src/components/StafetDonationFlow/config/stepsConfig.js","webpack://cancerdk/./src/components/StafetDonationFlow/StafetDonationFlow.options.js","webpack://cancerdk/./src/components/StafetDonationFlow/methods/updateBasket.js","webpack://cancerdk/./src/components/StafetDonationFlow/StafetDonationFlow.vue?5e12","webpack://cancerdk/./src/components/StafetDonationTaendLysFlow/StafetDonationTaendLysFlow.vue","webpack://cancerdk/./src/components/StafetDonationTaendLysStepOne/StafetDonationTaendLysStepOne.vue","webpack://cancerdk/./src/components/StafetDonationTaendLysStepOne/StafetDonationTaendLysStepOne.options.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepOne/StafetDonationTaendLysStepOne.vue?972c","webpack://cancerdk/./src/components/StafetDonationTaendLysStepTwo/StafetDonationTaendLysStepTwo.vue","webpack://cancerdk/./src/components/StafetDonationTaendLysStepTwo/StafetDonationTaendLysStepTwo.options.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepTwo/StafetDonationTaendLysStepTwo.vue?5d72","webpack://cancerdk/./src/components/StafetDonationTaendLysStepThree/StafetDonationTaendLysStepThree.vue","webpack://cancerdk/./src/components/StafetDonationTaendLysStepThree/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepThree/StafetDonationTaendLysStepThree.options.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepThree/StafetDonationTaendLysStepThree.vue?9099","webpack://cancerdk/./src/components/StafetDonationTaendLysFlow/config/stepsConfig.js","webpack://cancerdk/./src/components/StafetDonationTaendLysFlow/StafetDonationTaendLysFlow.options.js","webpack://cancerdk/./src/components/StafetDonationTaendLysFlow/methods/updateBasket.js","webpack://cancerdk/./src/components/StafetDonationTaendLysFlow/StafetDonationTaendLysFlow.vue?0ae2","webpack://cancerdk/./src/components/StafetEditHoldFlow/StafetEditHoldFlow.vue","webpack://cancerdk/./src/components/StafetOpretHoldStepOne/StafetOpretHoldStepOne.vue","webpack://cancerdk/./src/components/StafetOpretHoldStepOne/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetOpretHoldStepOne/StafetOpretHoldStepOne.options.js","webpack://cancerdk/./src/components/StafetOpretHoldStepOne/StafetOpretHoldStepOne.vue?50e1","webpack://cancerdk/./src/components/StafetEditHoldFlow/config/stepsConfig.js","webpack://cancerdk/./src/components/StafetEditHoldFlow/StafetEditHoldFlow.options.js","webpack://cancerdk/./src/components/StafetEditHoldFlow/StafetEditHoldFlow.vue?d48d","webpack://cancerdk/./src/components/StafetOpretHoldFlow/StafetOpretHoldFlow.vue","webpack://cancerdk/./src/components/StafetOpretHoldStepTwo/StafetOpretHoldStepTwo.vue","webpack://cancerdk/./src/components/StafetOpretHoldStepTwo/config/fieldsConfig.js","webpack://cancerdk/./src/components/StafetOpretHoldStepTwo/StafetOpretHoldStepTwo.options.js","webpack://cancerdk/./src/components/StafetOpretHoldStepTwo/StafetOpretHoldStepTwo.vue?9e2f","webpack://cancerdk/./src/components/StafetOpretHoldFlow/config/stepsConfig.js","webpack://cancerdk/./src/components/StafetOpretHoldFlow/StafetOpretHoldFlow.options.js","webpack://cancerdk/./src/components/StafetOpretHoldFlow/StafetOpretHoldFlow.vue?3ef6","webpack://cancerdk/./src/components/StafetProfileForm/StafetProfileForm.vue","webpack://cancerdk/./src/components/StafetProfileForm/StafetProfileForm.options.js","webpack://cancerdk/./src/components/StafetProfileForm/StafetProfileForm.vue?0b71","webpack://cancerdk/./src/components/StickySliderElement/StickySliderElement.options.js","webpack://cancerdk/./src/components/StickySliderElement/StickySliderElement.init.js","webpack://cancerdk/./src/components/SubbrandHeader/SubbrandHeader.options.js","webpack://cancerdk/./src/components/SubbrandHeader/SubbrandHeader.init.js","webpack://cancerdk/./src/components/TeamList/TeamList.vue","webpack://cancerdk/./src/components/TeamListCard/TeamListCard.vue","webpack://cancerdk/./src/components/TeamListCard/TeamListCard.options.js","webpack://cancerdk/./src/components/TeamListCard/TeamListCard.vue?51fe","webpack://cancerdk/./src/components/TeamList/TeamList.options.js","webpack://cancerdk/./src/components/TeamList/TeamList.vue?1887","webpack://cancerdk/./src/components/TextEditor/TextEditor.options.js","webpack://cancerdk/./src/components/UserPostsList/UserPostsList.vue","webpack://cancerdk/./src/components/UserPostsList/UserPostsList.options.js","webpack://cancerdk/./src/components/UserPostsList/UserPostsList.vue?68bf","webpack://cancerdk/./src/components/WebshopHeader/WebshopHeader.options.js","webpack://cancerdk/./src/components/WebshopHeader/WebshopHeader.init.js","webpack://cancerdk/./src/component-index.generated.js","webpack://cancerdk/./src/components/CalendarOverlay/CalendarOverlay.init.js","webpack://cancerdk/./src/foundation/js/loadLabels.js","webpack://cancerdk/./src/index.js","webpack://cancerdk/./src/components/SecondaryArticleSpots/SecondaryArticleSpots.init.js","webpack://cancerdk/./src/components/PageIdInit/PageIdInit.init.js","webpack://cancerdk/./src/components/ActionResponseBox/ActionResponseBox.init.js","webpack://cancerdk/./src/components/ActiveGroups/ActiveGroups.init.js","webpack://cancerdk/./src/components/ActiveRoleListCard/ActiveRoleListCard.init.js","webpack://cancerdk/./src/components/ActiveRolesList/ActiveRolesList.init.js","webpack://cancerdk/./src/components/ActivityCard/ActivityCard.init.js","webpack://cancerdk/./src/components/AdvancedRadio/AdvancedRadio.init.js","webpack://cancerdk/./src/components/AmountSelector/AmountSelector.init.js","webpack://cancerdk/./src/components/ArticleAnchors/ArticleAnchors.init.js","webpack://cancerdk/./src/components/AttachmentsEditor/AttachmentsEditor.init.js","webpack://cancerdk/./src/components/AttachmentsViewer/AttachmentsViewer.init.js","webpack://cancerdk/./src/components/Basket/Basket.init.js","webpack://cancerdk/./src/components/BasketAside/BasketAside.init.js","webpack://cancerdk/./src/components/BasketCard/BasketCard.init.js","webpack://cancerdk/./src/components/BuySection/BuySection.init.js","webpack://cancerdk/./src/components/CaseCard/CaseCard.init.js","webpack://cancerdk/./src/components/CaseCarousel/CaseCarousel.init.js","webpack://cancerdk/./src/components/CaseModule/CaseModule.init.js","webpack://cancerdk/./src/components/CategoryPicker/CategoryPicker.init.js","webpack://cancerdk/./src/components/ChangesSaved/ChangesSaved.init.js","webpack://cancerdk/./src/components/CheckoutContent/CheckoutContent.init.js","webpack://cancerdk/./src/components/CheckoutStepOne/CheckoutStepOne.init.js","webpack://cancerdk/./src/components/CheckoutStepThree/CheckoutStepThree.init.js","webpack://cancerdk/./src/components/CheckoutStepTwo/CheckoutStepTwo.init.js","webpack://cancerdk/./src/components/ClosedGroupOverlay/ClosedGroupOverlay.init.js","webpack://cancerdk/./src/components/ConfirmChanges/ConfirmChanges.init.js","webpack://cancerdk/./src/components/ConfirmDeleteOverlay/ConfirmDeleteOverlay.init.js","webpack://cancerdk/./src/components/ConfirmDeleteProfile/ConfirmDeleteProfile.init.js","webpack://cancerdk/./src/components/ContactBanner/ContactBanner.init.js","webpack://cancerdk/./src/components/ContentCarousel/ContentCarousel.init.js","webpack://cancerdk/./src/components/ContributionSelector/ContributionSelector.init.js","webpack://cancerdk/./src/components/CreateCancerForumProfile/CreateCancerForumProfile.init.js","webpack://cancerdk/./src/components/CreateEvent/CreateEvent.init.js","webpack://cancerdk/./src/components/CreateFolderOverlay/CreateFolderOverlay.init.js","webpack://cancerdk/./src/components/CreateFrivilligeProfile/CreateFrivilligeProfile.init.js","webpack://cancerdk/./src/components/CreateFrivilligJob/CreateFrivilligJob.init.js","webpack://cancerdk/./src/components/CreateGallery/CreateGallery.init.js","webpack://cancerdk/./src/components/CreateNewFileOverlay/CreateNewFileOverlay.init.js","webpack://cancerdk/./src/components/CreatePost/CreatePost.init.js","webpack://cancerdk/./src/components/DeleteCancerProfileModal/DeleteCancerProfileModal.init.js","webpack://cancerdk/./src/components/DeleteEventModal/DeleteEventModal.init.js","webpack://cancerdk/./src/components/DeleteFrivilligjobOverlay/DeleteFrivilligjobOverlay.init.js","webpack://cancerdk/./src/components/DeleteRoleOverlay/DeleteRoleOverlay.init.js","webpack://cancerdk/./src/components/DeliveryAddress/DeliveryAddress.init.js","webpack://cancerdk/./src/components/DeliveryCard/DeliveryCard.init.js","webpack://cancerdk/./src/components/DictionaryList/DictionaryList.init.js","webpack://cancerdk/./src/components/DirectMessageNavigation/DirectMessageNavigation.init.js","webpack://cancerdk/./src/components/DirectMessagesContent/DirectMessagesContent.init.js","webpack://cancerdk/./src/components/DirectMessageThread/DirectMessageThread.init.js","webpack://cancerdk/./src/components/DocumentAndFolderList/DocumentAndFolderList.init.js","webpack://cancerdk/./src/components/DonationAmount/DonationAmount.init.js","webpack://cancerdk/./src/components/DonationCard/DonationCard.init.js","webpack://cancerdk/./src/components/DonationReceiptOverlay/DonationReceiptOverlay.init.js","webpack://cancerdk/./src/components/DropdownWithTags/DropdownWithTags.init.js","webpack://cancerdk/./src/components/EditFrivilligProfile/EditFrivilligProfile.init.js","webpack://cancerdk/./src/components/FeaturedGroups/FeaturedGroups.init.js","webpack://cancerdk/./src/components/FeaturedPostSpotCard/FeaturedPostSpotCard.init.js","webpack://cancerdk/./src/components/FeatureNavigationTeam/FeatureNavigationTeam.init.js","webpack://cancerdk/./src/components/FileListCard/FileListCard.init.js","webpack://cancerdk/./src/components/FlowEditModal/FlowEditModal.init.js","webpack://cancerdk/./src/components/FlowHeader/FlowHeader.init.js","webpack://cancerdk/./src/components/FormAddressField/FormAddressField.init.js","webpack://cancerdk/./src/components/FormAddressFieldGroup/FormAddressFieldGroup.init.js","webpack://cancerdk/./src/components/FormCheckbox/FormCheckbox.init.js","webpack://cancerdk/./src/components/FormInputCprField/FormInputCprField.init.js","webpack://cancerdk/./src/components/FormInputCvrField/FormInputCvrField.init.js","webpack://cancerdk/./src/components/FormInputDateField/FormInputDateField.init.js","webpack://cancerdk/./src/components/FormInputDropdown/FormInputDropdown.init.js","webpack://cancerdk/./src/components/FormInputEmailField/FormInputEmailField.init.js","webpack://cancerdk/./src/components/FormInputNameField/FormInputNameField.init.js","webpack://cancerdk/./src/components/FormInputPhoneField/FormInputPhoneField.init.js","webpack://cancerdk/./src/components/FormInputTextarea/FormInputTextarea.init.js","webpack://cancerdk/./src/components/FormInputTextField/FormInputTextField.init.js","webpack://cancerdk/./src/components/FormRadioGroup/FormRadioGroup.init.js","webpack://cancerdk/./src/components/FormStepSubmitting/FormStepSubmitting.init.js","webpack://cancerdk/./src/components/FormStepZero/FormStepZero.init.js","webpack://cancerdk/./src/components/ForumEditProfile/ForumEditProfile.init.js","webpack://cancerdk/./src/components/FrivilligeCheckoutContent/FrivilligeCheckoutContent.init.js","webpack://cancerdk/./src/components/FrivilligeCheckoutStepOne/FrivilligeCheckoutStepOne.init.js","webpack://cancerdk/./src/components/FrivilligeCheckoutStepTwo/FrivilligeCheckoutStepTwo.init.js","webpack://cancerdk/./src/components/FrivilligePostsList/FrivilligePostsList.init.js","webpack://cancerdk/./src/components/FrivilligeShopWrongRoleModal/FrivilligeShopWrongRoleModal.init.js","webpack://cancerdk/./src/components/FrivilligGroupHero/FrivilligGroupHero.init.js","webpack://cancerdk/./src/components/FrivilligjobAside/FrivilligjobAside.init.js","webpack://cancerdk/./src/components/FrivilligjobCard/FrivilligjobCard.init.js","webpack://cancerdk/./src/components/FundraiseForm/FundraiseForm.init.js","webpack://cancerdk/./src/components/FundraisingAsideVue/FundraisingAsideVue.init.js","webpack://cancerdk/./src/components/FundraisingCard/FundraisingCard.init.js","webpack://cancerdk/./src/components/FundraisingHero/FundraisingHero.init.js","webpack://cancerdk/./src/components/FVLConfirmDeleteProfile/FVLConfirmDeleteProfile.init.js","webpack://cancerdk/./src/components/GalleryCard/GalleryCard.init.js","webpack://cancerdk/./src/components/GroupCard/GroupCard.init.js","webpack://cancerdk/./src/components/GroupDetails/GroupDetails.init.js","webpack://cancerdk/./src/components/GroupPost/GroupPost.init.js","webpack://cancerdk/./src/components/GroupSearchResult/GroupSearchResult.init.js","webpack://cancerdk/./src/components/GruppeadgangsanmodningList/GruppeadgangsanmodningList.init.js","webpack://cancerdk/./src/components/GtmTracker/GtmTracker.init.js","webpack://cancerdk/./src/components/HeroSectionCancerforum/HeroSectionCancerforum.init.js","webpack://cancerdk/./src/components/HoldetsDeltagere/HoldetsDeltagere.init.js","webpack://cancerdk/./src/components/HoldetsDonationer/HoldetsDonationer.init.js","webpack://cancerdk/./src/components/HoldetsLys/HoldetsLys.init.js","webpack://cancerdk/./src/components/HoldetsRoundCounterOverlay/HoldetsRoundCounterOverlay.init.js","webpack://cancerdk/./src/components/HoldOprettelseKvittering/HoldOprettelseKvittering.init.js","webpack://cancerdk/./src/components/ImageGallery/ImageGallery.init.js","webpack://cancerdk/./src/components/LocationCard/LocationCard.init.js","webpack://cancerdk/./src/components/LoginOverlay/LoginOverlay.init.js","webpack://cancerdk/./src/components/LotteryForm/LotteryForm.init.js","webpack://cancerdk/./src/components/MaterialCard/MaterialCard.init.js","webpack://cancerdk/./src/components/MemberListOverlay/MemberListOverlay.init.js","webpack://cancerdk/./src/components/MemberListOverlayFVL/MemberListOverlayFVL.init.js","webpack://cancerdk/./src/components/MemberOverlay/MemberOverlay.init.js","webpack://cancerdk/./src/components/MemberOverlayProfileCard/MemberOverlayProfileCard.init.js","webpack://cancerdk/./src/components/MitIdLogout/MitIdLogout.init.js","webpack://cancerdk/./src/components/MoveFileOverlay/MoveFileOverlay.init.js","webpack://cancerdk/./src/components/NoSearchResults/NoSearchResults.init.js","webpack://cancerdk/./src/components/NotificationList/NotificationList.init.js","webpack://cancerdk/./src/components/OpretHoldOverlay/OpretHoldOverlay.init.js","webpack://cancerdk/./src/components/OrdreOverview/OrdreOverview.init.js","webpack://cancerdk/./src/components/OverlayLinkInterceptor/OverlayComponents.init.js","webpack://cancerdk/./src/components/PersonalDonationStep2a/PersonalDonationStep2a.init.js","webpack://cancerdk/./src/components/PersonalDonationStep3/PersonalDonationStep3.init.js","webpack://cancerdk/./src/components/PickUpAddress/PickUpAddress.init.js","webpack://cancerdk/./src/components/PodcastSliderCard/PodcastSliderCard.init.js","webpack://cancerdk/./src/components/PostAside/PostAside.init.js","webpack://cancerdk/./src/components/PostComment/PostComment.init.js","webpack://cancerdk/./src/components/PostHeader/PostHeader.init.js","webpack://cancerdk/./src/components/PostHeaderAddComment/PostHeaderAddComment.init.js","webpack://cancerdk/./src/components/PostsList/PostsList.init.js","webpack://cancerdk/./src/components/ProductCard/ProductCard.init.js","webpack://cancerdk/./src/components/ProductDetail/ProductDetail.init.js","webpack://cancerdk/./src/components/ProductsCardsSlider/ProductsCardsSlider.init.js","webpack://cancerdk/./src/components/ProfileDeleted/ProfileDeleted.init.js","webpack://cancerdk/./src/components/ProfilePicture/ProfilePicture.init.js","webpack://cancerdk/./src/components/ProjectCard/ProjectCard.init.js","webpack://cancerdk/./src/components/ProjectsList/ProjectsList.init.js","webpack://cancerdk/./src/components/ReceiptContent/ReceiptContent.init.js","webpack://cancerdk/./src/components/RelayList/RelayList.init.js","webpack://cancerdk/./src/components/ReportCard/ReportCard.init.js","webpack://cancerdk/./src/components/RequestRole/RequestRole.init.js","webpack://cancerdk/./src/components/RolesFormContent/RolesFormContent.init.js","webpack://cancerdk/./src/components/SearchAndCTA/SearchAndCTA.init.js","webpack://cancerdk/./src/components/SearchFilteredTags/SearchFilteredTags.init.js","webpack://cancerdk/./src/components/SessionStorageFormularTest/SessionStorageFormularTest.init.js","webpack://cancerdk/./src/components/SignUpButton/SignUpButton.init.js","webpack://cancerdk/./src/components/SignUpForm/SignUpForm.init.js","webpack://cancerdk/./src/components/SimpleCard/SimpleCard.init.js","webpack://cancerdk/./src/components/SortDropdown/SortDropdown.init.js","webpack://cancerdk/./src/components/StafetActions/StafetActions.init.js","webpack://cancerdk/./src/components/StafetAddDeltager/StafetAddDeltager.init.js","webpack://cancerdk/./src/components/StafetAddMoreDeltagerFlow/StafetAddMoreDeltagerFlow.init.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldFlow/StafetDeltagPaaHoldFlow.init.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepFour/StafetDeltagPaaHoldStepFour.init.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepOne/StafetDeltagPaaHoldStepOne.init.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepThree/StafetDeltagPaaHoldStepThree.init.js","webpack://cancerdk/./src/components/StafetDeltagPaaHoldStepTwo/StafetDeltagPaaHoldStepTwo.init.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterFlow/StafetDeltagSomFighterFlow.init.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepOne/StafetDeltagSomFighterStepOne.init.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepThree/StafetDeltagSomFighterStepThree.init.js","webpack://cancerdk/./src/components/StafetDeltagSomFighterStepTwo/StafetDeltagSomFighterStepTwo.init.js","webpack://cancerdk/./src/components/StafetDonationFlow/StafetDonationFlow.init.js","webpack://cancerdk/./src/components/StafetDonationStepOne/StafetDonationStepOne.init.js","webpack://cancerdk/./src/components/StafetDonationStepPrivat/StafetDonationStepPrivat.init.js","webpack://cancerdk/./src/components/StafetDonationStepTwo/StafetDonationStepTwo.init.js","webpack://cancerdk/./src/components/StafetDonationStepVirksomhed/StafetDonationStepVirksomhed.init.js","webpack://cancerdk/./src/components/StafetDonationTaendLysFlow/StafetDonationTaendLysFlow.init.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepOne/StafetDonationTaendLysStepOne.init.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepThree/StafetDonationTaendLysStepThree.init.js","webpack://cancerdk/./src/components/StafetDonationTaendLysStepTwo/StafetDonationTaendLysStepTwo.init.js","webpack://cancerdk/./src/components/StafetEditHoldFlow/StafetEditHoldFlow.init.js","webpack://cancerdk/./src/components/StafetHeader/StafetHeader.init.js","webpack://cancerdk/./src/components/StafetLysPoserList/StafetLysPoserList.init.js","webpack://cancerdk/./src/components/StafetOpretHoldFlow/StafetOpretHoldFlow.init.js","webpack://cancerdk/./src/components/StafetOpretHoldStepOne/StafetOpretHoldStepOne.init.js","webpack://cancerdk/./src/components/StafetOpretHoldStepTwo/StafetOpretHoldStepTwo.init.js","webpack://cancerdk/./src/components/StafetPayment/StafetPayment.init.js","webpack://cancerdk/./src/components/StafetProfileForm/StafetProfileForm.init.js","webpack://cancerdk/./src/components/StafetRoundCounter/StafetRoundCounter.init.js","webpack://cancerdk/./src/components/StafetRoundCounterAccordion/StafetRoundCounterAccordion.init.js","webpack://cancerdk/./src/components/SuccessPage/SuccessPage.init.js","webpack://cancerdk/./src/components/SupportSelector/SupportSelector.init.js","webpack://cancerdk/./src/components/TeamList/TeamList.init.js","webpack://cancerdk/./src/components/TeamListCard/TeamListCard.init.js","webpack://cancerdk/./src/components/TextEditor/TextEditor.init.js","webpack://cancerdk/./src/components/ThemeCard/ThemeCard.init.js","webpack://cancerdk/./src/components/TilmeldHoldKvittering/TilmeldHoldKvittering.init.js","webpack://cancerdk/./src/components/TilmeldProfilKvittering/TilmeldProfilKvittering.init.js","webpack://cancerdk/./src/components/UploadNewFileOverlay/UploadNewFileOverlay.init.js","webpack://cancerdk/./src/components/UserPostsList/UserPostsList.init.js","webpack://cancerdk/./src/components/WebshopPaymentSelector/WebshopPaymentSelector.init.js"],"sourcesContent":["(function(){\r\n const el = '.kb-js--animated-button'\r\n const scrollTriggerDistance = 300\r\n const DOM = document.querySelector(el)\r\n\r\n const isMobile = Math.min(window.screen.width, window.screen.height) < 768 || navigator.userAgent.indexOf(\"Mobi\") > -1\r\n\r\n const retracted = 'kb-hero-general__animated-button-container--retracted'\r\n\r\n if(!DOM) return false\r\n console.log(\"scrolling\",document.documentElement.scrollTop)\r\n\r\n if(!isMobile) {\r\n DOM.addEventListener('mouseover',()=>DOM.classList.remove(retracted))\r\n DOM.addEventListener('mouseleave',()=>DOM.classList.add(retracted))\r\n } else {\r\n DOM.addEventListener('click',()=> {\r\n if(DOM.classList.contains(retracted) ) {\r\n DOM.classList.remove(retracted)\r\n } else if (!DOM.classList.contains(retracted) ) {\r\n DOM.classList.add(retracted)\r\n }\r\n })\r\n }\r\n \r\n})()\r\n \r\n","// showing file info in file input\r\nconst fileUploads = document.querySelectorAll('.FormFileUpload')\r\n\r\nfileUploads.forEach((uploadField) => {\r\n uploadField.ariaLive = 'polite'\r\n\r\n uploadField\r\n .querySelector('.FormFileUpload__Input')\r\n .addEventListener('change', (e) => {\r\n const [selectedFile] = e.target.files\r\n const { name: fileName, size } = selectedFile\r\n // Convert size in bytes to kilo bytes\r\n const fileSize = (size / 1000).toFixed(2)\r\n const fileNameAndSize = `${fileName} - ${fileSize}KB`\r\n uploadField.querySelector(\r\n '.FormFileUpload__PostedFile'\r\n ).textContent = fileNameAndSize\r\n\r\n const fileRemoveBtn = uploadField.querySelector(\r\n '.FormFileUpload__RemovePostedFile'\r\n )\r\n\r\n if (e.target.files.length > 0 && !fileRemoveBtn) {\r\n const removeBtn = createRemoveBtn()\r\n uploadField.appendChild(removeBtn)\r\n\r\n createEventListnerForRemoveBtn(uploadField)\r\n } else if (e.target.length > 0) {\r\n fileRemoveBtn.remove()\r\n }\r\n })\r\n})\r\n\r\nfunction createRemoveBtn() {\r\n const removeBtn = document.createElement('button')\r\n removeBtn.classList.add('FormFileUpload__RemovePostedFile')\r\n removeBtn.innerText = 'Fjern'\r\n return removeBtn\r\n}\r\n\r\nfunction createEventListnerForRemoveBtn(uploadField) {\r\n uploadField\r\n .querySelector('.FormFileUpload__RemovePostedFile')\r\n .addEventListener('click', (e) => {\r\n const fileInput = uploadField.querySelector(\r\n '.FormFileUpload__Input'\r\n )\r\n fileInput.value = ''\r\n uploadField.querySelector(\r\n '.FormFileUpload__PostedFile'\r\n ).textContent = ''\r\n uploadField\r\n .querySelector('.FormFileUpload__RemovePostedFile')\r\n .remove()\r\n })\r\n}\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tox {\\n box-shadow: none;\\n box-sizing: content-box;\\n color: #222f3e;\\n cursor: auto;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: normal;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n vertical-align: initial;\\n white-space: normal;\\n}\\n.tox *:not(svg):not(rect) {\\n box-sizing: inherit;\\n color: inherit;\\n cursor: inherit;\\n direction: inherit;\\n font-family: inherit;\\n font-size: inherit;\\n font-style: inherit;\\n font-weight: inherit;\\n line-height: inherit;\\n -webkit-tap-highlight-color: inherit;\\n text-align: inherit;\\n text-decoration: inherit;\\n text-shadow: inherit;\\n text-transform: inherit;\\n vertical-align: inherit;\\n white-space: inherit;\\n}\\n.tox *:not(svg):not(rect) {\\n /* stylelint-disable-line no-duplicate-selectors */\\n background: transparent;\\n border: 0;\\n box-shadow: none;\\n float: none;\\n height: auto;\\n margin: 0;\\n max-width: none;\\n outline: 0;\\n padding: 0;\\n position: static;\\n width: auto;\\n}\\n.tox:not([dir=rtl]) {\\n direction: ltr;\\n text-align: left;\\n}\\n.tox[dir=rtl] {\\n direction: rtl;\\n text-align: right;\\n}\\n.tox-tinymce {\\n border: 2px solid #eeeeee;\\n border-radius: 10px;\\n box-shadow: none;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: column;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n overflow: hidden;\\n position: relative;\\n visibility: inherit !important;\\n}\\n.tox.tox-tinymce-inline {\\n border: none;\\n box-shadow: none;\\n overflow: initial;\\n}\\n.tox.tox-tinymce-inline .tox-editor-container {\\n overflow: initial;\\n}\\n.tox.tox-tinymce-inline .tox-editor-header {\\n background-color: #fff;\\n border: 2px solid #eeeeee;\\n border-radius: 10px;\\n box-shadow: none;\\n overflow: hidden;\\n}\\n.tox-tinymce-aux {\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n z-index: 1300;\\n}\\n.tox-tinymce *:focus,\\n.tox-tinymce-aux *:focus {\\n outline: none;\\n}\\nbutton::-moz-focus-inner {\\n border: 0;\\n}\\n.tox[dir=rtl] .tox-icon--flip svg {\\n transform: rotateY(180deg);\\n}\\n.tox .accessibility-issue__header {\\n align-items: center;\\n display: flex;\\n margin-bottom: 4px;\\n}\\n.tox .accessibility-issue__description {\\n align-items: stretch;\\n border-radius: 6px;\\n display: flex;\\n justify-content: space-between;\\n}\\n.tox .accessibility-issue__description > div {\\n padding-bottom: 4px;\\n}\\n.tox .accessibility-issue__description > div > div {\\n align-items: center;\\n display: flex;\\n margin-bottom: 4px;\\n}\\n.tox .accessibility-issue__description > div > div .tox-icon svg {\\n display: block;\\n}\\n.tox .accessibility-issue__repair {\\n margin-top: 16px;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description {\\n background-color: rgba(0, 101, 216, 0.1);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 {\\n color: #006ce7;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg {\\n fill: #006ce7;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon {\\n background-color: #006ce7;\\n color: #fff;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:hover,\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:focus {\\n background-color: #0060ce;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:active {\\n background-color: #0054b4;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description {\\n background-color: rgba(255, 165, 0, 0.08);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 {\\n color: #8f5d00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg {\\n fill: #8f5d00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon {\\n background-color: #FFE89D;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:hover,\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:focus {\\n background-color: #F2D574;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:active {\\n background-color: #E8C657;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description {\\n background-color: rgba(204, 0, 0, 0.1);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 {\\n color: #c00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg {\\n fill: #c00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon {\\n background-color: #F2BFBF;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:hover,\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:focus {\\n background-color: #E9A4A4;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:active {\\n background-color: #EE9494;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description {\\n background-color: rgba(120, 171, 70, 0.1);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child {\\n display: none;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 {\\n color: #527530;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg {\\n fill: #527530;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue__header .tox-form__group h1,\\n.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 {\\n font-size: 14px;\\n margin-top: 0;\\n}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button {\\n margin-left: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) {\\n margin-left: auto;\\n}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description {\\n padding: 4px 4px 4px 8px;\\n}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button {\\n margin-right: 4px;\\n}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) {\\n margin-right: auto;\\n}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description {\\n padding: 4px 8px 4px 4px;\\n}\\n.tox .mce-codemirror {\\n background: #fff;\\n bottom: 0;\\n font-size: 13px;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 1;\\n}\\n.tox .mce-codemirror.tox-inline-codemirror {\\n margin: 8px;\\n position: absolute;\\n}\\n.tox .tox-advtemplate .tox-form__grid {\\n flex: 1;\\n}\\n.tox .tox-advtemplate .tox-form__grid > div:first-child {\\n display: flex;\\n flex-direction: column;\\n width: 30%;\\n}\\n.tox .tox-advtemplate .tox-form__grid > div:first-child > div:nth-child(2) {\\n flex-basis: 0;\\n flex-grow: 1;\\n overflow: auto;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-advtemplate .tox-form__grid > div:first-child {\\n width: 100%;\\n }\\n}\\n.tox .tox-advtemplate iframe {\\n border-color: #eeeeee;\\n border-radius: 10px;\\n border-style: solid;\\n border-width: 1px;\\n margin: 0 10px;\\n}\\n.tox .tox-anchorbar {\\n display: flex;\\n flex: 0 0 auto;\\n}\\n.tox .tox-bottom-anchorbar {\\n display: flex;\\n flex: 0 0 auto;\\n}\\n.tox .tox-bar {\\n display: flex;\\n flex: 0 0 auto;\\n}\\n.tox .tox-button {\\n background-color: #006ce7;\\n background-image: none;\\n background-position: 0 0;\\n background-repeat: repeat;\\n border-color: #006ce7;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n color: #fff;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n line-height: 24px;\\n margin: 0;\\n outline: none;\\n padding: 4px 16px;\\n position: relative;\\n text-align: center;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n text-transform: none;\\n white-space: nowrap;\\n}\\n.tox .tox-button::before {\\n border-radius: 6px;\\n bottom: -1px;\\n box-shadow: inset 0 0 0 1px #fff, 0 0 0 2px #006ce7;\\n content: '';\\n left: -1px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n right: -1px;\\n top: -1px;\\n}\\n.tox .tox-button[disabled] {\\n background-color: #006ce7;\\n background-image: none;\\n border-color: #006ce7;\\n box-shadow: none;\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-button:focus:not(:disabled) {\\n background-color: #0060ce;\\n background-image: none;\\n border-color: #0060ce;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button:focus:not(:disabled)::before {\\n opacity: 1;\\n}\\n.tox .tox-button:hover:not(:disabled) {\\n background-color: #0060ce;\\n background-image: none;\\n border-color: #0060ce;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button:active:not(:disabled) {\\n background-color: #0054b4;\\n background-image: none;\\n border-color: #0054b4;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled {\\n background-color: #0054b4;\\n background-image: none;\\n border-color: #0054b4;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled[disabled] {\\n background-color: #0054b4;\\n background-image: none;\\n border-color: #0054b4;\\n box-shadow: none;\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-button.tox-button--enabled:focus:not(:disabled) {\\n background-color: #00489b;\\n background-image: none;\\n border-color: #00489b;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled:hover:not(:disabled) {\\n background-color: #00489b;\\n background-image: none;\\n border-color: #00489b;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled:active:not(:disabled) {\\n background-color: #003c81;\\n background-image: none;\\n border-color: #003c81;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button--icon-and-text,\\n.tox .tox-button.tox-button--icon-and-text,\\n.tox .tox-button.tox-button--secondary.tox-button--icon-and-text {\\n display: flex;\\n padding: 5px 4px;\\n}\\n.tox .tox-button--icon-and-text .tox-icon svg,\\n.tox .tox-button.tox-button--icon-and-text .tox-icon svg,\\n.tox .tox-button.tox-button--secondary.tox-button--icon-and-text .tox-icon svg {\\n display: block;\\n fill: currentColor;\\n}\\n.tox .tox-button--secondary {\\n background-color: #f0f0f0;\\n background-image: none;\\n background-position: 0 0;\\n background-repeat: repeat;\\n border-color: #f0f0f0;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n color: #222f3e;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n outline: none;\\n padding: 4px 16px;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n text-transform: none;\\n}\\n.tox .tox-button--secondary[disabled] {\\n background-color: #f0f0f0;\\n background-image: none;\\n border-color: #f0f0f0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-button--secondary:focus:not(:disabled) {\\n background-color: #e3e3e3;\\n background-image: none;\\n border-color: #e3e3e3;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary:hover:not(:disabled) {\\n background-color: #e3e3e3;\\n background-image: none;\\n border-color: #e3e3e3;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary:active:not(:disabled) {\\n background-color: #d6d6d6;\\n background-image: none;\\n border-color: #d6d6d6;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled {\\n background-color: #a8c8ed;\\n background-image: none;\\n border-color: #a8c8ed;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled[disabled] {\\n background-color: #a8c8ed;\\n background-image: none;\\n border-color: #a8c8ed;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-button--secondary.tox-button--enabled:focus:not(:disabled) {\\n background-color: #93bbe9;\\n background-image: none;\\n border-color: #93bbe9;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled:hover:not(:disabled) {\\n background-color: #93bbe9;\\n background-image: none;\\n border-color: #93bbe9;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled:active:not(:disabled) {\\n background-color: #7daee4;\\n background-image: none;\\n border-color: #7daee4;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--icon,\\n.tox .tox-button.tox-button--icon,\\n.tox .tox-button.tox-button--secondary.tox-button--icon {\\n padding: 4px;\\n}\\n.tox .tox-button--icon .tox-icon svg,\\n.tox .tox-button.tox-button--icon .tox-icon svg,\\n.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg {\\n display: block;\\n fill: currentColor;\\n}\\n.tox .tox-button-link {\\n background: 0;\\n border: none;\\n box-sizing: border-box;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: normal;\\n line-height: 1.3;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.tox .tox-button-link--sm {\\n font-size: 14px;\\n}\\n.tox .tox-button--naked {\\n background-color: transparent;\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked[disabled] {\\n background-color: rgba(34, 47, 62, 0.12);\\n border-color: transparent;\\n box-shadow: unset;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-button--naked:hover:not(:disabled) {\\n background-color: rgba(34, 47, 62, 0.12);\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked:focus:not(:disabled) {\\n background-color: rgba(34, 47, 62, 0.12);\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked:active:not(:disabled) {\\n background-color: rgba(34, 47, 62, 0.18);\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked .tox-icon svg {\\n fill: currentColor;\\n}\\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {\\n color: #222f3e;\\n}\\n.tox .tox-checkbox {\\n align-items: center;\\n border-radius: 6px;\\n cursor: pointer;\\n display: flex;\\n height: 36px;\\n min-width: 36px;\\n}\\n.tox .tox-checkbox__input {\\n /* Hide from view but visible to screen readers */\\n height: 1px;\\n overflow: hidden;\\n position: absolute;\\n top: auto;\\n width: 1px;\\n}\\n.tox .tox-checkbox__icons {\\n align-items: center;\\n border-radius: 6px;\\n box-shadow: 0 0 0 2px transparent;\\n box-sizing: content-box;\\n display: flex;\\n height: 24px;\\n justify-content: center;\\n padding: calc(4px - 1px);\\n width: 24px;\\n}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n display: block;\\n fill: rgba(34, 47, 62, 0.3);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n fill: currentColor !important;\\n }\\n}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\\n display: none;\\n fill: #006ce7;\\n}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {\\n display: none;\\n fill: #006ce7;\\n}\\n.tox .tox-checkbox--disabled {\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n display: none;\\n}\\n.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg {\\n display: block;\\n}\\n.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n display: none;\\n}\\n.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\\n display: block;\\n}\\n.tox input.tox-checkbox__input:focus + .tox-checkbox__icons {\\n border-radius: 6px;\\n box-shadow: inset 0 0 0 1px #006ce7;\\n padding: calc(4px - 1px);\\n}\\n.tox:not([dir=rtl]) .tox-checkbox__label {\\n margin-left: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-checkbox__input {\\n left: -10000px;\\n}\\n.tox:not([dir=rtl]) .tox-bar .tox-checkbox {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-checkbox__label {\\n margin-right: 4px;\\n}\\n.tox[dir=rtl] .tox-checkbox__input {\\n right: -10000px;\\n}\\n.tox[dir=rtl] .tox-bar .tox-checkbox {\\n margin-right: 4px;\\n}\\n.tox {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-collection--toolbar .tox-collection__group {\\n display: flex;\\n padding: 0;\\n}\\n.tox .tox-collection--grid .tox-collection__group {\\n display: flex;\\n flex-wrap: wrap;\\n max-height: 208px;\\n overflow-x: hidden;\\n overflow-y: auto;\\n padding: 0;\\n}\\n.tox .tox-collection--list .tox-collection__group {\\n border-bottom-width: 0;\\n border-color: #e3e3e3;\\n border-left-width: 0;\\n border-right-width: 0;\\n border-style: solid;\\n border-top-width: 1px;\\n padding: 4px 0;\\n}\\n.tox .tox-collection--list .tox-collection__group:first-child {\\n border-top-width: 0;\\n}\\n.tox .tox-collection__group-heading {\\n background-color: #fcfcfc;\\n color: rgba(34, 47, 62, 0.7);\\n cursor: default;\\n font-size: 12px;\\n font-style: normal;\\n font-weight: normal;\\n margin-bottom: 4px;\\n margin-top: -4px;\\n padding: 4px 8px;\\n text-transform: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.tox .tox-collection__item {\\n align-items: center;\\n border-radius: 3px;\\n color: #222f3e;\\n display: flex;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.tox .tox-collection--list .tox-collection__item {\\n padding: 4px 8px;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item {\\n border-radius: 3px;\\n padding: 4px;\\n}\\n.tox .tox-collection--grid .tox-collection__item {\\n border-radius: 3px;\\n padding: 4px;\\n}\\n.tox .tox-collection--list .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n background-color: #fff;\\n color: #222f3e;\\n}\\n.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n background-color: #006ce7;\\n color: #fff;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n border: solid 1px;\\n }\\n}\\n.tox .tox-collection--grid .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n background-color: #a6ccf7;\\n color: #222f3e;\\n}\\n.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n background-color: #f0f0f0;\\n color: #222f3e;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 inset;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n background-color: #a6ccf7;\\n color: #222f3e;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--toolbar .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n border-radius: 3px;\\n outline: solid 1px;\\n }\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n color: #222f3e;\\n background-color: #fff;\\n position: relative;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):hover {\\n background-color: #f0f0f0;\\n color: #222f3e;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus {\\n background-color: #f0f0f0;\\n color: #222f3e;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):hover {\\n border-radius: 3px;\\n outline: solid 1px;\\n }\\n}\\n.tox .tox-collection__item-icon,\\n.tox .tox-collection__item-checkmark {\\n align-items: center;\\n display: flex;\\n height: 24px;\\n justify-content: center;\\n width: 24px;\\n}\\n.tox .tox-collection__item-icon svg,\\n.tox .tox-collection__item-checkmark svg {\\n fill: currentColor;\\n}\\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon {\\n height: 48px;\\n width: 48px;\\n}\\n.tox .tox-collection__item-label {\\n color: currentColor;\\n display: inline-block;\\n flex: 1;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 24px;\\n max-width: 100%;\\n text-transform: none;\\n word-break: break-all;\\n}\\n.tox .tox-collection__item-accessory {\\n color: currentColor;\\n display: inline-block;\\n font-size: 14px;\\n height: 24px;\\n line-height: 24px;\\n text-transform: none;\\n}\\n.tox .tox-collection__item-caret {\\n align-items: center;\\n display: flex;\\n min-height: 24px;\\n}\\n.tox .tox-collection__item-caret::after {\\n content: '';\\n font-size: 0;\\n min-height: inherit;\\n}\\n.tox .tox-collection__item-caret svg {\\n fill: currentColor;\\n}\\n.tox .tox-collection__item--state-disabled {\\n background-color: transparent;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg {\\n display: none;\\n}\\n.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark {\\n display: none;\\n}\\n.tox .tox-collection--horizontal {\\n background-color: #fff;\\n border: 1px solid #e3e3e3;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n display: flex;\\n flex: 0 0 auto;\\n flex-shrink: 0;\\n flex-wrap: nowrap;\\n margin-bottom: 0;\\n overflow-x: auto;\\n padding: 0;\\n}\\n.tox .tox-collection--horizontal .tox-collection__group {\\n align-items: center;\\n display: flex;\\n flex-wrap: nowrap;\\n margin: 0;\\n padding: 0 4px;\\n}\\n.tox .tox-collection--horizontal .tox-collection__item {\\n height: 28px;\\n margin: 6px 1px 5px 0;\\n padding: 0 4px;\\n}\\n.tox .tox-collection--horizontal .tox-collection__item-label {\\n white-space: nowrap;\\n}\\n.tox .tox-collection--horizontal .tox-collection__item-caret {\\n margin-left: 4px;\\n}\\n.tox .tox-collection__item-container {\\n display: flex;\\n}\\n.tox .tox-collection__item-container--row {\\n align-items: center;\\n flex: 1 1 auto;\\n flex-direction: row;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--align-left {\\n margin-right: auto;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--align-right {\\n justify-content: flex-end;\\n margin-left: auto;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top {\\n align-items: flex-start;\\n margin-bottom: auto;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle {\\n align-items: center;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom {\\n align-items: flex-end;\\n margin-top: auto;\\n}\\n.tox .tox-collection__item-container--column {\\n align-self: center;\\n flex: 1 1 auto;\\n flex-direction: column;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--align-left {\\n align-items: flex-start;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--align-right {\\n align-items: flex-end;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top {\\n align-self: flex-start;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle {\\n align-self: center;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom {\\n align-self: flex-end;\\n}\\n.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) {\\n border-right: 1px solid transparent;\\n}\\n.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) {\\n margin-left: 8px;\\n}\\n.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child {\\n margin-left: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-collection__item-accessory {\\n margin-left: 16px;\\n text-align: right;\\n}\\n.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret {\\n margin-left: 16px;\\n}\\n.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) {\\n border-left: 1px solid transparent;\\n}\\n.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) {\\n margin-right: 8px;\\n}\\n.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child {\\n margin-right: 4px;\\n}\\n.tox[dir=rtl] .tox-collection__item-accessory {\\n margin-right: 16px;\\n text-align: left;\\n}\\n.tox[dir=rtl] .tox-collection .tox-collection__item-caret {\\n margin-right: 16px;\\n transform: rotateY(180deg);\\n}\\n.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret {\\n margin-right: 4px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-hue-slider,\\n .tox .tox-rgb-form .tox-rgba-preview {\\n background-color: currentColor !important;\\n border: 1px solid highlight !important;\\n forced-color-adjust: none;\\n }\\n}\\n.tox .tox-color-picker-container {\\n display: flex;\\n flex-direction: row;\\n height: 225px;\\n margin: 0;\\n}\\n.tox .tox-sv-palette {\\n box-sizing: border-box;\\n display: flex;\\n height: 100%;\\n}\\n.tox .tox-sv-palette-spectrum {\\n height: 100%;\\n}\\n.tox .tox-sv-palette,\\n.tox .tox-sv-palette-spectrum {\\n width: 225px;\\n}\\n.tox .tox-sv-palette-thumb {\\n background: none;\\n border: 1px solid black;\\n border-radius: 50%;\\n box-sizing: content-box;\\n height: 12px;\\n position: absolute;\\n width: 12px;\\n}\\n.tox .tox-sv-palette-inner-thumb {\\n border: 1px solid white;\\n border-radius: 50%;\\n height: 10px;\\n position: absolute;\\n width: 10px;\\n}\\n.tox .tox-hue-slider {\\n box-sizing: border-box;\\n height: 100%;\\n width: 25px;\\n}\\n.tox .tox-hue-slider-spectrum {\\n background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00);\\n height: 100%;\\n width: 100%;\\n}\\n.tox .tox-hue-slider,\\n.tox .tox-hue-slider-spectrum {\\n width: 20px;\\n}\\n.tox .tox-hue-slider-spectrum:focus,\\n.tox .tox-sv-palette-spectrum:focus {\\n outline: #08f solid;\\n}\\n.tox .tox-hue-slider-thumb {\\n background: white;\\n border: 1px solid black;\\n box-sizing: content-box;\\n height: 4px;\\n width: 100%;\\n}\\n.tox .tox-rgb-form {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n.tox .tox-rgb-form div {\\n align-items: center;\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 5px;\\n width: inherit;\\n}\\n.tox .tox-rgb-form input {\\n min-width: 6em;\\n}\\n.tox .tox-rgb-form input.tox-invalid {\\n /* Need !important to override Chrome's focus styling unfortunately */\\n border: 1px solid #f00 !important;\\n box-shadow: 0 0 0 1px #f00;\\n}\\n.tox .tox-rgb-container {\\n position: relative;\\n}\\n.tox .tox-rgb-form .tox-invalid-icon {\\n align-content: center;\\n align-items: center;\\n display: none;\\n height: 100%;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n.tox .tox-rgb-form .tox-invalid-icon .tox-control-wrap__status-icon-invalid {\\n margin: 0;\\n}\\n.tox .tox-rgb-warning-note {\\n background-color: #f5cccc;\\n border: 1px solid #f0b3b3;\\n border-radius: 3px;\\n color: #77181f;\\n padding: 3px;\\n}\\n.tox input.tox-invalid + .tox-invalid-icon {\\n display: flex;\\n}\\n.tox .tox-rgb-form .tox-rgba-preview {\\n border: 1px solid black;\\n flex-grow: 2;\\n margin-bottom: 0;\\n}\\n.tox:not([dir=rtl]) .tox-sv-palette {\\n margin-right: 15px;\\n}\\n.tox:not([dir=rtl]) .tox-hue-slider {\\n margin-right: 15px;\\n}\\n.tox:not([dir=rtl]) .tox-hue-slider-thumb {\\n margin-left: -1px;\\n}\\n.tox:not([dir=rtl]) .tox-rgb-form label {\\n margin-right: 0.5em;\\n}\\n.tox[dir=rtl] .tox-sv-palette {\\n margin-left: 15px;\\n}\\n.tox[dir=rtl] .tox-hue-slider {\\n margin-left: 15px;\\n}\\n.tox[dir=rtl] .tox-hue-slider-thumb {\\n margin-right: -1px;\\n}\\n.tox[dir=rtl] .tox-rgb-form label {\\n margin-left: 0.5em;\\n}\\n.tox .tox-toolbar .tox-swatches,\\n.tox .tox-toolbar__primary .tox-swatches,\\n.tox .tox-toolbar__overflow .tox-swatches {\\n margin: 5px 0 6px 11px;\\n}\\n.tox .tox-collection--list .tox-collection__group .tox-swatches-menu {\\n border: 0;\\n margin: -4px -4px;\\n}\\n.tox .tox-swatches__row {\\n display: flex;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-swatches__row {\\n forced-color-adjust: none;\\n }\\n}\\n.tox .tox-swatch {\\n height: 30px;\\n transition: transform 0.15s, box-shadow 0.15s;\\n width: 30px;\\n}\\n.tox .tox-swatch:hover,\\n.tox .tox-swatch:focus {\\n box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset;\\n transform: scale(0.8);\\n}\\n.tox .tox-swatch--remove {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n.tox .tox-swatch--remove svg path {\\n stroke: #e74c3c;\\n}\\n.tox .tox-swatches__picker-btn {\\n align-items: center;\\n background-color: transparent;\\n border: 0;\\n cursor: pointer;\\n display: flex;\\n height: 30px;\\n justify-content: center;\\n outline: none;\\n padding: 0;\\n width: 30px;\\n}\\n.tox .tox-swatches__picker-btn svg {\\n fill: #222f3e;\\n height: 24px;\\n width: 24px;\\n}\\n.tox .tox-swatches__picker-btn:hover {\\n background: #f0f0f0;\\n}\\n.tox div.tox-swatch:not(.tox-swatch--remove) svg {\\n display: none;\\n fill: #222f3e;\\n height: 24px;\\n margin: calc((30px - 24px) / 2) calc((30px - 24px) / 2);\\n width: 24px;\\n}\\n.tox div.tox-swatch:not(.tox-swatch--remove) svg path {\\n fill: #fff;\\n paint-order: stroke;\\n stroke: #222f3e;\\n stroke-width: 2px;\\n}\\n.tox div.tox-swatch:not(.tox-swatch--remove).tox-collection__item--enabled svg {\\n display: block;\\n}\\n.tox:not([dir=rtl]) .tox-swatches__picker-btn {\\n margin-left: auto;\\n}\\n.tox[dir=rtl] .tox-swatches__picker-btn {\\n margin-right: auto;\\n}\\n.tox {\\n /* Animation for deleting a comment */\\n /* A comment fades to 0 when it is being deleted, then is removed */\\n}\\n.tox .tox-conversations {\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n height: 100%;\\n /* This is to give the sidebar a consistent width. Need a solution for this */\\n min-width: 300px;\\n max-width: 300px;\\n width: 300px;\\n}\\n.tox .tox-conversations__header {\\n align-items: center;\\n display: flex;\\n justify-content: space-between;\\n box-shadow: 0px 4px 8px 0px rgba(34, 47, 62, 0.1);\\n padding: 8px 12px;\\n background: #fff;\\n}\\n.tox .tox-conversations__title {\\n font-size: 20px;\\n font-weight: 400;\\n padding: 8px 0 8px 0;\\n color: #222f3e;\\n line-height: 28px;\\n}\\n.tox .tox-comment {\\n background: #fff;\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n padding: 8px 8px 16px 8px;\\n position: relative;\\n}\\n.tox .tox-comment:hover {\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n}\\n.tox .tox-comment.tox-comment--selected {\\n background-color: #fff2c9;\\n border: 1px solid #ffcf30;\\n box-shadow: 0px 4px 8px 0px rgba(34, 47, 62, 0.1);\\n}\\n.tox .tox-comment.tox-comment--selected:focus {\\n border: 2px solid #006ce7;\\n margin: -1px;\\n}\\n.tox .tox-comment.tox-comment--selected:focus:not(:first-child) {\\n margin-top: 7px;\\n}\\n.tox .tox-comment.tox-comment--selected .tox-comment__single {\\n margin-bottom: 12px;\\n}\\n.tox .tox-comment.tox-comment--selected .tox-comment__single:focus {\\n position: relative;\\n}\\n.tox .tox-comment.tox-comment--selected .tox-comment__single:focus::after {\\n top: -9px;\\n pointer-events: none;\\n position: absolute;\\n content: \\\"\\\";\\n display: block;\\n bottom: -9px;\\n left: -9px;\\n right: -9px;\\n border-radius: 6px;\\n border: 2px solid #006ce7;\\n}\\n.tox .tox-comment__header {\\n align-items: center;\\n color: #222f3e;\\n display: flex;\\n justify-content: space-between;\\n}\\n.tox .tox-comment__date {\\n color: #222f3e;\\n font-size: 12px;\\n line-height: 18px;\\n}\\n.tox .tox-comment__body {\\n color: #222f3e;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n margin-top: 8px;\\n position: relative;\\n text-transform: initial;\\n transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);\\n white-space: pre-wrap;\\n /* We remove the transitions when wanting to measure and jump straight to collapsed or expanded */\\n}\\n.tox .tox-comment__body.tox-comment__body--expanded {\\n max-height: 100em;\\n transition: max-height 1s ease-in-out;\\n}\\n.tox .tox-comment__body.tox-comment__body--pending {\\n transition: max-height 0s;\\n}\\n.tox .tox-comment__body p {\\n margin: 0;\\n}\\n.tox .tox-comment__body textarea {\\n resize: none;\\n white-space: normal;\\n width: 100%;\\n}\\n.tox .tox-comment__loading-text {\\n align-items: center;\\n color: #222f3e;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n}\\n.tox .tox-comment__loading-text > div {\\n padding-bottom: 16px;\\n}\\n.tox .tox-comment__overlaytext {\\n bottom: 0;\\n flex-direction: column;\\n font-size: 14px;\\n left: 0;\\n padding: 1em;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 10;\\n}\\n.tox .tox-comment__overlaytext p {\\n background-color: #fff;\\n box-shadow: 0 0 8px 8px #fff;\\n color: #222f3e;\\n text-align: center;\\n}\\n.tox .tox-comment__overlaytext div:nth-of-type(2) {\\n font-size: 0.8em;\\n}\\n.tox .tox-comment__expander {\\n padding-top: 8px;\\n}\\n.tox .tox-comment__expander p {\\n color: rgba(34, 47, 62, 0.7);\\n font-size: 14px;\\n font-style: normal;\\n /* Need a focus highlight on the show more/less button */\\n}\\n.tox .tox-comment__expander p:focus {\\n font-weight: bold;\\n}\\n.tox .tox-comment__buttonspacing {\\n padding-top: 16px;\\n text-align: center;\\n}\\n.tox .tox-tbtn.tox-comment__mention-btn {\\n display: flex;\\n width: 34px;\\n height: 34px;\\n padding: 5px;\\n justify-content: center;\\n align-items: center;\\n margin: 0;\\n background-color: transparent;\\n}\\n.tox .tox-comment-thread {\\n background: #fff;\\n position: relative;\\n border-radius: 6px;\\n background-color: transparent;\\n}\\n.tox .tox-comment-thread > *:not(:first-child) {\\n margin-top: 8px;\\n}\\n.tox .tox-comment-thread__overlay::after {\\n background: #fff;\\n bottom: 0;\\n content: \\\"\\\";\\n display: flex;\\n left: 0;\\n opacity: 0.9;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 5;\\n}\\n.tox .tox-comment__reply {\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n margin-top: 8px;\\n}\\n.tox .tox-comment__reply > *:first-child {\\n margin-bottom: 8px;\\n width: 100%;\\n}\\n.tox .tox-comment__edit {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n margin-top: 8px;\\n}\\n.tox .tox-comment__gradient::after {\\n background: linear-gradient(rgba(255, 255, 255, 0), #fff);\\n bottom: 0;\\n content: \\\"\\\";\\n display: block;\\n height: 5em;\\n margin-top: -40px;\\n position: absolute;\\n width: 100%;\\n}\\n.tox .tox-comment__overlay {\\n background: #fff;\\n bottom: 0;\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n left: 0;\\n opacity: 0.9;\\n position: absolute;\\n right: 0;\\n text-align: center;\\n top: 0;\\n z-index: 5;\\n}\\n.tox .tox-comment__busy-spinner {\\n align-items: center;\\n background-color: #fff;\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 20;\\n}\\n.tox .tox-comment__scroll {\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 1;\\n overflow: auto;\\n padding: 12px;\\n scroll-behavior: smooth;\\n}\\n.tox .tox-comment--disappearing {\\n transition: opacity 0.5s ease;\\n}\\n.tox .tox-comment[data-transitioning-destination=\\\"deleting\\\"] {\\n opacity: 0;\\n}\\n.tox .tox-skeleton .tox-skeleton__line {\\n height: 16px;\\n width: 100%;\\n background: linear-gradient(to right, rgba(240, 240, 240, 0.5) 8%, rgba(240, 240, 240, 0.7) 18%, rgba(240, 240, 240, 0.5) 33%);\\n animation: wave 2s infinite ease-out;\\n}\\n.tox .tox-skeleton .tox-skeleton__circle {\\n height: 36px;\\n width: 36px;\\n margin-right: 8px;\\n border-radius: 100%;\\n background: linear-gradient(to right, rgba(240, 240, 240, 0.5) 8%, rgba(240, 240, 240, 0.7) 18%, rgba(240, 240, 240, 0.5) 33%);\\n animation: wave 2s infinite ease-out;\\n}\\n@keyframes wave {\\n 0% {\\n background-position: -268px 0;\\n }\\n 100% {\\n background-position: 268px 0;\\n }\\n}\\n.tox .tox-ring-loader {\\n width: 10px;\\n height: 10px;\\n border: 1px solid #FFF;\\n border-bottom-color: transparent;\\n border-radius: 50%;\\n display: inline-block;\\n box-sizing: border-box;\\n animation: rotation 1s linear infinite;\\n}\\n@keyframes rotation {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.tox:not([dir=rtl]) .tox-comment__edit {\\n margin-left: 8px;\\n}\\n.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child,\\n.tox:not([dir=rtl]) .tox-comment__edit > *:last-child,\\n.tox:not([dir=rtl]) .tox-comment__reply > *:last-child {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-comment__edit {\\n margin-right: 8px;\\n}\\n.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child,\\n.tox[dir=rtl] .tox-comment__edit > *:last-child,\\n.tox[dir=rtl] .tox-comment__reply > *:last-child {\\n margin-right: 8px;\\n}\\n.tox .tox-user {\\n align-items: center;\\n display: flex;\\n}\\n.tox .tox-user__avatar svg {\\n fill: rgba(34, 47, 62, 0.7);\\n}\\n.tox .tox-user__avatar img {\\n border-radius: 50%;\\n height: 36px;\\n object-fit: cover;\\n vertical-align: middle;\\n width: 36px;\\n}\\n.tox .tox-user__name {\\n color: #222f3e;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: bold;\\n line-height: 18px;\\n text-transform: none;\\n}\\n.tox:not([dir=rtl]) .tox-user__avatar svg,\\n.tox:not([dir=rtl]) .tox-user__avatar img {\\n margin-right: 8px;\\n}\\n.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-user__avatar svg,\\n.tox[dir=rtl] .tox-user__avatar img {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-user__avatar + .tox-user__name {\\n margin-right: 8px;\\n}\\n.tox {\\n /* .tox-dialog-blocker-wrap {\\n //\\n } */\\n}\\n.tox .tox-dialog-wrap {\\n align-items: center;\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1100;\\n}\\n.tox .tox-dialog-wrap__backdrop {\\n background-color: rgba(255, 255, 255, 0.75);\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 1;\\n}\\n.tox .tox-dialog-wrap__backdrop--opaque {\\n background-color: #fff;\\n}\\n.tox .tox-dialog {\\n background-color: #fff;\\n border-color: #eeeeee;\\n border-radius: 10px;\\n border-style: solid;\\n border-width: 0;\\n box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15);\\n display: flex;\\n flex-direction: column;\\n max-height: 100%;\\n max-width: 480px;\\n overflow: hidden;\\n position: relative;\\n width: 95vw;\\n z-index: 2;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-dialog {\\n align-self: flex-start;\\n margin: 8px auto;\\n max-height: calc(100vh - 8px * 2);\\n width: calc(100vw - 16px);\\n }\\n}\\n.tox .tox-dialog-inline {\\n z-index: 1100;\\n}\\n.tox .tox-dialog__header {\\n align-items: center;\\n background-color: #fff;\\n border-bottom: none;\\n color: #222f3e;\\n display: flex;\\n font-size: 16px;\\n justify-content: space-between;\\n padding: 8px 16px 0 16px;\\n position: relative;\\n}\\n.tox .tox-dialog__header .tox-button {\\n z-index: 1;\\n}\\n.tox .tox-dialog__draghandle {\\n cursor: grab;\\n height: 100%;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n}\\n.tox .tox-dialog__draghandle:active {\\n cursor: grabbing;\\n}\\n.tox .tox-dialog__dismiss {\\n margin-left: auto;\\n}\\n.tox .tox-dialog__title {\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n margin: 0;\\n text-transform: none;\\n}\\n.tox .tox-dialog__body {\\n color: #222f3e;\\n display: flex;\\n flex: 1;\\n font-size: 16px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n min-width: 0;\\n text-align: left;\\n text-transform: none;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-dialog__body {\\n flex-direction: column;\\n }\\n}\\n.tox .tox-dialog__body-nav {\\n align-items: flex-start;\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 0;\\n padding: 16px 16px;\\n}\\n@media only screen and (min-width: 768px ) {\\n .tox .tox-dialog__body-nav {\\n max-width: 11em;\\n }\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-dialog__body-nav {\\n flex-direction: row;\\n -webkit-overflow-scrolling: touch;\\n overflow-x: auto;\\n padding-bottom: 0;\\n }\\n}\\n.tox .tox-dialog__body-nav-item {\\n border-bottom: 2px solid transparent;\\n color: rgba(34, 47, 62, 0.7);\\n display: inline-block;\\n flex-shrink: 0;\\n font-size: 14px;\\n line-height: 1.3;\\n margin-bottom: 8px;\\n max-width: 13em;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n}\\n.tox .tox-dialog__body-nav-item:focus {\\n background-color: rgba(0, 108, 231, 0.1);\\n}\\n.tox .tox-dialog__body-nav-item--active {\\n border-bottom: 2px solid #006ce7;\\n color: #006ce7;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-dialog__body-nav-item--active {\\n border-bottom: 2px solid highlight;\\n color: highlight;\\n }\\n}\\n.tox .tox-dialog__body-content {\\n box-sizing: border-box;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n max-height: min(650px, calc(100vh - 110px));\\n overflow: auto;\\n -webkit-overflow-scrolling: touch;\\n padding: 16px 16px;\\n}\\n.tox .tox-dialog__body-content > * {\\n margin-bottom: 0;\\n margin-top: 16px;\\n}\\n.tox .tox-dialog__body-content > *:first-child {\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content > *:last-child {\\n margin-bottom: 0;\\n}\\n.tox .tox-dialog__body-content > *:only-child {\\n margin-bottom: 0;\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content a {\\n color: #006ce7;\\n cursor: pointer;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-dialog__body-content a:hover,\\n.tox .tox-dialog__body-content a:focus {\\n color: #003c81;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-dialog__body-content a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #006ce7;\\n outline-offset: 2px;\\n}\\n.tox .tox-dialog__body-content a:active {\\n color: #00244e;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-dialog__body-content svg {\\n fill: #222f3e;\\n}\\n.tox .tox-dialog__body-content strong {\\n font-weight: bold;\\n}\\n.tox .tox-dialog__body-content ul {\\n list-style-type: disc;\\n}\\n.tox .tox-dialog__body-content ul,\\n.tox .tox-dialog__body-content ol,\\n.tox .tox-dialog__body-content dd {\\n padding-inline-start: 2.5rem;\\n}\\n.tox .tox-dialog__body-content ul,\\n.tox .tox-dialog__body-content ol,\\n.tox .tox-dialog__body-content dl {\\n margin-bottom: 16px;\\n}\\n.tox .tox-dialog__body-content ul,\\n.tox .tox-dialog__body-content ol,\\n.tox .tox-dialog__body-content dl,\\n.tox .tox-dialog__body-content dd,\\n.tox .tox-dialog__body-content dt {\\n display: block;\\n margin-inline-end: 0;\\n margin-inline-start: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1 {\\n color: #222f3e;\\n font-size: 20px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n margin-bottom: 16px;\\n margin-top: 2rem;\\n text-transform: none;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h2 {\\n color: #222f3e;\\n font-size: 16px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n margin-bottom: 16px;\\n margin-top: 2rem;\\n text-transform: none;\\n}\\n.tox .tox-dialog__body-content .tox-form__group p {\\n margin-bottom: 16px;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1:first-child,\\n.tox .tox-dialog__body-content .tox-form__group h2:first-child,\\n.tox .tox-dialog__body-content .tox-form__group p:first-child {\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1:last-child,\\n.tox .tox-dialog__body-content .tox-form__group h2:last-child,\\n.tox .tox-dialog__body-content .tox-form__group p:last-child {\\n margin-bottom: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1:only-child,\\n.tox .tox-dialog__body-content .tox-form__group h2:only-child,\\n.tox .tox-dialog__body-content .tox-form__group p:only-child {\\n margin-bottom: 0;\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--center {\\n text-align: center;\\n}\\n.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--end {\\n text-align: end;\\n}\\n.tox .tox-dialog--width-lg {\\n height: 650px;\\n max-width: 1200px;\\n}\\n.tox .tox-dialog--fullscreen {\\n height: 100%;\\n max-width: 100%;\\n}\\n.tox .tox-dialog--fullscreen .tox-dialog__body-content {\\n max-height: 100%;\\n}\\n.tox .tox-dialog--width-md {\\n max-width: 800px;\\n}\\n.tox .tox-dialog--width-md .tox-dialog__body-content {\\n overflow: auto;\\n}\\n.tox .tox-dialog__body-content--centered {\\n text-align: center;\\n}\\n.tox .tox-dialog__footer {\\n align-items: center;\\n background-color: #fff;\\n border-top: none;\\n display: flex;\\n justify-content: space-between;\\n padding: 8px 16px;\\n}\\n.tox .tox-dialog__footer-start,\\n.tox .tox-dialog__footer-end {\\n display: flex;\\n}\\n.tox .tox-dialog__busy-spinner {\\n align-items: center;\\n background-color: rgba(255, 255, 255, 0.75);\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 3;\\n}\\n.tox .tox-dialog__table {\\n border-collapse: collapse;\\n width: 100%;\\n}\\n.tox .tox-dialog__table thead th {\\n font-weight: bold;\\n padding-bottom: 8px;\\n}\\n.tox .tox-dialog__table thead th:first-child {\\n padding-right: 8px;\\n}\\n.tox .tox-dialog__table tbody tr {\\n border-bottom: 1px solid #626262;\\n}\\n.tox .tox-dialog__table tbody tr:last-child {\\n border-bottom: none;\\n}\\n.tox .tox-dialog__table td {\\n padding-bottom: 8px;\\n padding-top: 8px;\\n}\\n.tox .tox-dialog__table td:first-child {\\n padding-right: 8px;\\n}\\n.tox .tox-dialog__iframe {\\n min-height: 200px;\\n}\\n.tox .tox-dialog__iframe.tox-dialog__iframe--opaque {\\n background: #fff;\\n}\\n.tox .tox-navobj-bordered {\\n position: relative;\\n}\\n.tox .tox-navobj-bordered::before {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n content: '';\\n inset: 0;\\n opacity: 1;\\n pointer-events: none;\\n position: absolute;\\n z-index: 1;\\n}\\n.tox .tox-navobj-bordered iframe {\\n border-radius: 6px;\\n}\\n.tox .tox-navobj-bordered-focus.tox-navobj-bordered::before {\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n outline: none;\\n}\\n.tox .tox-dialog__popups {\\n position: absolute;\\n width: 100%;\\n z-index: 1100;\\n}\\n.tox .tox-dialog__body-iframe {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n}\\n.tox .tox-dialog__body-iframe .tox-navobj {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) {\\n flex: 1;\\n height: 100%;\\n}\\n.tox .tox-dialog-dock-fadeout {\\n opacity: 0;\\n visibility: hidden;\\n}\\n.tox .tox-dialog-dock-fadein {\\n opacity: 1;\\n visibility: visible;\\n}\\n.tox .tox-dialog-dock-transition {\\n transition: visibility 0s linear 0.3s, opacity 0.3s ease;\\n}\\n.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein {\\n transition-delay: 0s;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav {\\n margin-right: 0;\\n }\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) {\\n margin-left: 8px;\\n }\\n}\\n.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *,\\n.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-dialog__body {\\n text-align: right;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav {\\n margin-left: 0;\\n }\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) {\\n margin-right: 8px;\\n }\\n}\\n.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *,\\n.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * {\\n margin-right: 8px;\\n}\\nbody.tox-dialog__disable-scroll {\\n overflow: hidden;\\n}\\n.tox .tox-dropzone-container {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-dropzone {\\n align-items: center;\\n background: #fff;\\n border: 2px dashed #eeeeee;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n justify-content: center;\\n min-height: 100px;\\n padding: 10px;\\n}\\n.tox .tox-dropzone p {\\n color: rgba(34, 47, 62, 0.7);\\n margin: 0 0 16px 0;\\n}\\n.tox .tox-edit-area {\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n position: relative;\\n}\\n.tox .tox-edit-area::before {\\n border: 2px solid #006ce7;\\n border-radius: 4px;\\n content: '';\\n inset: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n transition: opacity 0.15s;\\n z-index: 1;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-edit-area::before {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-edit-area__iframe {\\n background-color: #fff;\\n border: 0;\\n box-sizing: border-box;\\n flex: 1;\\n height: 100%;\\n position: absolute;\\n width: 100%;\\n}\\n.tox.tox-edit-focus .tox-edit-area::before {\\n opacity: 1;\\n}\\n.tox.tox-inline-edit-area {\\n border: 1px dotted #eeeeee;\\n}\\n.tox .tox-editor-container {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.tox .tox-editor-header {\\n display: grid;\\n grid-template-columns: 1fr min-content;\\n z-index: 2;\\n}\\n.tox:not(.tox-tinymce-inline) .tox-editor-header {\\n background-color: #fff;\\n border-bottom: none;\\n box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.1), 0 8px 8px -4px rgba(34, 47, 62, 0.07);\\n padding: 4px 0;\\n}\\n.tox:not(.tox-tinymce-inline) .tox-editor-header:not(.tox-editor-dock-transition) {\\n transition: box-shadow 0.5s;\\n}\\n.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-bottom .tox-editor-header {\\n border-top: 1px solid #e3e3e3;\\n box-shadow: none;\\n}\\n.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on .tox-editor-header {\\n background-color: #fff;\\n box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15);\\n padding: 4px 0;\\n}\\n.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on.tox-tinymce--toolbar-bottom .tox-editor-header {\\n box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15);\\n}\\n.tox.tox:not(.tox-tinymce-inline) .tox-editor-header.tox-editor-header--empty {\\n background: none;\\n border: none;\\n box-shadow: none;\\n padding: 0;\\n}\\n.tox-editor-dock-fadeout {\\n opacity: 0;\\n visibility: hidden;\\n}\\n.tox-editor-dock-fadein {\\n opacity: 1;\\n visibility: visible;\\n}\\n.tox-editor-dock-transition {\\n transition: visibility 0s linear 0.25s, opacity 0.25s ease;\\n}\\n.tox-editor-dock-transition.tox-editor-dock-fadein {\\n transition-delay: 0s;\\n}\\n.tox .tox-control-wrap {\\n flex: 1;\\n position: relative;\\n}\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid {\\n display: none;\\n}\\n.tox .tox-control-wrap svg {\\n display: block;\\n}\\n.tox .tox-control-wrap__status-icon-wrap {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox .tox-control-wrap__status-icon-invalid svg {\\n fill: #c00;\\n}\\n.tox .tox-control-wrap__status-icon-unknown svg {\\n fill: orange;\\n}\\n.tox .tox-control-wrap__status-icon-valid svg {\\n fill: green;\\n}\\n.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,\\n.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,\\n.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield {\\n padding-right: 32px;\\n}\\n.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap {\\n right: 4px;\\n}\\n.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,\\n.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,\\n.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield {\\n padding-left: 32px;\\n}\\n.tox[dir=rtl] .tox-control-wrap__status-icon-wrap {\\n left: 4px;\\n}\\n.tox .tox-custom-preview {\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n flex: 1;\\n padding: 8px;\\n}\\n.tox .tox-autocompleter {\\n max-width: 25em;\\n}\\n.tox .tox-autocompleter .tox-menu {\\n box-sizing: border-box;\\n max-width: 25em;\\n}\\n.tox .tox-autocompleter .tox-autocompleter-highlight {\\n font-weight: bold;\\n}\\n.tox .tox-color-input {\\n display: flex;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-color-input .tox-textfield {\\n z-index: -1;\\n}\\n.tox .tox-color-input span {\\n border-color: rgba(34 47 3.1%);\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n height: 24px;\\n position: absolute;\\n top: 6px;\\n width: 24px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-color-input span {\\n border-color: currentColor;\\n border-width: 2px !important;\\n forced-color-adjust: none;\\n }\\n}\\n.tox .tox-color-input span:hover:not([aria-disabled=true]),\\n.tox .tox-color-input span:focus:not([aria-disabled=true]) {\\n border-color: #006ce7;\\n cursor: pointer;\\n}\\n.tox .tox-color-input span::before {\\n background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%);\\n background-position: 0 0, 0 6px, 6px -6px, -6px 0;\\n background-size: 12px 12px;\\n border: 1px solid #fff;\\n border-radius: 6px;\\n box-sizing: border-box;\\n content: '';\\n height: 24px;\\n left: -1px;\\n position: absolute;\\n top: -1px;\\n width: 24px;\\n z-index: -1;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-color-input span::before {\\n border: none;\\n }\\n}\\n.tox .tox-color-input span[aria-disabled=true] {\\n cursor: not-allowed;\\n}\\n.tox:not([dir=rtl]) .tox-color-input {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox:not([dir=rtl]) .tox-color-input .tox-textfield {\\n padding-left: 36px;\\n}\\n.tox:not([dir=rtl]) .tox-color-input span {\\n left: 6px;\\n}\\n.tox[dir=\\\"rtl\\\"] .tox-color-input {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox[dir=\\\"rtl\\\"] .tox-color-input .tox-textfield {\\n padding-right: 36px;\\n}\\n.tox[dir=\\\"rtl\\\"] .tox-color-input span {\\n right: 6px;\\n}\\n.tox .tox-label,\\n.tox .tox-toolbar-label {\\n color: rgba(34, 47, 62, 0.7);\\n display: block;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n padding: 0 8px 0 0;\\n text-transform: none;\\n white-space: nowrap;\\n}\\n.tox .tox-toolbar-label {\\n padding: 0 8px;\\n}\\n.tox[dir=rtl] .tox-label {\\n padding: 0 0 0 8px;\\n}\\n.tox .tox-form {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n}\\n.tox .tox-form__group {\\n box-sizing: border-box;\\n margin-bottom: 4px;\\n}\\n.tox .tox-form-group--maximize {\\n flex: 1;\\n}\\n.tox .tox-form__group--error {\\n color: #c00;\\n}\\n.tox .tox-form__group--collection {\\n display: flex;\\n}\\n.tox .tox-form__grid {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n justify-content: space-between;\\n}\\n.tox .tox-form__grid--2col > .tox-form__group {\\n width: calc(50% - (8px / 2));\\n}\\n.tox .tox-form__grid--3col > .tox-form__group {\\n width: calc(100% / 3 - (8px / 2));\\n}\\n.tox .tox-form__grid--4col > .tox-form__group {\\n width: calc(25% - (8px / 2));\\n}\\n.tox .tox-form__controls-h-stack {\\n align-items: center;\\n display: flex;\\n}\\n.tox .tox-form__group--inline {\\n align-items: center;\\n display: flex;\\n}\\n.tox .tox-form__group--stretched {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n}\\n.tox .tox-form__group--stretched .tox-textarea {\\n flex: 1;\\n}\\n.tox .tox-form__group--stretched .tox-navobj {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-form__group--stretched .tox-navobj :nth-child(2) {\\n flex: 1;\\n height: 100%;\\n}\\n.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) {\\n margin-right: 4px;\\n}\\n.tox .tox-lock.tox-locked .tox-lock-icon__unlock,\\n.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock {\\n display: none;\\n}\\n.tox .tox-textfield,\\n.tox .tox-toolbar-textfield,\\n.tox .tox-listboxfield .tox-listbox--select,\\n.tox .tox-textarea,\\n.tox .tox-textarea-wrap .tox-textarea:focus {\\n appearance: none;\\n background-color: #fff;\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n color: #222f3e;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n line-height: 24px;\\n margin: 0;\\n min-height: 34px;\\n outline: none;\\n padding: 5px 5.5px;\\n resize: none;\\n width: 100%;\\n}\\n.tox .tox-textfield[disabled],\\n.tox .tox-textarea[disabled] {\\n background-color: #f2f2f2;\\n color: rgba(34, 47, 62, 0.85);\\n cursor: not-allowed;\\n}\\n.tox .tox-textfield:focus,\\n.tox .tox-listboxfield .tox-listbox--select:focus,\\n.tox .tox-textarea-wrap:focus-within,\\n.tox .tox-textarea:focus,\\n.tox .tox-custom-editor:focus-within {\\n background-color: #fff;\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n outline: none;\\n}\\n.tox .tox-toolbar-textfield {\\n border-width: 0;\\n margin-bottom: 3px;\\n margin-top: 2px;\\n max-width: 250px;\\n}\\n.tox .tox-naked-btn {\\n background-color: transparent;\\n border: 0;\\n border-color: transparent;\\n box-shadow: unset;\\n color: #006ce7;\\n cursor: pointer;\\n display: block;\\n margin: 0;\\n padding: 0;\\n}\\n.tox .tox-naked-btn svg {\\n display: block;\\n fill: #222f3e;\\n}\\n.tox:not([dir=rtl]) .tox-toolbar-textfield + * {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-toolbar-textfield + * {\\n margin-right: 4px;\\n}\\n.tox .tox-listboxfield {\\n cursor: pointer;\\n position: relative;\\n}\\n.tox .tox-listboxfield .tox-listbox--select[disabled] {\\n background-color: #f2f2f2;\\n color: rgba(34, 47, 62, 0.85);\\n cursor: not-allowed;\\n}\\n.tox .tox-listbox__select-label {\\n cursor: default;\\n flex: 1;\\n margin: 0 4px;\\n}\\n.tox .tox-listbox__select-chevron {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n width: 16px;\\n}\\n.tox .tox-listbox__select-chevron svg {\\n fill: #222f3e;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-listbox__select-chevron svg {\\n fill: currentColor !important;\\n }\\n}\\n.tox .tox-listboxfield .tox-listbox--select {\\n align-items: center;\\n display: flex;\\n}\\n.tox:not([dir=rtl]) .tox-listboxfield svg {\\n right: 8px;\\n}\\n.tox[dir=rtl] .tox-listboxfield svg {\\n left: 8px;\\n}\\n.tox .tox-selectfield {\\n cursor: pointer;\\n position: relative;\\n}\\n.tox .tox-selectfield select {\\n appearance: none;\\n background-color: #fff;\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n color: #222f3e;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n line-height: 24px;\\n margin: 0;\\n min-height: 34px;\\n outline: none;\\n padding: 5px 5.5px;\\n resize: none;\\n width: 100%;\\n}\\n.tox .tox-selectfield select[disabled] {\\n background-color: #f2f2f2;\\n color: rgba(34, 47, 62, 0.85);\\n cursor: not-allowed;\\n}\\n.tox .tox-selectfield select::-ms-expand {\\n display: none;\\n}\\n.tox .tox-selectfield select:focus {\\n background-color: #fff;\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n outline: none;\\n}\\n.tox .tox-selectfield svg {\\n pointer-events: none;\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"0\\\"],\\n.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"1\\\"] {\\n padding-right: 24px;\\n}\\n.tox:not([dir=rtl]) .tox-selectfield svg {\\n right: 8px;\\n}\\n.tox[dir=rtl] .tox-selectfield select[size=\\\"0\\\"],\\n.tox[dir=rtl] .tox-selectfield select[size=\\\"1\\\"] {\\n padding-left: 24px;\\n}\\n.tox[dir=rtl] .tox-selectfield svg {\\n left: 8px;\\n}\\n.tox .tox-textarea-wrap {\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n}\\n.tox .tox-textarea {\\n appearance: textarea;\\n white-space: pre-wrap;\\n}\\n.tox .tox-textarea-wrap .tox-textarea {\\n border: none;\\n}\\n.tox .tox-textarea-wrap .tox-textarea:focus {\\n border: none;\\n}\\n.tox-fullscreen {\\n border: 0;\\n height: 100%;\\n margin: 0;\\n overflow: hidden;\\n overscroll-behavior: none;\\n padding: 0;\\n touch-action: pinch-zoom;\\n width: 100%;\\n}\\n.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {\\n display: none;\\n}\\n.tox.tox-tinymce.tox-fullscreen,\\n.tox-shadowhost.tox-fullscreen {\\n left: 0;\\n position: fixed;\\n top: 0;\\n z-index: 1200;\\n}\\n.tox.tox-tinymce.tox-fullscreen {\\n background-color: transparent;\\n}\\n.tox-fullscreen .tox.tox-tinymce-aux,\\n.tox-fullscreen ~ .tox.tox-tinymce-aux {\\n z-index: 1201;\\n}\\n.tox .tox-help__more-link {\\n list-style: none;\\n margin-top: 1em;\\n}\\n.tox .tox-imagepreview {\\n background-color: #666;\\n height: 380px;\\n overflow: hidden;\\n position: relative;\\n width: 100%;\\n}\\n.tox .tox-imagepreview.tox-imagepreview__loaded {\\n overflow: auto;\\n}\\n.tox .tox-imagepreview__container {\\n display: flex;\\n left: 100vw;\\n position: absolute;\\n top: 100vw;\\n}\\n.tox .tox-imagepreview__image {\\n background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n}\\n.tox .tox-image-tools .tox-spacer {\\n flex: 1;\\n}\\n.tox .tox-image-tools .tox-bar {\\n align-items: center;\\n display: flex;\\n height: 60px;\\n justify-content: center;\\n}\\n.tox .tox-image-tools .tox-imagepreview,\\n.tox .tox-image-tools .tox-imagepreview + .tox-bar {\\n margin-top: 8px;\\n}\\n.tox .tox-image-tools .tox-croprect-block {\\n background: black;\\n filter: alpha(opacity=50);\\n opacity: 0.5;\\n position: absolute;\\n zoom: 1;\\n}\\n.tox .tox-image-tools .tox-croprect-handle {\\n border: 2px solid white;\\n height: 20px;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 20px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-move {\\n border: 0;\\n cursor: move;\\n position: absolute;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-nw {\\n border-width: 2px 0 0 2px;\\n cursor: nw-resize;\\n left: 100px;\\n margin: -2px 0 0 -2px;\\n top: 100px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-ne {\\n border-width: 2px 2px 0 0;\\n cursor: ne-resize;\\n left: 200px;\\n margin: -2px 0 0 -20px;\\n top: 100px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-sw {\\n border-width: 0 0 2px 2px;\\n cursor: sw-resize;\\n left: 100px;\\n margin: -20px 2px 0 -2px;\\n top: 200px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-se {\\n border-width: 0 2px 2px 0;\\n cursor: se-resize;\\n left: 200px;\\n margin: -20px 0 0 -20px;\\n top: 200px;\\n}\\n.tox .tox-insert-table-picker {\\n background-color: #fff;\\n display: flex;\\n flex-wrap: wrap;\\n width: 170px;\\n}\\n.tox .tox-insert-table-picker > div {\\n border-color: #eeeeee;\\n border-style: solid;\\n border-width: 0 1px 1px 0;\\n box-sizing: border-box;\\n height: 17px;\\n width: 17px;\\n}\\n.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker {\\n margin: -4px -4px;\\n}\\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected {\\n background-color: #006ce7;\\n border-color: #eeeeee;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-insert-table-picker .tox-insert-table-picker__selected {\\n border-color: Highlight;\\n filter: contrast(50%);\\n }\\n}\\n.tox .tox-insert-table-picker__label {\\n color: rgba(34, 47, 62, 0.7);\\n display: block;\\n font-size: 14px;\\n padding: 4px;\\n text-align: center;\\n width: 100%;\\n}\\n.tox:not([dir=rtl]) {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) {\\n border-right: 0;\\n}\\n.tox[dir=rtl] {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) {\\n border-right: 0;\\n}\\n.tox {\\n /* stylelint-disable */\\n /* stylelint-enable */\\n}\\n.tox .tox-menu {\\n background-color: #fff;\\n border: 1px solid transparent;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n display: inline-block;\\n overflow: hidden;\\n vertical-align: top;\\n z-index: 1150;\\n}\\n.tox .tox-menu.tox-collection.tox-collection--list {\\n padding: 0 4px;\\n}\\n.tox .tox-menu.tox-collection.tox-collection--toolbar {\\n padding: 8px;\\n}\\n.tox .tox-menu.tox-collection.tox-collection--grid {\\n padding: 8px;\\n}\\n@media only screen and (min-width: 768px ) {\\n .tox .tox-menu .tox-collection__item-label {\\n overflow-wrap: break-word;\\n word-break: normal;\\n }\\n .tox .tox-dialog__popups .tox-menu .tox-collection__item-label {\\n word-break: break-all;\\n }\\n}\\n.tox .tox-menu__label h1,\\n.tox .tox-menu__label h2,\\n.tox .tox-menu__label h3,\\n.tox .tox-menu__label h4,\\n.tox .tox-menu__label h5,\\n.tox .tox-menu__label h6,\\n.tox .tox-menu__label p,\\n.tox .tox-menu__label blockquote,\\n.tox .tox-menu__label code {\\n margin: 0;\\n}\\n.tox .tox-menubar {\\n background: repeating-linear-gradient(transparent 0 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat;\\n background-color: #fff;\\n display: flex;\\n flex: 0 0 auto;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n grid-column: 1 / -1;\\n grid-row: 1;\\n padding: 0 11px 0 12px;\\n}\\n.tox .tox-promotion + .tox-menubar {\\n grid-column: 1;\\n}\\n.tox .tox-promotion {\\n background: repeating-linear-gradient(transparent 0 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat;\\n background-color: #fff;\\n grid-column: 2;\\n grid-row: 1;\\n padding-inline-end: 8px;\\n padding-inline-start: 4px;\\n padding-top: 5px;\\n}\\n.tox .tox-promotion-link {\\n align-items: unsafe center;\\n background-color: #E8F1F8;\\n border-radius: 5px;\\n color: #086BE6;\\n cursor: pointer;\\n display: flex;\\n font-size: 14px;\\n height: 26.6px;\\n padding: 4px 8px;\\n white-space: nowrap;\\n}\\n.tox .tox-promotion-link:hover {\\n background-color: #B4D7FF;\\n}\\n.tox .tox-promotion-link:focus {\\n background-color: #D9EDF7;\\n}\\n/* Deprecated. Remove in next major release */\\n.tox .tox-mbtn {\\n align-items: center;\\n background: #fff;\\n border: 0;\\n border-radius: 3px;\\n box-shadow: none;\\n color: #222f3e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n height: 28px;\\n justify-content: center;\\n margin: 5px 1px 6px 0;\\n outline: none;\\n padding: 0 4px;\\n text-transform: none;\\n width: auto;\\n}\\n.tox .tox-mbtn[disabled] {\\n background-color: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-mbtn:focus:not(:disabled) {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-mbtn:focus:not(:disabled)::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-mbtn:focus:not(:disabled)::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-mbtn--active,\\n.tox .tox-mbtn:not(:disabled).tox-mbtn--active:focus {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-mbtn__select-label {\\n cursor: default;\\n font-weight: normal;\\n margin: 0 4px;\\n}\\n.tox .tox-mbtn[disabled] .tox-mbtn__select-label {\\n cursor: not-allowed;\\n}\\n.tox .tox-mbtn__select-chevron {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n width: 16px;\\n display: none;\\n}\\n.tox .tox-notification {\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n display: grid;\\n font-size: 14px;\\n font-weight: normal;\\n grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr);\\n margin-left: auto;\\n margin-right: auto;\\n margin-top: 4px;\\n opacity: 0;\\n padding: 4px;\\n transition: transform 100ms ease-in, opacity 150ms ease-in;\\n width: max-content;\\n}\\n.tox .tox-notification a {\\n cursor: pointer;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification p {\\n font-size: 14px;\\n font-weight: normal;\\n}\\n.tox .tox-notification:focus {\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n}\\n.tox .tox-notification--in {\\n opacity: 1;\\n}\\n.tox .tox-notification--success {\\n background-color: #e4eeda;\\n border-color: #d7e6c8;\\n color: #222f3e;\\n}\\n.tox .tox-notification--success p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--success a {\\n color: #517342;\\n}\\n.tox .tox-notification--success a:hover,\\n.tox .tox-notification--success a:focus {\\n color: #24321d;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--success a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #517342;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--success a:active {\\n color: #0d120a;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--success svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification--error {\\n background-color: #f5cccc;\\n border-color: #f0b3b3;\\n color: #222f3e;\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-notification--error p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--error a {\\n color: #77181f;\\n}\\n.tox .tox-notification--error a:hover,\\n.tox .tox-notification--error a:focus {\\n color: #220709;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--error a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #77181f;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--error a:active {\\n color: #000000;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--error svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification--warn,\\n.tox .tox-notification--warning {\\n background-color: #fff5cc;\\n border-color: #fff0b3;\\n color: #222f3e;\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-notification--warn p,\\n.tox .tox-notification--warning p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--warn a,\\n.tox .tox-notification--warning a {\\n color: #7a6e25;\\n}\\n.tox .tox-notification--warn a:hover,\\n.tox .tox-notification--warning a:hover,\\n.tox .tox-notification--warn a:focus,\\n.tox .tox-notification--warning a:focus {\\n color: #2c280d;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--warn a:focus-visible,\\n.tox .tox-notification--warning a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #7a6e25;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--warn a:active,\\n.tox .tox-notification--warning a:active {\\n color: #050502;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--warn svg,\\n.tox .tox-notification--warning svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification--info {\\n background-color: #d6e7fb;\\n border-color: #c1dbf9;\\n color: #222f3e;\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-notification--info p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--info a {\\n color: #2a64a6;\\n}\\n.tox .tox-notification--info a:hover,\\n.tox .tox-notification--info a:focus {\\n color: #163355;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--info a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #2a64a6;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--info a:active {\\n color: #0b1a2c;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--info svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification__body {\\n align-self: center;\\n color: #222f3e;\\n font-size: 14px;\\n grid-column-end: 3;\\n grid-column-start: 2;\\n grid-row-end: 2;\\n grid-row-start: 1;\\n text-align: center;\\n white-space: normal;\\n word-break: break-all;\\n word-break: break-word;\\n}\\n.tox .tox-notification__body > * {\\n margin: 0;\\n}\\n.tox .tox-notification__body > * + * {\\n margin-top: 1rem;\\n}\\n.tox .tox-notification__icon {\\n align-self: center;\\n grid-column-end: 2;\\n grid-column-start: 1;\\n grid-row-end: 2;\\n grid-row-start: 1;\\n justify-self: end;\\n}\\n.tox .tox-notification__icon svg {\\n display: block;\\n}\\n.tox .tox-notification__dismiss {\\n align-self: start;\\n grid-column-end: 4;\\n grid-column-start: 3;\\n grid-row-end: 2;\\n grid-row-start: 1;\\n justify-self: end;\\n}\\n.tox .tox-notification .tox-progress-bar {\\n grid-column-end: 4;\\n grid-column-start: 1;\\n grid-row-end: 3;\\n grid-row-start: 2;\\n justify-self: center;\\n}\\n.tox .tox-notification-container-dock-fadeout {\\n opacity: 0;\\n visibility: hidden;\\n}\\n.tox .tox-notification-container-dock-fadein {\\n opacity: 1;\\n visibility: visible;\\n}\\n.tox .tox-notification-container-dock-transition {\\n transition: visibility 0s linear 0.3s, opacity 0.3s ease;\\n}\\n.tox .tox-notification-container-dock-transition.tox-notification-container-dock-fadein {\\n transition-delay: 0s;\\n}\\n.tox .tox-pop {\\n display: inline-block;\\n position: relative;\\n}\\n.tox .tox-pop--resizing {\\n transition: width 0.1s ease;\\n}\\n.tox .tox-pop--resizing .tox-toolbar,\\n.tox .tox-pop--resizing .tox-toolbar__group {\\n flex-wrap: nowrap;\\n}\\n.tox .tox-pop--transition {\\n transition: 0.15s ease;\\n transition-property: left, right, top, bottom;\\n}\\n.tox .tox-pop--transition::before,\\n.tox .tox-pop--transition::after {\\n transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s;\\n}\\n.tox .tox-pop__dialog {\\n background-color: #fff;\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n min-width: 0;\\n overflow: hidden;\\n}\\n.tox .tox-pop__dialog > *:not(.tox-toolbar) {\\n margin: 4px 4px 4px 8px;\\n}\\n.tox .tox-pop__dialog .tox-toolbar {\\n background-color: transparent;\\n margin-bottom: -1px;\\n}\\n.tox .tox-pop::before,\\n.tox .tox-pop::after {\\n border-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n opacity: 1;\\n position: absolute;\\n width: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-pop::before,\\n .tox .tox-pop::after {\\n content: none;\\n }\\n}\\n.tox .tox-pop.tox-pop--inset::before,\\n.tox .tox-pop.tox-pop--inset::after {\\n opacity: 0;\\n transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease;\\n}\\n.tox .tox-pop.tox-pop--bottom::before,\\n.tox .tox-pop.tox-pop--bottom::after {\\n left: 50%;\\n top: 100%;\\n}\\n.tox .tox-pop.tox-pop--bottom::after {\\n border-color: #fff transparent transparent transparent;\\n border-width: 8px;\\n margin-left: -8px;\\n margin-top: -1px;\\n}\\n.tox .tox-pop.tox-pop--bottom::before {\\n border-color: #eeeeee transparent transparent transparent;\\n border-width: 9px;\\n margin-left: -9px;\\n}\\n.tox .tox-pop.tox-pop--top::before,\\n.tox .tox-pop.tox-pop--top::after {\\n left: 50%;\\n top: 0;\\n transform: translateY(-100%);\\n}\\n.tox .tox-pop.tox-pop--top::after {\\n border-color: transparent transparent #fff transparent;\\n border-width: 8px;\\n margin-left: -8px;\\n margin-top: 1px;\\n}\\n.tox .tox-pop.tox-pop--top::before {\\n border-color: transparent transparent #eeeeee transparent;\\n border-width: 9px;\\n margin-left: -9px;\\n}\\n.tox .tox-pop.tox-pop--left::before,\\n.tox .tox-pop.tox-pop--left::after {\\n left: 0;\\n top: calc(50% - 1px);\\n transform: translateY(-50%);\\n}\\n.tox .tox-pop.tox-pop--left::after {\\n border-color: transparent #fff transparent transparent;\\n border-width: 8px;\\n margin-left: -15px;\\n}\\n.tox .tox-pop.tox-pop--left::before {\\n border-color: transparent #eeeeee transparent transparent;\\n border-width: 10px;\\n margin-left: -19px;\\n}\\n.tox .tox-pop.tox-pop--right::before,\\n.tox .tox-pop.tox-pop--right::after {\\n left: 100%;\\n top: calc(50% + 1px);\\n transform: translateY(-50%);\\n}\\n.tox .tox-pop.tox-pop--right::after {\\n border-color: transparent transparent transparent #fff;\\n border-width: 8px;\\n margin-left: -1px;\\n}\\n.tox .tox-pop.tox-pop--right::before {\\n border-color: transparent transparent transparent #eeeeee;\\n border-width: 10px;\\n margin-left: -1px;\\n}\\n.tox .tox-pop.tox-pop--align-left::before,\\n.tox .tox-pop.tox-pop--align-left::after {\\n left: 20px;\\n}\\n.tox .tox-pop.tox-pop--align-right::before,\\n.tox .tox-pop.tox-pop--align-right::after {\\n left: calc(100% - 20px);\\n}\\n.tox .tox-sidebar-wrap {\\n display: flex;\\n flex-direction: row;\\n flex-grow: 1;\\n min-height: 0;\\n}\\n.tox .tox-sidebar {\\n background-color: #f0f0f0;\\n display: flex;\\n flex-direction: row;\\n justify-content: flex-end;\\n}\\n.tox .tox-sidebar__slider {\\n display: flex;\\n overflow: hidden;\\n}\\n.tox .tox-sidebar__pane-container {\\n display: flex;\\n}\\n.tox .tox-sidebar__pane {\\n display: flex;\\n}\\n.tox .tox-sidebar--sliding-closed {\\n opacity: 0;\\n}\\n.tox .tox-sidebar--sliding-open {\\n opacity: 1;\\n}\\n.tox .tox-sidebar--sliding-growing,\\n.tox .tox-sidebar--sliding-shrinking {\\n transition: width 0.5s ease, opacity 0.5s ease;\\n}\\n.tox .tox-selector {\\n background-color: #4099ff;\\n border-color: #4099ff;\\n border-style: solid;\\n border-width: 1px;\\n box-sizing: border-box;\\n display: inline-block;\\n height: 10px;\\n position: absolute;\\n width: 10px;\\n}\\n.tox.tox-platform-touch .tox-selector {\\n height: 12px;\\n width: 12px;\\n}\\n.tox .tox-slider {\\n align-items: center;\\n display: flex;\\n flex: 1;\\n height: 24px;\\n justify-content: center;\\n position: relative;\\n}\\n.tox .tox-slider__rail {\\n background-color: transparent;\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n height: 10px;\\n min-width: 120px;\\n width: 100%;\\n}\\n.tox .tox-slider__handle {\\n background-color: #006ce7;\\n border: 2px solid #0054b4;\\n border-radius: 6px;\\n box-shadow: none;\\n height: 24px;\\n left: 50%;\\n position: absolute;\\n top: 50%;\\n transform: translateX(-50%) translateY(-50%);\\n width: 14px;\\n}\\n.tox .tox-form__controls-h-stack > .tox-slider:not(:first-of-type) {\\n margin-inline-start: 8px;\\n}\\n.tox .tox-form__controls-h-stack > .tox-form__group + .tox-slider {\\n margin-inline-start: 32px;\\n}\\n.tox .tox-form__controls-h-stack > .tox-slider + .tox-form__group {\\n margin-inline-start: 32px;\\n}\\n.tox .tox-source-code {\\n overflow: auto;\\n}\\n.tox .tox-spinner {\\n display: flex;\\n}\\n.tox .tox-spinner > div {\\n animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both;\\n background-color: rgba(34, 47, 62, 0.7);\\n border-radius: 100%;\\n height: 8px;\\n width: 8px;\\n}\\n.tox .tox-spinner > div:nth-child(1) {\\n animation-delay: -0.32s;\\n}\\n.tox .tox-spinner > div:nth-child(2) {\\n animation-delay: -0.16s;\\n}\\n@keyframes tam-bouncing-dots {\\n 0%,\\n 80%,\\n 100% {\\n transform: scale(0);\\n }\\n 40% {\\n transform: scale(1);\\n }\\n}\\n.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-spinner > div:not(:first-child) {\\n margin-right: 4px;\\n}\\n.tox .tox-statusbar {\\n align-items: center;\\n background-color: #fff;\\n border-top: 1px solid #e3e3e3;\\n color: rgba(34, 47, 62, 0.7);\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-weight: normal;\\n height: 25px;\\n overflow: hidden;\\n padding: 0 8px;\\n position: relative;\\n text-transform: none;\\n}\\n.tox .tox-statusbar__path {\\n display: flex;\\n flex: 1 1 auto;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.tox .tox-statusbar__right-container {\\n display: flex;\\n justify-content: flex-end;\\n white-space: nowrap;\\n}\\n.tox .tox-statusbar__help-text {\\n text-align: center;\\n}\\n.tox .tox-statusbar__text-container {\\n align-items: flex-start;\\n display: flex;\\n flex: 1 1 auto;\\n height: 16px;\\n justify-content: space-between;\\n}\\n@media only screen and (min-width: 768px ) {\\n .tox .tox-statusbar__text-container.tox-statusbar__text-container-3-cols > .tox-statusbar__help-text,\\n .tox .tox-statusbar__text-container.tox-statusbar__text-container-3-cols > .tox-statusbar__right-container,\\n .tox .tox-statusbar__text-container.tox-statusbar__text-container-3-cols > .tox-statusbar__path {\\n flex: 0 0 calc(100% / 3);\\n }\\n}\\n.tox .tox-statusbar__text-container.tox-statusbar__text-container--flex-end {\\n justify-content: flex-end;\\n}\\n.tox .tox-statusbar__text-container.tox-statusbar__text-container--flex-start {\\n justify-content: flex-start;\\n}\\n.tox .tox-statusbar__text-container.tox-statusbar__text-container--space-around {\\n justify-content: space-around;\\n}\\n.tox .tox-statusbar__path > * {\\n display: inline;\\n white-space: nowrap;\\n}\\n.tox .tox-statusbar__wordcount {\\n flex: 0 0 auto;\\n margin-left: 1ch;\\n}\\n@media only screen and (max-width: 767px ) {\\n .tox .tox-statusbar__text-container .tox-statusbar__help-text {\\n display: none;\\n }\\n .tox .tox-statusbar__text-container .tox-statusbar__help-text:only-child {\\n display: block;\\n }\\n}\\n.tox .tox-statusbar a,\\n.tox .tox-statusbar__path-item,\\n.tox .tox-statusbar__wordcount {\\n color: rgba(34, 47, 62, 0.7);\\n position: relative;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n}\\n.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) {\\n color: #222f3e;\\n cursor: pointer;\\n}\\n.tox .tox-statusbar a:focus-visible::after,\\n.tox .tox-statusbar__path-item:focus-visible::after,\\n.tox .tox-statusbar__wordcount:focus-visible::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-statusbar a:focus-visible::after,\\n .tox .tox-statusbar__path-item:focus-visible::after,\\n .tox .tox-statusbar__wordcount:focus-visible::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-statusbar__branding svg {\\n fill: rgba(34, 47, 62, 0.8);\\n height: 1em;\\n margin-left: 0.3em;\\n width: auto;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-statusbar__branding svg {\\n fill: currentColor;\\n }\\n}\\n.tox .tox-statusbar__branding a {\\n /* stylelint-disable-line no-descending-specificity */\\n align-items: center;\\n display: inline-flex;\\n}\\n.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled=true]) svg,\\n.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled=true]) svg {\\n fill: #222f3e;\\n}\\n.tox .tox-statusbar__resize-handle {\\n align-items: flex-end;\\n align-self: stretch;\\n cursor: nwse-resize;\\n display: flex;\\n flex: 0 0 auto;\\n justify-content: flex-end;\\n margin-bottom: 3px;\\n margin-left: 4px;\\n margin-right: calc(3px - 8px);\\n margin-top: 3px;\\n padding-bottom: 0;\\n padding-left: 0;\\n padding-right: 0;\\n position: relative;\\n}\\n.tox .tox-statusbar__resize-handle svg {\\n display: block;\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-statusbar__resize-handle:hover svg,\\n.tox .tox-statusbar__resize-handle:focus svg {\\n fill: #222f3e;\\n}\\n.tox .tox-statusbar__resize-handle:focus-visible {\\n background-color: transparent;\\n border-radius: 1px 1px 5px 1px;\\n box-shadow: 0 0 0 2px transparent;\\n}\\n.tox .tox-statusbar__resize-handle:focus-visible::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-statusbar__resize-handle:focus-visible::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-statusbar__resize-handle:only-child {\\n margin-left: auto;\\n}\\n.tox:not([dir=rtl]) .tox-statusbar__path > * {\\n margin-right: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-statusbar__branding {\\n margin-left: 2ch;\\n}\\n.tox[dir=rtl] .tox-statusbar {\\n flex-direction: row-reverse;\\n}\\n.tox[dir=rtl] .tox-statusbar__path > * {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-statusbar__branding svg {\\n margin-left: 0;\\n margin-right: 0.3em;\\n}\\n.tox .tox-throbber {\\n z-index: 1299;\\n}\\n.tox .tox-throbber__busy-spinner {\\n align-items: center;\\n background-color: rgba(255, 255, 255, 0.6);\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n.tox .tox-tbtn {\\n align-items: center;\\n background: #fff;\\n border: 0;\\n border-radius: 3px;\\n box-shadow: none;\\n color: #222f3e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n height: 28px;\\n justify-content: center;\\n margin: 6px 1px 5px 0;\\n outline: none;\\n padding: 0;\\n text-transform: none;\\n width: 34px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn:hover,\\n .tox .tox-tbtn.tox-tbtn:hover {\\n outline: 1px dashed currentColor;\\n }\\n .tox .tox-tbtn.tox-tbtn--active,\\n .tox .tox-tbtn.tox-tbtn--enabled,\\n .tox .tox-tbtn.tox-tbtn--enabled:hover,\\n .tox .tox-tbtn.tox-tbtn--enabled:focus,\\n .tox .tox-tbtn:focus:not(.tox-tbtn--disabled) {\\n outline: 1px solid currentColor;\\n position: relative;\\n }\\n}\\n.tox .tox-tbtn svg {\\n display: block;\\n fill: #222f3e;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn svg {\\n fill: currentColor !important;\\n }\\n .tox .tox-tbtn svg.tox-tbtn--enabled,\\n .tox .tox-tbtn svg:focus:not(.tox-tbtn--disabled) {\\n fill: currentColor !important;\\n }\\n .tox .tox-tbtn svg.tox-tbtn--disabled,\\n .tox .tox-tbtn svg.tox-tbtn--disabled:hover,\\n .tox .tox-tbtn svg .tox-tbtn:disabled,\\n .tox .tox-tbtn svg .tox-tbtn:disabled:hover {\\n filter: contrast(0%);\\n }\\n}\\n.tox .tox-tbtn.tox-tbtn-more {\\n padding-left: 5px;\\n padding-right: 5px;\\n width: inherit;\\n}\\n.tox .tox-tbtn:focus {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-tbtn:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-tbtn:hover {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tbtn:hover svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn:active {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tbtn:active svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn--disabled .tox-tbtn--enabled svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tbtn--disabled,\\n.tox .tox-tbtn--disabled:hover,\\n.tox .tox-tbtn:disabled,\\n.tox .tox-tbtn:disabled:hover {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-tbtn--disabled svg,\\n.tox .tox-tbtn--disabled:hover svg,\\n.tox .tox-tbtn:disabled svg,\\n.tox .tox-tbtn:disabled:hover svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tbtn--active,\\n.tox .tox-tbtn--enabled,\\n.tox .tox-tbtn--enabled:hover,\\n.tox .tox-tbtn--enabled:focus {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n position: relative;\\n}\\n.tox .tox-tbtn--active > *,\\n.tox .tox-tbtn--enabled > *,\\n.tox .tox-tbtn--enabled:hover > *,\\n.tox .tox-tbtn--enabled:focus > * {\\n transform: none;\\n}\\n.tox .tox-tbtn--active svg,\\n.tox .tox-tbtn--enabled svg,\\n.tox .tox-tbtn--enabled:hover svg,\\n.tox .tox-tbtn--enabled:focus svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn--active.tox-tbtn--disabled svg,\\n.tox .tox-tbtn--enabled.tox-tbtn--disabled svg,\\n.tox .tox-tbtn--enabled:hover.tox-tbtn--disabled svg,\\n.tox .tox-tbtn--enabled:focus.tox-tbtn--disabled svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tbtn--enabled:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn--enabled:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) {\\n color: #222f3e;\\n}\\n.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn:active > * {\\n transform: none;\\n}\\n.tox .tox-tbtn--md {\\n height: 42px;\\n width: 51px;\\n}\\n.tox .tox-tbtn--lg {\\n flex-direction: column;\\n height: 56px;\\n width: 68px;\\n}\\n.tox .tox-tbtn--return {\\n align-self: stretch;\\n height: unset;\\n width: 16px;\\n}\\n.tox .tox-tbtn--labeled {\\n padding: 0 4px;\\n width: unset;\\n}\\n.tox .tox-tbtn__vlabel {\\n display: block;\\n font-size: 10px;\\n font-weight: normal;\\n letter-spacing: -0.025em;\\n margin-bottom: 4px;\\n white-space: nowrap;\\n}\\n.tox .tox-number-input {\\n background: #f7f7f7;\\n border-radius: 3px;\\n display: flex;\\n margin: 6px 1px 5px 0;\\n position: relative;\\n width: auto;\\n}\\n.tox .tox-number-input:focus {\\n background: #f7f7f7;\\n}\\n.tox .tox-number-input:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input .tox-input-wrapper {\\n display: flex;\\n pointer-events: none;\\n position: relative;\\n text-align: center;\\n}\\n.tox .tox-number-input .tox-input-wrapper:focus {\\n background-color: #f7f7f7;\\n z-index: 1;\\n}\\n.tox .tox-number-input .tox-input-wrapper:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input .tox-input-wrapper:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input .tox-input-wrapper:has(input:focus)::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input .tox-input-wrapper:has(input:focus)::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input input {\\n border-radius: 3px;\\n color: #222f3e;\\n font-size: 14px;\\n margin: 2px 0;\\n pointer-events: all;\\n position: relative;\\n width: 60px;\\n}\\n.tox .tox-number-input input:hover {\\n background: #f0f0f0;\\n color: #222f3e;\\n}\\n.tox .tox-number-input input:focus {\\n background-color: #f7f7f7;\\n}\\n.tox .tox-number-input input:disabled {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-number-input button {\\n color: #222f3e;\\n height: 28px;\\n position: relative;\\n text-align: center;\\n width: 24px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input button:hover,\\n .tox .tox-number-input button:focus,\\n .tox .tox-number-input button:active {\\n outline: 1px solid currentColor !important;\\n }\\n}\\n.tox .tox-number-input button svg {\\n display: block;\\n fill: #222f3e;\\n margin: 0 auto;\\n transform: scale(0.67);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input button svg,\\n .tox .tox-number-input button svg:active,\\n .tox .tox-number-input button svg:hover {\\n fill: currentColor !important;\\n }\\n .tox .tox-number-input button svg:disabled {\\n filter: contrast(0);\\n }\\n}\\n.tox .tox-number-input button:focus {\\n background: #f7f7f7;\\n z-index: 1;\\n}\\n.tox .tox-number-input button:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input button:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input button:hover {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-number-input button:hover svg {\\n fill: #222f3e;\\n}\\n.tox .tox-number-input button:active {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-number-input button:active svg {\\n fill: #222f3e;\\n}\\n.tox .tox-number-input button:disabled {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-number-input button:disabled svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-number-input button.minus {\\n border-radius: 3px 0 0 3px;\\n}\\n.tox .tox-number-input button.plus {\\n border-radius: 0 3px 3px 0;\\n}\\n.tox .tox-number-input:focus:not(:active) > button,\\n.tox .tox-number-input:focus:not(:active) > .tox-input-wrapper {\\n background: #f7f7f7;\\n}\\n.tox .tox-tbtn--select {\\n margin: 6px 1px 5px 0;\\n padding: 0 4px;\\n width: auto;\\n}\\n.tox .tox-tbtn__select-label {\\n cursor: default;\\n font-weight: normal;\\n height: initial;\\n margin: 0 4px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.tox .tox-tbtn__select-chevron {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n width: 16px;\\n}\\n.tox .tox-tbtn__select-chevron svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn__select-chevron svg {\\n fill: currentColor;\\n }\\n}\\n.tox .tox-tbtn--bespoke {\\n background: #f7f7f7;\\n}\\n.tox .tox-tbtn--bespoke:focus {\\n background: #f7f7f7;\\n}\\n.tox .tox-tbtn--bespoke + .tox-tbtn--bespoke {\\n margin-inline-start: 4px;\\n}\\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 7em;\\n}\\n.tox .tox-tbtn--disabled .tox-tbtn__select-label,\\n.tox .tox-tbtn--select:disabled .tox-tbtn__select-label {\\n cursor: not-allowed;\\n}\\n.tox .tox-split-button {\\n border: 0;\\n border-radius: 3px;\\n box-sizing: border-box;\\n display: flex;\\n margin: 6px 1px 5px 0;\\n}\\n.tox .tox-split-button:hover {\\n box-shadow: 0 0 0 1px #f0f0f0 inset;\\n}\\n.tox .tox-split-button:focus {\\n background: #fff;\\n box-shadow: none;\\n color: #222f3e;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-split-button:focus::after {\\n pointer-events: none;\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-split-button:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-split-button > * {\\n border-radius: 0;\\n}\\n.tox .tox-split-button > *:nth-child(1) {\\n border-bottom-left-radius: 3px;\\n border-top-left-radius: 3px;\\n}\\n.tox .tox-split-button > *:nth-child(2) {\\n border-bottom-right-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.tox .tox-split-button__chevron {\\n width: 16px;\\n}\\n.tox .tox-split-button__chevron svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-split-button__chevron svg {\\n fill: currentColor;\\n }\\n}\\n.tox .tox-split-button .tox-tbtn {\\n margin: 0;\\n}\\n.tox .tox-split-button:focus .tox-tbtn {\\n background-color: transparent;\\n}\\n.tox .tox-split-button.tox-tbtn--disabled:hover,\\n.tox .tox-split-button.tox-tbtn--disabled:focus,\\n.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,\\n.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {\\n background: #fff;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox.tox-platform-touch .tox-split-button .tox-tbtn--select {\\n padding: 0 0px;\\n}\\n.tox.tox-platform-touch .tox-split-button .tox-tbtn:not(.tox-tbtn--select):first-child {\\n width: 30px;\\n}\\n.tox.tox-platform-touch .tox-split-button__chevron {\\n width: 20px;\\n}\\n.tox .tox-split-button.tox-tbtn--disabled svg .tox-icon-text-color__color,\\n.tox .tox-split-button.tox-tbtn--disabled svg .tox-icon-highlight-bg-color__color {\\n opacity: 0.3;\\n}\\n.tox .tox-toolbar-overlord {\\n background-color: #fff;\\n}\\n.tox .tox-toolbar,\\n.tox .tox-toolbar__primary,\\n.tox .tox-toolbar__overflow {\\n background-attachment: local;\\n background-color: #fff;\\n background-image: repeating-linear-gradient(#e3e3e3 0 1px, transparent 1px 39px);\\n background-position: center top 40px;\\n background-repeat: no-repeat;\\n background-size: calc(100% - 11px * 2) calc(100% - 41px);\\n display: flex;\\n flex: 0 0 auto;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n padding: 0 0px;\\n transform: perspective(1px);\\n}\\n.tox .tox-toolbar-overlord > .tox-toolbar,\\n.tox .tox-toolbar-overlord > .tox-toolbar__primary,\\n.tox .tox-toolbar-overlord > .tox-toolbar__overflow {\\n background-position: center top 0px;\\n background-size: calc(100% - 11px * 2) calc(100% - 0px);\\n}\\n.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed {\\n height: 0;\\n opacity: 0;\\n padding-bottom: 0;\\n padding-top: 0;\\n visibility: hidden;\\n}\\n.tox .tox-toolbar__overflow--growing {\\n transition: height 0.3s ease, opacity 0.2s linear 0.1s;\\n}\\n.tox .tox-toolbar__overflow--shrinking {\\n transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s;\\n}\\n.tox .tox-toolbar-overlord,\\n.tox .tox-anchorbar {\\n grid-column: 1 / -1;\\n}\\n.tox .tox-menubar + .tox-toolbar,\\n.tox .tox-menubar + .tox-toolbar-overlord {\\n border-top: 1px solid transparent;\\n margin-top: -1px;\\n padding-bottom: 1px;\\n padding-top: 1px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-menubar + .tox-toolbar,\\n .tox .tox-menubar + .tox-toolbar-overlord {\\n outline: 1px solid currentColor;\\n }\\n}\\n.tox .tox-toolbar--scrolling {\\n flex-wrap: nowrap;\\n overflow-x: auto;\\n}\\n.tox .tox-pop .tox-toolbar {\\n border-width: 0;\\n}\\n.tox .tox-toolbar--no-divider {\\n background-image: none;\\n}\\n.tox .tox-toolbar-overlord .tox-toolbar:not(.tox-toolbar--scrolling):first-child,\\n.tox .tox-toolbar-overlord .tox-toolbar__primary {\\n background-position: center top 39px;\\n}\\n.tox .tox-editor-header > .tox-toolbar--scrolling,\\n.tox .tox-toolbar-overlord .tox-toolbar--scrolling:first-child {\\n background-image: none;\\n}\\n.tox.tox-tinymce-aux .tox-toolbar__overflow {\\n background-color: #fff;\\n background-position: center top 43px;\\n background-size: calc(100% - 8px * 2) calc(100% - 51px);\\n border: none;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n overscroll-behavior: none;\\n padding: 4px 0;\\n}\\n@media (forced-colors: active) {\\n .tox.tox-tinymce-aux .tox-toolbar__overflow {\\n border: solid;\\n }\\n}\\n.tox-pop .tox-pop__dialog {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox-pop .tox-pop__dialog .tox-toolbar {\\n background-position: center top 43px;\\n background-size: calc(100% - 11px * 2) calc(100% - 51px);\\n padding: 4px 0;\\n}\\n.tox .tox-toolbar__group {\\n align-items: center;\\n display: flex;\\n flex-wrap: wrap;\\n margin: 0 0;\\n padding: 0 11px 0 12px;\\n}\\n.tox .tox-toolbar__group--pull-right {\\n margin-left: auto;\\n}\\n.tox .tox-toolbar--scrolling .tox-toolbar__group {\\n flex-shrink: 0;\\n flex-wrap: nowrap;\\n}\\n.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) {\\n border-right: 1px solid transparent;\\n}\\n.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) {\\n border-left: 1px solid transparent;\\n}\\n.tox .tox-tooltip {\\n display: inline-block;\\n max-width: 15em;\\n padding: 8px;\\n /*\\n * The pointer-events: none is designed to make mouse events bleed through the tooltip\\n * to the underlying items. For example, a mouse hovering over a tooltip that hovers over\\n * another item should trigger the hover of the item obscured by the tooltip, even though\\n * the tooltip is on top\\n */\\n pointer-events: none;\\n position: relative;\\n width: max-content;\\n z-index: 1150;\\n}\\n.tox .tox-tooltip__body {\\n background-color: #222f3e;\\n border-radius: 6px;\\n box-shadow: none;\\n color: #fff;\\n font-size: 12px;\\n font-style: normal;\\n font-weight: 600;\\n overflow-wrap: break-word;\\n padding: 4px 6px;\\n text-transform: none;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tooltip__body {\\n outline: outset 1px;\\n }\\n}\\n.tox .tox-tooltip__arrow {\\n position: absolute;\\n}\\n.tox .tox-tooltip--down .tox-tooltip__arrow {\\n border-left: 8px solid transparent;\\n border-right: 8px solid transparent;\\n border-top: 8px solid #222f3e;\\n bottom: 0;\\n left: 50%;\\n position: absolute;\\n transform: translateX(-50%);\\n}\\n.tox .tox-tooltip--up .tox-tooltip__arrow {\\n border-bottom: 8px solid #222f3e;\\n border-left: 8px solid transparent;\\n border-right: 8px solid transparent;\\n left: 50%;\\n position: absolute;\\n top: 0;\\n transform: translateX(-50%);\\n}\\n.tox .tox-tooltip--right .tox-tooltip__arrow {\\n border-bottom: 8px solid transparent;\\n border-left: 8px solid #222f3e;\\n border-top: 8px solid transparent;\\n position: absolute;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox .tox-tooltip--left .tox-tooltip__arrow {\\n border-bottom: 8px solid transparent;\\n border-right: 8px solid #222f3e;\\n border-top: 8px solid transparent;\\n left: 0;\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox .tox-tree {\\n display: flex;\\n flex-direction: column;\\n}\\n.tox .tox-tree .tox-trbtn {\\n align-items: center;\\n background: transparent;\\n border: 0;\\n border-radius: 4px;\\n box-shadow: none;\\n color: #222f3e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n height: 28px;\\n margin-bottom: 4px;\\n margin-top: 4px;\\n outline: none;\\n overflow: hidden;\\n padding: 0;\\n padding-left: 8px;\\n text-transform: none;\\n}\\n.tox .tox-tree .tox-trbtn .tox-tree__label {\\n cursor: default;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.tox .tox-tree .tox-trbtn svg {\\n display: block;\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:focus {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n}\\n.tox .tox-tree .tox-trbtn:hover {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:hover svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:active {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:active svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn--disabled,\\n.tox .tox-tree .tox-trbtn--disabled:hover,\\n.tox .tox-tree .tox-trbtn:disabled,\\n.tox .tox-tree .tox-trbtn:disabled:hover {\\n background: transparent;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-tree .tox-trbtn--disabled svg,\\n.tox .tox-tree .tox-trbtn--disabled:hover svg,\\n.tox .tox-tree .tox-trbtn:disabled svg,\\n.tox .tox-tree .tox-trbtn:disabled:hover svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tree .tox-trbtn--enabled,\\n.tox .tox-tree .tox-trbtn--enabled:hover {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn--enabled > *,\\n.tox .tox-tree .tox-trbtn--enabled:hover > * {\\n transform: none;\\n}\\n.tox .tox-tree .tox-trbtn--enabled svg,\\n.tox .tox-tree .tox-trbtn--enabled:hover svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) {\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:active > * {\\n transform: none;\\n}\\n.tox .tox-tree .tox-trbtn--return {\\n align-self: stretch;\\n height: unset;\\n width: 16px;\\n}\\n.tox .tox-tree .tox-trbtn--labeled {\\n padding: 0 4px;\\n width: unset;\\n}\\n.tox .tox-tree .tox-trbtn__vlabel {\\n display: block;\\n font-size: 10px;\\n font-weight: normal;\\n letter-spacing: -0.025em;\\n margin-bottom: 4px;\\n white-space: nowrap;\\n}\\n.tox .tox-tree .tox-tree--directory {\\n display: flex;\\n flex-direction: column;\\n /* stylelint-disable no-descending-specificity */\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label {\\n font-weight: bold;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn {\\n margin-left: auto;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn svg {\\n fill: transparent;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn.tox-mbtn--active svg,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn:focus svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover .tox-mbtn svg,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:focus .tox-mbtn svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) {\\n background-color: transparent;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) .tox-chevron svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-chevron {\\n margin-right: 6px;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--shrinking) .tox-chevron {\\n transition: transform 0.5s ease-in-out;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--open) .tox-chevron {\\n transform: rotate(90deg);\\n}\\n.tox .tox-tree .tox-tree--leaf__label {\\n font-weight: normal;\\n}\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn {\\n margin-left: auto;\\n}\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn svg {\\n fill: transparent;\\n}\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn.tox-mbtn--active svg,\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn:focus svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--leaf__label:hover .tox-mbtn svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) {\\n background-color: transparent;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) .tox-chevron svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-icon-custom-state {\\n flex-grow: 1;\\n display: flex;\\n justify-content: flex-end;\\n}\\n.tox .tox-tree .tox-tree--directory__children {\\n overflow: hidden;\\n padding-left: 16px;\\n}\\n.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--growing,\\n.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--shrinking {\\n transition: height 0.5s ease-in-out;\\n}\\n.tox .tox-tree .tox-trbtn.tox-tree--leaf__label {\\n display: flex;\\n justify-content: space-between;\\n}\\n.tox .tox-revisionhistory__pane {\\n padding: 0 !important;\\n /* Override the default padding of tox-view__pane */\\n}\\n.tox .tox-revisionhistory__container {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n}\\n.tox .tox-revisionhistory {\\n background-color: #fff;\\n border-top: 1px solid #f0f0f0;\\n display: flex;\\n flex: 1;\\n height: 100%;\\n margin-top: 8px;\\n overflow-x: auto;\\n overflow-y: hidden;\\n position: relative;\\n width: 100%;\\n}\\n.tox .tox-revisionhistory--align-right {\\n margin-left: auto;\\n}\\n.tox .tox-revisionhistory__iframe {\\n flex: 1;\\n}\\n.tox .tox-revisionhistory__sidebar {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n min-width: 248px;\\n width: 316px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__sidebar-title {\\n background-color: #fff;\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n color: #222f3e;\\n font-size: 20px;\\n font-weight: 400;\\n line-height: 28px;\\n padding: 12px;\\n z-index: 1;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions {\\n background-color: #f0f0f0;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n gap: 12px;\\n overflow-y: auto;\\n padding: 10px 12px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions:focus {\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 6px;\\n bottom: 1px;\\n left: 1px;\\n right: 1px;\\n top: 1px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card {\\n background-color: #fff;\\n border: 1px solid #f0f0f0;\\n border-radius: 6px;\\n color: #222f3e;\\n cursor: pointer;\\n display: flex;\\n flex-direction: column;\\n font-size: 14px;\\n gap: 12px;\\n padding: 12px;\\n width: 100%;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:hover {\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:focus {\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 #006ce7;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 6px;\\n box-shadow: 0 0 0 2px #006ce7;\\n box-shadow: 0 0 0 2px #006ce7 !important;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card.tox-revisionhistory__card--selected {\\n background-color: #fff5cc;\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n position: relative;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card.tox-revisionhistory__card--selected::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 #e3b82a;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 6px;\\n box-shadow: 0 0 0 2px #e3b82a;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card.tox-revisionhistory__card--selected::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-date {\\n display: flex;\\n gap: 12px;\\n justify-content: space-between;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-date-label {\\n font-size: 16px;\\n line-height: 24px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-label {\\n font-size: 12px;\\n font-weight: 600;\\n line-height: 24px;\\n padding: 0;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-author {\\n align-items: center;\\n display: flex;\\n flex: 1 0 0;\\n gap: 8px;\\n height: 36px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-author-name {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n font-size: 14px;\\n font-weight: 700;\\n line-height: 18px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__avatar {\\n border-radius: 50%;\\n height: 36px;\\n object-fit: cover;\\n vertical-align: middle;\\n width: 36px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__norevision {\\n color: rgba(34, 47, 62, 0.7);\\n font-size: 16px;\\n line-height: 24px;\\n padding: 5px 5.5px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-check-icon {\\n color: #222f3e;\\n height: 24px;\\n}\\n.tox .tox-view-wrap,\\n.tox .tox-view-wrap__slot-container {\\n background-color: #fff;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n height: 100%;\\n}\\n.tox .tox-view {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.tox .tox-view__header {\\n align-items: center;\\n display: flex;\\n font-size: 16px;\\n justify-content: space-between;\\n padding: 10px 10px 2px 10px;\\n position: relative;\\n}\\n.tox .tox-view__label {\\n color: #222f3e;\\n font-weight: bold;\\n line-height: 24px;\\n padding: 4px 16px;\\n text-align: center;\\n white-space: nowrap;\\n}\\n.tox .tox-view__label--normal {\\n font-size: 16px;\\n}\\n.tox .tox-view__label--large {\\n font-size: 20px;\\n}\\n.tox .tox-view--mobile.tox-view__header,\\n.tox .tox-view--mobile.tox-view__toolbar {\\n padding: 8px;\\n}\\n.tox .tox-view--scrolling {\\n flex-wrap: nowrap;\\n overflow-x: auto;\\n}\\n.tox .tox-view__toolbar {\\n display: flex;\\n flex-direction: row;\\n gap: 8px;\\n justify-content: space-between;\\n overflow-x: auto;\\n padding: 10px 10px 2px 10px;\\n}\\n.tox .tox-view__toolbar__group {\\n display: flex;\\n flex-direction: row;\\n gap: 12px;\\n}\\n.tox .tox-view__header-start,\\n.tox .tox-view__header-end {\\n display: flex;\\n}\\n.tox .tox-view__pane {\\n height: 100%;\\n padding: 8px;\\n position: relative;\\n width: 100%;\\n}\\n.tox .tox-view__pane_panel {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n}\\n.tox:not([dir=rtl]) .tox-view__header .tox-view__header-start > *,\\n.tox:not([dir=rtl]) .tox-view__header .tox-view__header-end > * {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-view__header .tox-view__header-start > *,\\n.tox[dir=rtl] .tox-view__header .tox-view__header-end > * {\\n margin-right: 8px;\\n}\\n.tox .tox-well {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n padding: 8px;\\n width: 100%;\\n}\\n.tox .tox-well > *:first-child {\\n margin-top: 0;\\n}\\n.tox .tox-well > *:last-child {\\n margin-bottom: 0;\\n}\\n.tox .tox-well > *:only-child {\\n margin: 0;\\n}\\n.tox .tox-custom-editor {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n position: relative;\\n}\\n/* stylelint-disable */\\n.tox {\\n /* stylelint-enable */\\n}\\n.tox .tox-dialog-loading::before {\\n background-color: rgba(0, 0, 0, 0.5);\\n content: \\\"\\\";\\n height: 100%;\\n position: absolute;\\n width: 100%;\\n z-index: 1000;\\n}\\n.tox .tox-tab {\\n cursor: pointer;\\n}\\n.tox .tox-dialog__content-js {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-dialog__body-content .tox-collection {\\n display: flex;\\n flex: 1;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/tinymce/skins/ui/oxide/skin.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,cAAc;EACd,YAAY;EACZ,gIAAgI;EAChI,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,wCAAwC;EACxC,6BAA6B;EAC7B,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,oCAAoC;EACpC,mBAAmB;EACnB,wBAAwB;EACxB,oBAAoB;EACpB,uBAAuB;EACvB,uBAAuB;EACvB,oBAAoB;AACtB;AACA;EACE,kDAAkD;EAClD,uBAAuB;EACvB,SAAS;EACT,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,eAAe;EACf,UAAU;EACV,UAAU;EACV,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,cAAc;EACd,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,yBAAyB;EACzB,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,sBAAsB;EACtB,gIAAgI;EAChI,gBAAgB;EAChB,kBAAkB;EAClB,8BAA8B;AAChC;AACA;EACE,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,gIAAgI;EAChI,aAAa;AACf;AACA;;EAEE,aAAa;AACf;AACA;EACE,SAAS;AACX;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,kBAAkB;AACpB;AACA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,kBAAkB;AACpB;AACA;EACE,cAAc;AAChB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,wCAAwC;EACxC,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,yBAAyB;EACzB,WAAW;AACb;AACA;;EAEE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,yCAAyC;EACzC,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;;EAEE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,sCAAsC;EACtC,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;;EAEE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,yCAAyC;EACzC,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;;EAEE,eAAe;EACf,aAAa;AACf;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,eAAe;EACf,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,UAAU;AACZ;AACA;EACE,WAAW;EACX,kBAAkB;AACpB;AACA;EACE,OAAO;AACT;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,UAAU;AACZ;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;AAChB;AACA;EACE;IACE,WAAW;EACb;AACF;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,aAAa;EACb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EAChB,SAAS;EACT,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,wCAAwC;EACxC,yBAAyB;EACzB,iBAAiB;EACjB,4BAA4B;AAC9B;AACA;EACE,wCAAwC;EACxC,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,wCAAwC;EACxC,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,wCAAwC;EACxC,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,cAAc;AAChB;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,eAAe;EACf,aAAa;EACb,YAAY;EACZ,eAAe;AACjB;AACA;EACE,iDAAiD;EACjD,WAAW;EACX,gBAAgB;EAChB,kBAAkB;EAClB,SAAS;EACT,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,iCAAiC;EACjC,uBAAuB;EACvB,aAAa;EACb,YAAY;EACZ,uBAAuB;EACvB,wBAAwB;EACxB,WAAW;AACb;AACA;EACE,cAAc;EACd,2BAA2B;AAC7B;AACA;EACE;IACE,6BAA6B;EAC/B;AACF;AACA;EACE,aAAa;EACb,aAAa;AACf;AACA;EACE,aAAa;EACb,aAAa;AACf;AACA;EACE,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,mCAAmC;EACnC,wBAAwB;AAC1B;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;AACjB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,aAAa;EACb,UAAU;AACZ;AACA;EACE,aAAa;EACb,eAAe;EACf,iBAAiB;EACjB,kBAAkB;EAClB,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;EACnB,qBAAqB;EACrB,cAAc;AAChB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,yBAAyB;EACzB,4BAA4B;EAC5B,eAAe;EACf,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB,2BAA2B;EAC3B,yBAAyB;UACjB,iBAAiB;AAC3B;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,cAAc;EACd,aAAa;EACb,2BAA2B;EAC3B,yBAAyB;UACjB,iBAAiB;AAC3B;AACA;EACE,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,cAAc;AAChB;AACA;EACE,yBAAyB;EACzB,WAAW;AACb;AACA;EACE;IACE,iBAAiB;EACnB;AACF;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,yBAAyB;EACzB,cAAc;EACd,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,mCAAmC;EACnC,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE;IACE,kBAAkB;IAClB,kBAAkB;EACpB;AACF;AACA;EACE,cAAc;EACd,sBAAsB;EACtB,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE;IACE,kBAAkB;IAClB,kBAAkB;EACpB;AACF;AACA;;EAEE,mBAAmB;EACnB,aAAa;EACb,YAAY;EACZ,uBAAuB;EACvB,WAAW;AACb;AACA;;EAEE,kBAAkB;AACpB;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,OAAO;EACP,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,oBAAoB;EACpB,qBAAqB;AACvB;AACA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,eAAe;EACf,YAAY;EACZ,iBAAiB;EACjB,oBAAoB;AACtB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,6BAA6B;EAC7B,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,sBAAsB;EACtB,yBAAyB;EACzB,kBAAkB;EAClB,+EAA+E;EAC/E,aAAa;EACb,cAAc;EACd,cAAc;EACd,iBAAiB;EACjB,gBAAgB;EAChB,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,iBAAiB;EACjB,SAAS;EACT,cAAc;AAChB;AACA;EACE,YAAY;EACZ,qBAAqB;EACrB,cAAc;AAChB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,cAAc;EACd,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,iBAAiB;AACnB;AACA;EACE,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,sBAAsB;AACxB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,mCAAmC;AACrC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,kCAAkC;AACpC;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,0BAA0B;AAC5B;AACA;EACE,iBAAiB;AACnB;AACA;EACE;;IAEE,yCAAyC;IACzC,sCAAsC;IACtC,yBAAyB;EAC3B;AACF;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,aAAa;EACb,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,aAAa;EACb,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;;EAEE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,uBAAuB;EACvB,YAAY;EACZ,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,uBAAuB;EACvB,kBAAkB;EAClB,YAAY;EACZ,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,sBAAsB;EACtB,YAAY;EACZ,WAAW;AACb;AACA;EACE,sIAAsI;EACtI,YAAY;EACZ,WAAW;AACb;AACA;;EAEE,WAAW;AACb;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,iBAAiB;EACjB,uBAAuB;EACvB,uBAAuB;EACvB,WAAW;EACX,WAAW;AACb;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AAChC;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,8BAA8B;EAC9B,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,qEAAqE;EACrE,iCAAiC;EACjC,0BAA0B;AAC5B;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,aAAa;EACb,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE,SAAS;AACX;AACA;EACE,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;EAClB,cAAc;EACd,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,uBAAuB;EACvB,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;;;EAGE,sBAAsB;AACxB;AACA;EACE,SAAS;EACT,iBAAiB;AACnB;AACA;EACE,aAAa;AACf;AACA;EACE;IACE,yBAAyB;EAC3B;AACF;AACA;EACE,YAAY;EACZ,6CAA6C;EAC7C,WAAW;AACb;AACA;;EAEE,oDAAoD;EACpD,qBAAqB;AACvB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,eAAe;AACjB;AACA;EACE,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,eAAe;EACf,aAAa;EACb,YAAY;EACZ,uBAAuB;EACvB,aAAa;EACb,UAAU;EACV,WAAW;AACb;AACA;EACE,aAAa;EACb,YAAY;EACZ,WAAW;AACb;AACA;EACE,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,aAAa;EACb,YAAY;EACZ,uDAAuD;EACvD,WAAW;AACb;AACA;EACE,UAAU;EACV,mBAAmB;EACnB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,cAAc;AAChB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qCAAqC;EACrC,mEAAmE;AACrE;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,YAAY;EACZ,6EAA6E;EAC7E,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,8BAA8B;EAC9B,iDAAiD;EACjD,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,yBAAyB;EACzB,kBAAkB;EAClB,yBAAyB;EACzB,kBAAkB;AACpB;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,yBAAyB;EACzB,yBAAyB;EACzB,iDAAiD;AACnD;AACA;EACE,yBAAyB;EACzB,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,SAAS;EACT,oBAAoB;EACpB,kBAAkB;EAClB,WAAW;EACX,cAAc;EACd,YAAY;EACZ,UAAU;EACV,WAAW;EACX,kBAAkB;EAClB,yBAAyB;AAC3B;AACA;EACE,mBAAmB;EACnB,cAAc;EACd,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,cAAc;EACd,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,uBAAuB;EACvB,oDAAoD;EACpD,qBAAqB;EACrB,iGAAiG;AACnG;AACA;EACE,iBAAiB;EACjB,qCAAqC;AACvC;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,SAAS;AACX;AACA;EACE,YAAY;EACZ,mBAAmB;EACnB,WAAW;AACb;AACA;EACE,mBAAmB;EACnB,cAAc;EACd,aAAa;EACb,sBAAsB;EACtB,kBAAkB;AACpB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,SAAS;EACT,sBAAsB;EACtB,eAAe;EACf,OAAO;EACP,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,WAAW;AACb;AACA;EACE,sBAAsB;EACtB,4BAA4B;EAC5B,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,4BAA4B;EAC5B,eAAe;EACf,kBAAkB;EAClB,wDAAwD;AAC1D;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,SAAS;EACT,6BAA6B;AAC/B;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,6BAA6B;AAC/B;AACA;EACE,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,WAAW;EACX,aAAa;EACb,OAAO;EACP,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,UAAU;AACZ;AACA;EACE,aAAa;EACb,cAAc;EACd,eAAe;EACf,yBAAyB;EACzB,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,aAAa;EACb,eAAe;EACf,yBAAyB;EACzB,eAAe;AACjB;AACA;EACE,yDAAyD;EACzD,SAAS;EACT,WAAW;EACX,cAAc;EACd,WAAW;EACX,iBAAiB;EACjB,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,aAAa;EACb,sBAAsB;EACtB,YAAY;EACZ,OAAO;EACP,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,kBAAkB;EAClB,MAAM;EACN,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,SAAS;EACT,aAAa;EACb,uBAAuB;EACvB,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,WAAW;AACb;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,cAAc;EACd,cAAc;EACd,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;EACZ,WAAW;EACX,8HAA8H;EAC9H,oCAAoC;AACtC;AACA;EACE,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,mBAAmB;EACnB,8HAA8H;EAC9H,oCAAoC;AACtC;AACA;EACE;IACE,6BAA6B;EAC/B;EACA;IACE,4BAA4B;EAC9B;AACF;AACA;EACE,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,gCAAgC;EAChC,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,sCAAsC;AACxC;AACA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,yBAAyB;EAC3B;AACF;AACA;EACE,gBAAgB;AAClB;AACA;;;EAGE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;;;EAGE,iBAAiB;AACnB;AACA;EACE,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,iBAAiB;EACjB,oBAAoB;AACtB;AACA;;EAEE,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;AACA;;EAEE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE;;KAEG;AACL;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,aAAa;EACb,uBAAuB;EACvB,OAAO;EACP,eAAe;EACf,QAAQ;EACR,MAAM;EACN,aAAa;AACf;AACA;EACE,2CAA2C;EAC3C,SAAS;EACT,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,mBAAmB;EACnB,mBAAmB;EACnB,eAAe;EACf,yFAAyF;EACzF,aAAa;EACb,sBAAsB;EACtB,gBAAgB;EAChB,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,WAAW;EACX,UAAU;AACZ;AACA;EACE;IACE,sBAAsB;IACtB,gBAAgB;IAChB,iCAAiC;IACjC,yBAAyB;EAC3B;AACF;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,mBAAmB;EACnB,cAAc;EACd,aAAa;EACb,eAAe;EACf,8BAA8B;EAC9B,wBAAwB;EACxB,kBAAkB;AACpB;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,kBAAkB;EAClB,MAAM;EACN,WAAW;AACb;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,gIAAgI;EAChI,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,gBAAgB;EAChB,SAAS;EACT,oBAAoB;AACtB;AACA;EACE,cAAc;EACd,aAAa;EACb,OAAO;EACP,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,oBAAoB;AACtB;AACA;EACE;IACE,sBAAsB;EACxB;AACF;AACA;EACE,uBAAuB;EACvB,aAAa;EACb,sBAAsB;EACtB,cAAc;EACd,kBAAkB;AACpB;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,iCAAiC;IACjC,gBAAgB;IAChB,iBAAiB;EACnB;AACF;AACA;EACE,oCAAoC;EACpC,4BAA4B;EAC5B,qBAAqB;EACrB,cAAc;EACd,eAAe;EACf,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;EACf,6BAA6B;EAC7B,qBAAqB;AACvB;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,gCAAgC;EAChC,cAAc;AAChB;AACA;EACE;IACE,kCAAkC;IAClC,gBAAgB;EAClB;AACF;AACA;EACE,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,sBAAsB;EACtB,2CAA2C;EAC3C,cAAc;EACd,iCAAiC;EACjC,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;EAChB,aAAa;AACf;AACA;EACE,cAAc;EACd,eAAe;EACf,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;;EAEE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,qBAAqB;AACvB;AACA;;;EAGE,4BAA4B;AAC9B;AACA;;;EAGE,mBAAmB;AACrB;AACA;;;;;EAKE,cAAc;EACd,oBAAoB;EACpB,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;AACtB;AACA;EACE,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;AACtB;AACA;EACE,mBAAmB;AACrB;AACA;;;EAGE,aAAa;AACf;AACA;;;EAGE,gBAAgB;AAClB;AACA;;;EAGE,gBAAgB;EAChB,aAAa;AACf;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;EACb,iBAAiB;AACnB;AACA;EACE,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,gBAAgB;EAChB,aAAa;EACb,8BAA8B;EAC9B,iBAAiB;AACnB;AACA;;EAEE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,2CAA2C;EAC3C,SAAS;EACT,aAAa;EACb,uBAAuB;EACvB,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,WAAW;AACb;AACA;EACE,iBAAiB;EACjB,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gCAAgC;AAClC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,kBAAkB;EAClB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,oBAAoB;EACpB,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,6BAA6B;EAC7B,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,aAAa;AACf;AACA;EACE,aAAa;EACb,OAAO;EACP,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,OAAO;AACT;AACA;EACE,OAAO;EACP,YAAY;AACd;AACA;EACE,UAAU;EACV,kBAAkB;AACpB;AACA;EACE,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,oBAAoB;AACtB;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,gBAAgB;EAClB;AACF;AACA;;EAEE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE;IACE,cAAc;EAChB;AACF;AACA;EACE;IACE,iBAAiB;EACnB;AACF;AACA;;EAEE,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,OAAO;AACT;AACA;EACE,mBAAmB;EACnB,gBAAgB;EAChB,0BAA0B;EAC1B,sBAAsB;EACtB,aAAa;EACb,sBAAsB;EACtB,YAAY;EACZ,uBAAuB;EACvB,iBAAiB;EACjB,aAAa;AACf;AACA;EACE,4BAA4B;EAC5B,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,OAAO;EACP,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,kBAAkB;EAClB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,oBAAoB;EACpB,kBAAkB;EAClB,yBAAyB;EACzB,UAAU;AACZ;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,sBAAsB;EACtB,SAAS;EACT,sBAAsB;EACtB,OAAO;EACP,YAAY;EACZ,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,UAAU;AACZ;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sCAAsC;EACtC,UAAU;AACZ;AACA;EACE,sBAAsB;EACtB,mBAAmB;EACnB,uFAAuF;EACvF,cAAc;AAChB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,6BAA6B;EAC7B,gBAAgB;AAClB;AACA;EACE,sBAAsB;EACtB,uFAAuF;EACvF,cAAc;AAChB;AACA;EACE,uFAAuF;AACzF;AACA;EACE,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,UAAU;EACV,kBAAkB;AACpB;AACA;EACE,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oBAAoB;AACtB;AACA;EACE,OAAO;EACP,kBAAkB;AACpB;AACA;;;EAGE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;;;EAGE,mBAAmB;AACrB;AACA;EACE,UAAU;AACZ;AACA;;;EAGE,kBAAkB;AACpB;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,OAAO;EACP,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,sBAAsB;EACtB,eAAe;AACjB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,8BAA8B;EAC9B,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,WAAW;AACb;AACA;EACE;IACE,0BAA0B;IAC1B,4BAA4B;IAC5B,yBAAyB;EAC3B;AACF;AACA;;EAEE,qBAAqB;EACrB,eAAe;AACjB;AACA;EACE,0RAA0R;EAC1R,iDAAiD;EACjD,0BAA0B;EAC1B,sBAAsB;EACtB,kBAAkB;EAClB,sBAAsB;EACtB,WAAW;EACX,YAAY;EACZ,UAAU;EACV,kBAAkB;EAClB,SAAS;EACT,WAAW;EACX,WAAW;AACb;AACA;EACE;IACE,YAAY;EACd;AACF;AACA;EACE,mBAAmB;AACrB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,kBAAkB;AACpB;AACA;EACE,SAAS;AACX;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,mBAAmB;AACrB;AACA;EACE,UAAU;AACZ;AACA;;EAEE,4BAA4B;EAC5B,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,OAAO;EACP,sBAAsB;AACxB;AACA;EACE,sBAAsB;EACtB,kBAAkB;AACpB;AACA;EACE,OAAO;AACT;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,8BAA8B;AAChC;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,iCAAiC;AACnC;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,aAAa;EACb,OAAO;EACP,sBAAsB;AACxB;AACA;EACE,OAAO;AACT;AACA;EACE,aAAa;EACb,OAAO;AACT;AACA;EACE,OAAO;EACP,YAAY;AACd;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;;EAEE,aAAa;AACf;AACA;;;;;EAKE,gBAAgB;EAChB,sBAAsB;EACtB,qBAAqB;EACrB,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,cAAc;EACd,gIAAgI;EAChI,eAAe;EACf,iBAAiB;EACjB,SAAS;EACT,gBAAgB;EAChB,aAAa;EACb,kBAAkB;EAClB,YAAY;EACZ,WAAW;AACb;AACA;;EAEE,yBAAyB;EACzB,6BAA6B;EAC7B,mBAAmB;AACrB;AACA;;;;;EAKE,sBAAsB;EACtB,qBAAqB;EACrB,6BAA6B;EAC7B,aAAa;AACf;AACA;EACE,eAAe;EACf,kBAAkB;EAClB,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,6BAA6B;EAC7B,SAAS;EACT,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;EACd,eAAe;EACf,cAAc;EACd,SAAS;EACT,UAAU;AACZ;AACA;EACE,cAAc;EACd,aAAa;AACf;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,6BAA6B;EAC7B,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,OAAO;EACP,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE;IACE,6BAA6B;EAC/B;AACF;AACA;EACE,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,UAAU;AACZ;AACA;EACE,SAAS;AACX;AACA;EACE,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,sBAAsB;EACtB,qBAAqB;EACrB,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,cAAc;EACd,gIAAgI;EAChI,eAAe;EACf,iBAAiB;EACjB,SAAS;EACT,gBAAgB;EAChB,aAAa;EACb,kBAAkB;EAClB,YAAY;EACZ,WAAW;AACb;AACA;EACE,yBAAyB;EACzB,6BAA6B;EAC7B,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,6BAA6B;EAC7B,aAAa;AACf;AACA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,2BAA2B;AAC7B;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,UAAU;AACZ;AACA;;EAEE,kBAAkB;AACpB;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,aAAa;EACb,OAAO;EACP,gBAAgB;AAClB;AACA;EACE,oBAAoB;EACpB,qBAAqB;AACvB;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,SAAS;EACT,YAAY;EACZ,SAAS;EACT,gBAAgB;EAChB,yBAAyB;EACzB,UAAU;EACV,wBAAwB;EACxB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;;EAEE,OAAO;EACP,eAAe;EACf,MAAM;EACN,aAAa;AACf;AACA;EACE,6BAA6B;AAC/B;AACA;;EAEE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,sBAAsB;EACtB,aAAa;EACb,gBAAgB;EAChB,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;EACb,WAAW;EACX,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,mDAAmH;AACrH;AACA;EACE,OAAO;AACT;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,YAAY;EACZ,uBAAuB;AACzB;AACA;;EAEE,eAAe;AACjB;AACA;EACE,iBAAiB;EACjB,yBAAyB;EACzB,YAAY;EACZ,kBAAkB;EAClB,OAAO;AACT;AACA;EACE,uBAAuB;EACvB,YAAY;EACZ,OAAO;EACP,kBAAkB;EAClB,MAAM;EACN,WAAW;AACb;AACA;EACE,SAAS;EACT,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,qBAAqB;EACrB,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,sBAAsB;EACtB,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,wBAAwB;EACxB,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,uBAAuB;EACvB,UAAU;AACZ;AACA;EACE,sBAAsB;EACtB,aAAa;EACb,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,yBAAyB;EACzB,sBAAsB;EACtB,YAAY;EACZ,WAAW;AACb;AACA;EACE,iBAAiB;AACnB;AACA;EACE,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE;IACE,uBAAuB;IACvB,qBAAqB;EACvB;AACF;AACA;EACE,4BAA4B;EAC5B,cAAc;EACd,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,eAAe;AACjB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,eAAe;AACjB;AACA;EACE,sBAAsB;EACtB,qBAAqB;AACvB;AACA;EACE,sBAAsB;EACtB,6BAA6B;EAC7B,kBAAkB;EAClB,+EAA+E;EAC/E,qBAAqB;EACrB,gBAAgB;EAChB,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE;IACE,yBAAyB;IACzB,kBAAkB;EACpB;EACA;IACE,qBAAqB;EACvB;AACF;AACA;;;;;;;;;EASE,SAAS;AACX;AACA;EACE,iIAAiI;EACjI,sBAAsB;EACtB,aAAa;EACb,cAAc;EACd,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,sBAAsB;AACxB;AACA;EACE,cAAc;AAChB;AACA;EACE,iIAAiI;EACjI,sBAAsB;EACtB,cAAc;EACd,WAAW;EACX,uBAAuB;EACvB,yBAAyB;EACzB,gBAAgB;AAClB;AACA;EACE,0BAA0B;EAC1B,yBAAyB;EACzB,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,aAAa;EACb,eAAe;EACf,cAAc;EACd,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA,6CAA6C;AAC7C;EACE,mBAAmB;EACnB,gBAAgB;EAChB,SAAS;EACT,kBAAkB;EAClB,gBAAgB;EAChB,cAAc;EACd,aAAa;EACb,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,YAAY;EACZ,uBAAuB;EACvB,qBAAqB;EACrB,aAAa;EACb,cAAc;EACd,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,sBAAsB;EACtB,SAAS;EACT,gBAAgB;EAChB,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,cAAc;EACd,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;;EAEE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,eAAe;EACf,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,+DAA+D;EAC/D,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;EACf,UAAU;EACV,YAAY;EACZ,0DAA0D;EAC1D,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,qBAAqB;EACrB,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;;EAEE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;EACE,yBAAyB;EACzB,qBAAqB;EACrB,cAAc;EACd,0DAA0D;AAC5D;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;;EAEE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;;EAEE,yBAAyB;EACzB,qBAAqB;EACrB,cAAc;EACd,0DAA0D;AAC5D;AACA;;EAEE,cAAc;AAChB;AACA;;EAEE,cAAc;AAChB;AACA;;;;EAIE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;;EAEE,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;AACrB;AACA;;EAEE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;;EAEE,aAAa;AACf;AACA;EACE,yBAAyB;EACzB,qBAAqB;EACrB,cAAc;EACd,0DAA0D;AAC5D;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;;EAEE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,kCAAkC;EAClC,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,qBAAqB;EACrB,sBAAsB;AACxB;AACA;EACE,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,cAAc;AAChB;AACA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,oBAAoB;AACtB;AACA;EACE,UAAU;EACV,kBAAkB;AACpB;AACA;EACE,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,oBAAoB;AACtB;AACA;EACE,qBAAqB;EACrB,kBAAkB;AACpB;AACA;EACE,2BAA2B;AAC7B;AACA;;EAEE,iBAAiB;AACnB;AACA;EACE,sBAAsB;EACtB,6CAA6C;AAC/C;AACA;;EAEE,gEAAgE;AAClE;AACA;EACE,sBAAsB;EACtB,yBAAyB;EACzB,kBAAkB;EAClB,+EAA+E;EAC/E,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,mBAAmB;AACrB;AACA;;EAEE,mBAAmB;EACnB,WAAW;EACX,cAAc;EACd,SAAS;EACT,UAAU;EACV,kBAAkB;EAClB,QAAQ;AACV;AACA;EACE;;IAEE,aAAa;EACf;AACF;AACA;;EAEE,UAAU;EACV,4DAA4D;AAC9D;AACA;;EAEE,SAAS;EACT,SAAS;AACX;AACA;EACE,sDAAsD;EACtD,iBAAiB;EACjB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,yDAAyD;EACzD,iBAAiB;EACjB,iBAAiB;AACnB;AACA;;EAEE,SAAS;EACT,MAAM;EACN,4BAA4B;AAC9B;AACA;EACE,sDAAsD;EACtD,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,yDAAyD;EACzD,iBAAiB;EACjB,iBAAiB;AACnB;AACA;;EAEE,OAAO;EACP,oBAAoB;EACpB,2BAA2B;AAC7B;AACA;EACE,sDAAsD;EACtD,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,yDAAyD;EACzD,kBAAkB;EAClB,kBAAkB;AACpB;AACA;;EAEE,UAAU;EACV,oBAAoB;EACpB,2BAA2B;AAC7B;AACA;EACE,sDAAsD;EACtD,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,yDAAyD;EACzD,kBAAkB;EAClB,iBAAiB;AACnB;AACA;;EAEE,UAAU;AACZ;AACA;;EAEE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,aAAa;AACf;AACA;EACE,yBAAyB;EACzB,aAAa;EACb,mBAAmB;EACnB,yBAAyB;AAC3B;AACA;EACE,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;;EAEE,8CAA8C;AAChD;AACA;EACE,yBAAyB;EACzB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EACjB,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,OAAO;EACP,YAAY;EACZ,uBAAuB;EACvB,kBAAkB;AACpB;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;EAChB,YAAY;EACZ,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,4CAA4C;EAC5C,WAAW;AACb;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,8DAA8D;EAC9D,uCAAuC;EACvC,mBAAmB;EACnB,WAAW;EACX,UAAU;AACZ;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE;;;IAGE,mBAAmB;EACrB;EACA;IACE,mBAAmB;EACrB;AACF;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,6BAA6B;EAC7B,4BAA4B;EAC5B,aAAa;EACb,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,YAAY;EACZ,gBAAgB;EAChB,cAAc;EACd,kBAAkB;EAClB,oBAAoB;AACtB;AACA;EACE,aAAa;EACb,cAAc;EACd,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,yBAAyB;EACzB,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,aAAa;EACb,cAAc;EACd,YAAY;EACZ,8BAA8B;AAChC;AACA;EACE;;;IAGE,wBAAwB;EAC1B;AACF;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,gBAAgB;AAClB;AACA;EACE;IACE,aAAa;EACf;EACA;IACE,cAAc;EAChB;AACF;AACA;;;EAGE,4BAA4B;EAC5B,kBAAkB;EAClB,6BAA6B;EAC7B,qBAAqB;AACvB;AACA;;;;;;EAME,cAAc;EACd,eAAe;AACjB;AACA;;;EAGE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;;;IAGE,2BAA2B;EAC7B;AACF;AACA;EACE,2BAA2B;EAC3B,WAAW;EACX,kBAAkB;EAClB,WAAW;AACb;AACA;EACE;IACE,kBAAkB;EACpB;AACF;AACA;EACE,qDAAqD;EACrD,mBAAmB;EACnB,oBAAoB;AACtB;AACA;;EAEE,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,mBAAmB;EACnB,aAAa;EACb,cAAc;EACd,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;EAChB,6BAA6B;EAC7B,eAAe;EACf,iBAAiB;EACjB,eAAe;EACf,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,2BAA2B;AAC7B;AACA;;EAEE,aAAa;AACf;AACA;EACE,6BAA6B;EAC7B,8BAA8B;EAC9B,iCAAiC;AACnC;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,0CAA0C;EAC1C,SAAS;EACT,aAAa;EACb,uBAAuB;EACvB,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE,mBAAmB;EACnB,gBAAgB;EAChB,SAAS;EACT,kBAAkB;EAClB,gBAAgB;EAChB,cAAc;EACd,aAAa;EACb,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,YAAY;EACZ,uBAAuB;EACvB,qBAAqB;EACrB,aAAa;EACb,UAAU;EACV,oBAAoB;EACpB,WAAW;AACb;AACA;EACE;;IAEE,gCAAgC;EAClC;EACA;;;;;IAKE,+BAA+B;IAC/B,kBAAkB;EACpB;AACF;AACA;EACE,cAAc;EACd,aAAa;AACf;AACA;EACE;IACE,6BAA6B;EAC/B;EACA;;IAEE,6BAA6B;EAC/B;EACA;;;;IAIE,oBAAoB;EACtB;AACF;AACA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,2BAA2B;AAC7B;AACA;;;;EAIE,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;;;;EAIE,qDAAqD;EACrD,2BAA2B;AAC7B;AACA;;;;EAIE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;EACd,kBAAkB;AACpB;AACA;;;;EAIE,eAAe;AACjB;AACA;;;;EAIE,qDAAqD;EACrD,aAAa;AACf;AACA;;;;EAIE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,eAAe;AACjB;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,sBAAsB;EACtB,YAAY;EACZ,WAAW;AACb;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;AACb;AACA;EACE,cAAc;EACd,YAAY;AACd;AACA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,wBAAwB;EACxB,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,aAAa;EACb,qBAAqB;EACrB,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,mBAAmB;AACrB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,aAAa;EACb,oBAAoB;EACpB,kBAAkB;EAClB,kBAAkB;AACpB;AACA;EACE,yBAAyB;EACzB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,YAAY;EACZ,kBAAkB;EAClB,kBAAkB;EAClB,WAAW;AACb;AACA;EACE;;;IAGE,0CAA0C;EAC5C;AACF;AACA;EACE,cAAc;EACd,aAAa;EACb,cAAc;EACd,sBAAsB;AACxB;AACA;EACE;;;IAGE,6BAA6B;EAC/B;EACA;IACE,mBAAmB;EACrB;AACF;AACA;EACE,mBAAmB;EACnB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,0BAA0B;AAC5B;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,cAAc;EACd,WAAW;AACb;AACA;EACE,eAAe;EACf,mBAAmB;EACnB,eAAe;EACf,aAAa;EACb,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,WAAW;AACb;AACA;EACE,2BAA2B;AAC7B;AACA;EACE;IACE,kBAAkB;EACpB;AACF;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;EACnB,UAAU;AACZ;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,SAAS;EACT,kBAAkB;EAClB,sBAAsB;EACtB,aAAa;EACb,qBAAqB;AACvB;AACA;EACE,mCAAmC;AACrC;AACA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,cAAc;EACd,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;AACR;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,gBAAgB;AAClB;AACA;EACE,8BAA8B;EAC9B,2BAA2B;AAC7B;AACA;EACE,+BAA+B;EAC/B,4BAA4B;AAC9B;AACA;EACE,WAAW;AACb;AACA;EACE,2BAA2B;AAC7B;AACA;EACE;IACE,kBAAkB;EACpB;AACF;AACA;EACE,SAAS;AACX;AACA;EACE,6BAA6B;AAC/B;AACA;;;;EAIE,gBAAgB;EAChB,gBAAgB;EAChB,4BAA4B;AAC9B;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;;EAEE,YAAY;AACd;AACA;EACE,sBAAsB;AACxB;AACA;;;EAGE,4BAA4B;EAC5B,sBAAsB;EACtB,gFAAgF;EAChF,oCAAoC;EACpC,4BAA4B;EAC5B,wDAAwD;EACxD,aAAa;EACb,cAAc;EACd,cAAc;EACd,eAAe;EACf,cAAc;EACd,2BAA2B;AAC7B;AACA;;;EAGE,mCAAmC;EACnC,uDAAuD;AACzD;AACA;EACE,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,sDAAsD;AACxD;AACA;EACE,iFAAiF;AACnF;AACA;;EAEE,mBAAmB;AACrB;AACA;;EAEE,iCAAiC;EACjC,gBAAgB;EAChB,mBAAmB;EACnB,gBAAgB;AAClB;AACA;EACE;;IAEE,+BAA+B;EACjC;AACF;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,eAAe;AACjB;AACA;EACE,sBAAsB;AACxB;AACA;;EAEE,oCAAoC;AACtC;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,uDAAuD;EACvD,YAAY;EACZ,kBAAkB;EAClB,+EAA+E;EAC/E,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE;IACE,aAAa;EACf;AACF;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oCAAoC;EACpC,wDAAwD;EACxD,cAAc;AAChB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,WAAW;EACX,sBAAsB;AACxB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,mCAAmC;AACrC;AACA;EACE,kCAAkC;AACpC;AACA;EACE,qBAAqB;EACrB,eAAe;EACf,YAAY;EACZ;;;;;MAKI;EACJ,oBAAoB;EACpB,kBAAkB;EAClB,kBAAkB;EAClB,aAAa;AACf;AACA;EACE,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,eAAe;EACf,kBAAkB;EAClB,gBAAgB;EAChB,yBAAyB;EACzB,gBAAgB;EAChB,oBAAoB;AACtB;AACA;EACE;IACE,mBAAmB;EACrB;AACF;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kCAAkC;EAClC,mCAAmC;EACnC,6BAA6B;EAC7B,SAAS;EACT,SAAS;EACT,kBAAkB;EAClB,2BAA2B;AAC7B;AACA;EACE,gCAAgC;EAChC,kCAAkC;EAClC,mCAAmC;EACnC,SAAS;EACT,kBAAkB;EAClB,MAAM;EACN,2BAA2B;AAC7B;AACA;EACE,oCAAoC;EACpC,8BAA8B;EAC9B,iCAAiC;EACjC,kBAAkB;EAClB,QAAQ;EACR,QAAQ;EACR,2BAA2B;AAC7B;AACA;EACE,oCAAoC;EACpC,+BAA+B;EAC/B,iCAAiC;EACjC,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,2BAA2B;AAC7B;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,mBAAmB;EACnB,uBAAuB;EACvB,SAAS;EACT,kBAAkB;EAClB,gBAAgB;EAChB,cAAc;EACd,aAAa;EACb,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,aAAa;EACb,gBAAgB;EAChB,UAAU;EACV,iBAAiB;EACjB,oBAAoB;AACtB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;AAClB;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;;;;EAIE,uBAAuB;EACvB,SAAS;EACT,gBAAgB;EAChB,4BAA4B;EAC5B,mBAAmB;AACrB;AACA;;;;EAIE,qDAAqD;EACrD,2BAA2B;AAC7B;AACA;;EAEE,mBAAmB;EACnB,SAAS;EACT,gBAAgB;EAChB,cAAc;AAChB;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,qDAAqD;EACrD,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,eAAe;AACjB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;AACb;AACA;EACE,cAAc;EACd,YAAY;AACd;AACA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,wBAAwB;EACxB,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gDAAgD;AAClD;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;;EAEE,aAAa;AACf;AACA;;EAEE,aAAa;AACf;AACA;EACE,6BAA6B;EAC7B,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;;EAEE,sCAAsC;AACxC;AACA;;EAEE,wBAAwB;AAC1B;AACA;EACE,mBAAmB;AACrB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;;EAEE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,6BAA6B;EAC7B,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,YAAY;EACZ,aAAa;EACb,yBAAyB;AAC3B;AACA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;AACA;;EAEE,mCAAmC;AACrC;AACA;EACE,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,qBAAqB;EACrB,mDAAmD;AACrD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,6BAA6B;EAC7B,aAAa;EACb,OAAO;EACP,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,iBAAiB;AACnB;AACA;EACE,OAAO;AACT;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,6CAA6C;EAC7C,cAAc;EACd,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,aAAa;EACb,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,aAAa;EACb,OAAO;EACP,sBAAsB;EACtB,SAAS;EACT,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,YAAY;EACZ,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,8BAA8B;EAC9B,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT,UAAU;EACV,QAAQ;AACV;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,sBAAsB;EACtB,yBAAyB;EACzB,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,SAAS;EACT,aAAa;EACb,WAAW;AACb;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,qCAAqC;EACrC,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,kBAAkB;EAClB,6BAA6B;EAC7B,wCAAwC;AAC1C;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,yBAAyB;EACzB,6CAA6C;EAC7C,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,qCAAqC;EACrC,WAAW;EACX,OAAO;EACP,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,kBAAkB;EAClB,6BAA6B;AAC/B;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,aAAa;EACb,SAAS;EACT,8BAA8B;AAChC;AACA;EACE,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,QAAQ;EACR,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;EACnB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,4BAA4B;EAC5B,eAAe;EACf,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,YAAY;AACd;AACA;;EAEE,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,sBAAsB;EACtB,YAAY;AACd;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,8BAA8B;EAC9B,2BAA2B;EAC3B,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,iBAAiB;EACjB,iBAAiB;EACjB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;;EAEE,YAAY;AACd;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,8BAA8B;EAC9B,gBAAgB;EAChB,2BAA2B;AAC7B;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,SAAS;AACX;AACA;;EAEE,aAAa;AACf;AACA;EACE,YAAY;EACZ,YAAY;EACZ,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,yBAAyB;EACzB,kBAAkB;AACpB;AACA;;EAEE,gBAAgB;AAClB;AACA;;EAEE,iBAAiB;AACnB;AACA;EACE,yBAAyB;EACzB,kBAAkB;EAClB,YAAY;EACZ,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;AAClB;AACA;EACE,SAAS;AACX;AACA;EACE,yBAAyB;EACzB,kBAAkB;EAClB,aAAa;EACb,OAAO;EACP,gBAAgB;EAChB,kBAAkB;AACpB;AACA,sBAAsB;AACtB;EACE,qBAAqB;AACvB;AACA;EACE,oCAAoC;EACpC,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,WAAW;EACX,aAAa;AACf;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;EACb,OAAO;AACT;AACA;EACE,aAAa;EACb,OAAO;AACT\",\"sourcesContent\":[\".tox {\\n box-shadow: none;\\n box-sizing: content-box;\\n color: #222f3e;\\n cursor: auto;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: normal;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n vertical-align: initial;\\n white-space: normal;\\n}\\n.tox *:not(svg):not(rect) {\\n box-sizing: inherit;\\n color: inherit;\\n cursor: inherit;\\n direction: inherit;\\n font-family: inherit;\\n font-size: inherit;\\n font-style: inherit;\\n font-weight: inherit;\\n line-height: inherit;\\n -webkit-tap-highlight-color: inherit;\\n text-align: inherit;\\n text-decoration: inherit;\\n text-shadow: inherit;\\n text-transform: inherit;\\n vertical-align: inherit;\\n white-space: inherit;\\n}\\n.tox *:not(svg):not(rect) {\\n /* stylelint-disable-line no-duplicate-selectors */\\n background: transparent;\\n border: 0;\\n box-shadow: none;\\n float: none;\\n height: auto;\\n margin: 0;\\n max-width: none;\\n outline: 0;\\n padding: 0;\\n position: static;\\n width: auto;\\n}\\n.tox:not([dir=rtl]) {\\n direction: ltr;\\n text-align: left;\\n}\\n.tox[dir=rtl] {\\n direction: rtl;\\n text-align: right;\\n}\\n.tox-tinymce {\\n border: 2px solid #eeeeee;\\n border-radius: 10px;\\n box-shadow: none;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: column;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n overflow: hidden;\\n position: relative;\\n visibility: inherit !important;\\n}\\n.tox.tox-tinymce-inline {\\n border: none;\\n box-shadow: none;\\n overflow: initial;\\n}\\n.tox.tox-tinymce-inline .tox-editor-container {\\n overflow: initial;\\n}\\n.tox.tox-tinymce-inline .tox-editor-header {\\n background-color: #fff;\\n border: 2px solid #eeeeee;\\n border-radius: 10px;\\n box-shadow: none;\\n overflow: hidden;\\n}\\n.tox-tinymce-aux {\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n z-index: 1300;\\n}\\n.tox-tinymce *:focus,\\n.tox-tinymce-aux *:focus {\\n outline: none;\\n}\\nbutton::-moz-focus-inner {\\n border: 0;\\n}\\n.tox[dir=rtl] .tox-icon--flip svg {\\n transform: rotateY(180deg);\\n}\\n.tox .accessibility-issue__header {\\n align-items: center;\\n display: flex;\\n margin-bottom: 4px;\\n}\\n.tox .accessibility-issue__description {\\n align-items: stretch;\\n border-radius: 6px;\\n display: flex;\\n justify-content: space-between;\\n}\\n.tox .accessibility-issue__description > div {\\n padding-bottom: 4px;\\n}\\n.tox .accessibility-issue__description > div > div {\\n align-items: center;\\n display: flex;\\n margin-bottom: 4px;\\n}\\n.tox .accessibility-issue__description > div > div .tox-icon svg {\\n display: block;\\n}\\n.tox .accessibility-issue__repair {\\n margin-top: 16px;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description {\\n background-color: rgba(0, 101, 216, 0.1);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 {\\n color: #006ce7;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg {\\n fill: #006ce7;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon {\\n background-color: #006ce7;\\n color: #fff;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:hover,\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:focus {\\n background-color: #0060ce;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:active {\\n background-color: #0054b4;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description {\\n background-color: rgba(255, 165, 0, 0.08);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 {\\n color: #8f5d00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg {\\n fill: #8f5d00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon {\\n background-color: #FFE89D;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:hover,\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:focus {\\n background-color: #F2D574;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:active {\\n background-color: #E8C657;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description {\\n background-color: rgba(204, 0, 0, 0.1);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 {\\n color: #c00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg {\\n fill: #c00;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon {\\n background-color: #F2BFBF;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:hover,\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:focus {\\n background-color: #E9A4A4;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:active {\\n background-color: #EE9494;\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description {\\n background-color: rgba(120, 171, 70, 0.1);\\n color: #222f3e;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child {\\n display: none;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 {\\n color: #527530;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg {\\n fill: #527530;\\n}\\n.tox .tox-dialog__body-content .accessibility-issue__header .tox-form__group h1,\\n.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 {\\n font-size: 14px;\\n margin-top: 0;\\n}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button {\\n margin-left: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) {\\n margin-left: auto;\\n}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description {\\n padding: 4px 4px 4px 8px;\\n}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button {\\n margin-right: 4px;\\n}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) {\\n margin-right: auto;\\n}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description {\\n padding: 4px 8px 4px 4px;\\n}\\n.tox .mce-codemirror {\\n background: #fff;\\n bottom: 0;\\n font-size: 13px;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 1;\\n}\\n.tox .mce-codemirror.tox-inline-codemirror {\\n margin: 8px;\\n position: absolute;\\n}\\n.tox .tox-advtemplate .tox-form__grid {\\n flex: 1;\\n}\\n.tox .tox-advtemplate .tox-form__grid > div:first-child {\\n display: flex;\\n flex-direction: column;\\n width: 30%;\\n}\\n.tox .tox-advtemplate .tox-form__grid > div:first-child > div:nth-child(2) {\\n flex-basis: 0;\\n flex-grow: 1;\\n overflow: auto;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-advtemplate .tox-form__grid > div:first-child {\\n width: 100%;\\n }\\n}\\n.tox .tox-advtemplate iframe {\\n border-color: #eeeeee;\\n border-radius: 10px;\\n border-style: solid;\\n border-width: 1px;\\n margin: 0 10px;\\n}\\n.tox .tox-anchorbar {\\n display: flex;\\n flex: 0 0 auto;\\n}\\n.tox .tox-bottom-anchorbar {\\n display: flex;\\n flex: 0 0 auto;\\n}\\n.tox .tox-bar {\\n display: flex;\\n flex: 0 0 auto;\\n}\\n.tox .tox-button {\\n background-color: #006ce7;\\n background-image: none;\\n background-position: 0 0;\\n background-repeat: repeat;\\n border-color: #006ce7;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n color: #fff;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n line-height: 24px;\\n margin: 0;\\n outline: none;\\n padding: 4px 16px;\\n position: relative;\\n text-align: center;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n text-transform: none;\\n white-space: nowrap;\\n}\\n.tox .tox-button::before {\\n border-radius: 6px;\\n bottom: -1px;\\n box-shadow: inset 0 0 0 1px #fff, 0 0 0 2px #006ce7;\\n content: '';\\n left: -1px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n right: -1px;\\n top: -1px;\\n}\\n.tox .tox-button[disabled] {\\n background-color: #006ce7;\\n background-image: none;\\n border-color: #006ce7;\\n box-shadow: none;\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-button:focus:not(:disabled) {\\n background-color: #0060ce;\\n background-image: none;\\n border-color: #0060ce;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button:focus:not(:disabled)::before {\\n opacity: 1;\\n}\\n.tox .tox-button:hover:not(:disabled) {\\n background-color: #0060ce;\\n background-image: none;\\n border-color: #0060ce;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button:active:not(:disabled) {\\n background-color: #0054b4;\\n background-image: none;\\n border-color: #0054b4;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled {\\n background-color: #0054b4;\\n background-image: none;\\n border-color: #0054b4;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled[disabled] {\\n background-color: #0054b4;\\n background-image: none;\\n border-color: #0054b4;\\n box-shadow: none;\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-button.tox-button--enabled:focus:not(:disabled) {\\n background-color: #00489b;\\n background-image: none;\\n border-color: #00489b;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled:hover:not(:disabled) {\\n background-color: #00489b;\\n background-image: none;\\n border-color: #00489b;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button.tox-button--enabled:active:not(:disabled) {\\n background-color: #003c81;\\n background-image: none;\\n border-color: #003c81;\\n box-shadow: none;\\n color: #fff;\\n}\\n.tox .tox-button--icon-and-text,\\n.tox .tox-button.tox-button--icon-and-text,\\n.tox .tox-button.tox-button--secondary.tox-button--icon-and-text {\\n display: flex;\\n padding: 5px 4px;\\n}\\n.tox .tox-button--icon-and-text .tox-icon svg,\\n.tox .tox-button.tox-button--icon-and-text .tox-icon svg,\\n.tox .tox-button.tox-button--secondary.tox-button--icon-and-text .tox-icon svg {\\n display: block;\\n fill: currentColor;\\n}\\n.tox .tox-button--secondary {\\n background-color: #f0f0f0;\\n background-image: none;\\n background-position: 0 0;\\n background-repeat: repeat;\\n border-color: #f0f0f0;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n color: #222f3e;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n outline: none;\\n padding: 4px 16px;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n text-transform: none;\\n}\\n.tox .tox-button--secondary[disabled] {\\n background-color: #f0f0f0;\\n background-image: none;\\n border-color: #f0f0f0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-button--secondary:focus:not(:disabled) {\\n background-color: #e3e3e3;\\n background-image: none;\\n border-color: #e3e3e3;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary:hover:not(:disabled) {\\n background-color: #e3e3e3;\\n background-image: none;\\n border-color: #e3e3e3;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary:active:not(:disabled) {\\n background-color: #d6d6d6;\\n background-image: none;\\n border-color: #d6d6d6;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled {\\n background-color: #a8c8ed;\\n background-image: none;\\n border-color: #a8c8ed;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled[disabled] {\\n background-color: #a8c8ed;\\n background-image: none;\\n border-color: #a8c8ed;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-button--secondary.tox-button--enabled:focus:not(:disabled) {\\n background-color: #93bbe9;\\n background-image: none;\\n border-color: #93bbe9;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled:hover:not(:disabled) {\\n background-color: #93bbe9;\\n background-image: none;\\n border-color: #93bbe9;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--secondary.tox-button--enabled:active:not(:disabled) {\\n background-color: #7daee4;\\n background-image: none;\\n border-color: #7daee4;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-button--icon,\\n.tox .tox-button.tox-button--icon,\\n.tox .tox-button.tox-button--secondary.tox-button--icon {\\n padding: 4px;\\n}\\n.tox .tox-button--icon .tox-icon svg,\\n.tox .tox-button.tox-button--icon .tox-icon svg,\\n.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg {\\n display: block;\\n fill: currentColor;\\n}\\n.tox .tox-button-link {\\n background: 0;\\n border: none;\\n box-sizing: border-box;\\n cursor: pointer;\\n display: inline-block;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: normal;\\n line-height: 1.3;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.tox .tox-button-link--sm {\\n font-size: 14px;\\n}\\n.tox .tox-button--naked {\\n background-color: transparent;\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked[disabled] {\\n background-color: rgba(34, 47, 62, 0.12);\\n border-color: transparent;\\n box-shadow: unset;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-button--naked:hover:not(:disabled) {\\n background-color: rgba(34, 47, 62, 0.12);\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked:focus:not(:disabled) {\\n background-color: rgba(34, 47, 62, 0.12);\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked:active:not(:disabled) {\\n background-color: rgba(34, 47, 62, 0.18);\\n border-color: transparent;\\n box-shadow: unset;\\n color: #222f3e;\\n}\\n.tox .tox-button--naked .tox-icon svg {\\n fill: currentColor;\\n}\\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {\\n color: #222f3e;\\n}\\n.tox .tox-checkbox {\\n align-items: center;\\n border-radius: 6px;\\n cursor: pointer;\\n display: flex;\\n height: 36px;\\n min-width: 36px;\\n}\\n.tox .tox-checkbox__input {\\n /* Hide from view but visible to screen readers */\\n height: 1px;\\n overflow: hidden;\\n position: absolute;\\n top: auto;\\n width: 1px;\\n}\\n.tox .tox-checkbox__icons {\\n align-items: center;\\n border-radius: 6px;\\n box-shadow: 0 0 0 2px transparent;\\n box-sizing: content-box;\\n display: flex;\\n height: 24px;\\n justify-content: center;\\n padding: calc(4px - 1px);\\n width: 24px;\\n}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n display: block;\\n fill: rgba(34, 47, 62, 0.3);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n fill: currentColor !important;\\n }\\n}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\\n display: none;\\n fill: #006ce7;\\n}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {\\n display: none;\\n fill: #006ce7;\\n}\\n.tox .tox-checkbox--disabled {\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n display: none;\\n}\\n.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg {\\n display: block;\\n}\\n.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\\n display: none;\\n}\\n.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\\n display: block;\\n}\\n.tox input.tox-checkbox__input:focus + .tox-checkbox__icons {\\n border-radius: 6px;\\n box-shadow: inset 0 0 0 1px #006ce7;\\n padding: calc(4px - 1px);\\n}\\n.tox:not([dir=rtl]) .tox-checkbox__label {\\n margin-left: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-checkbox__input {\\n left: -10000px;\\n}\\n.tox:not([dir=rtl]) .tox-bar .tox-checkbox {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-checkbox__label {\\n margin-right: 4px;\\n}\\n.tox[dir=rtl] .tox-checkbox__input {\\n right: -10000px;\\n}\\n.tox[dir=rtl] .tox-bar .tox-checkbox {\\n margin-right: 4px;\\n}\\n.tox {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-collection--toolbar .tox-collection__group {\\n display: flex;\\n padding: 0;\\n}\\n.tox .tox-collection--grid .tox-collection__group {\\n display: flex;\\n flex-wrap: wrap;\\n max-height: 208px;\\n overflow-x: hidden;\\n overflow-y: auto;\\n padding: 0;\\n}\\n.tox .tox-collection--list .tox-collection__group {\\n border-bottom-width: 0;\\n border-color: #e3e3e3;\\n border-left-width: 0;\\n border-right-width: 0;\\n border-style: solid;\\n border-top-width: 1px;\\n padding: 4px 0;\\n}\\n.tox .tox-collection--list .tox-collection__group:first-child {\\n border-top-width: 0;\\n}\\n.tox .tox-collection__group-heading {\\n background-color: #fcfcfc;\\n color: rgba(34, 47, 62, 0.7);\\n cursor: default;\\n font-size: 12px;\\n font-style: normal;\\n font-weight: normal;\\n margin-bottom: 4px;\\n margin-top: -4px;\\n padding: 4px 8px;\\n text-transform: none;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.tox .tox-collection__item {\\n align-items: center;\\n border-radius: 3px;\\n color: #222f3e;\\n display: flex;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.tox .tox-collection--list .tox-collection__item {\\n padding: 4px 8px;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item {\\n border-radius: 3px;\\n padding: 4px;\\n}\\n.tox .tox-collection--grid .tox-collection__item {\\n border-radius: 3px;\\n padding: 4px;\\n}\\n.tox .tox-collection--list .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n background-color: #fff;\\n color: #222f3e;\\n}\\n.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n background-color: #006ce7;\\n color: #fff;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n border: solid 1px;\\n }\\n}\\n.tox .tox-collection--grid .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n background-color: #a6ccf7;\\n color: #222f3e;\\n}\\n.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n background-color: #f0f0f0;\\n color: #222f3e;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 inset;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n background-color: #a6ccf7;\\n color: #222f3e;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--toolbar .tox-collection__item--enabled:not(.tox-collection__item--state-disabled) {\\n border-radius: 3px;\\n outline: solid 1px;\\n }\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\\n color: #222f3e;\\n background-color: #fff;\\n position: relative;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):hover {\\n background-color: #f0f0f0;\\n color: #222f3e;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus {\\n background-color: #f0f0f0;\\n color: #222f3e;\\n}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n@media (forced-colors: active) {\\n .tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):hover {\\n border-radius: 3px;\\n outline: solid 1px;\\n }\\n}\\n.tox .tox-collection__item-icon,\\n.tox .tox-collection__item-checkmark {\\n align-items: center;\\n display: flex;\\n height: 24px;\\n justify-content: center;\\n width: 24px;\\n}\\n.tox .tox-collection__item-icon svg,\\n.tox .tox-collection__item-checkmark svg {\\n fill: currentColor;\\n}\\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon {\\n height: 48px;\\n width: 48px;\\n}\\n.tox .tox-collection__item-label {\\n color: currentColor;\\n display: inline-block;\\n flex: 1;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 24px;\\n max-width: 100%;\\n text-transform: none;\\n word-break: break-all;\\n}\\n.tox .tox-collection__item-accessory {\\n color: currentColor;\\n display: inline-block;\\n font-size: 14px;\\n height: 24px;\\n line-height: 24px;\\n text-transform: none;\\n}\\n.tox .tox-collection__item-caret {\\n align-items: center;\\n display: flex;\\n min-height: 24px;\\n}\\n.tox .tox-collection__item-caret::after {\\n content: '';\\n font-size: 0;\\n min-height: inherit;\\n}\\n.tox .tox-collection__item-caret svg {\\n fill: currentColor;\\n}\\n.tox .tox-collection__item--state-disabled {\\n background-color: transparent;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg {\\n display: none;\\n}\\n.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark {\\n display: none;\\n}\\n.tox .tox-collection--horizontal {\\n background-color: #fff;\\n border: 1px solid #e3e3e3;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n display: flex;\\n flex: 0 0 auto;\\n flex-shrink: 0;\\n flex-wrap: nowrap;\\n margin-bottom: 0;\\n overflow-x: auto;\\n padding: 0;\\n}\\n.tox .tox-collection--horizontal .tox-collection__group {\\n align-items: center;\\n display: flex;\\n flex-wrap: nowrap;\\n margin: 0;\\n padding: 0 4px;\\n}\\n.tox .tox-collection--horizontal .tox-collection__item {\\n height: 28px;\\n margin: 6px 1px 5px 0;\\n padding: 0 4px;\\n}\\n.tox .tox-collection--horizontal .tox-collection__item-label {\\n white-space: nowrap;\\n}\\n.tox .tox-collection--horizontal .tox-collection__item-caret {\\n margin-left: 4px;\\n}\\n.tox .tox-collection__item-container {\\n display: flex;\\n}\\n.tox .tox-collection__item-container--row {\\n align-items: center;\\n flex: 1 1 auto;\\n flex-direction: row;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--align-left {\\n margin-right: auto;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--align-right {\\n justify-content: flex-end;\\n margin-left: auto;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top {\\n align-items: flex-start;\\n margin-bottom: auto;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle {\\n align-items: center;\\n}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom {\\n align-items: flex-end;\\n margin-top: auto;\\n}\\n.tox .tox-collection__item-container--column {\\n align-self: center;\\n flex: 1 1 auto;\\n flex-direction: column;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--align-left {\\n align-items: flex-start;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--align-right {\\n align-items: flex-end;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top {\\n align-self: flex-start;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle {\\n align-self: center;\\n}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom {\\n align-self: flex-end;\\n}\\n.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) {\\n border-right: 1px solid transparent;\\n}\\n.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) {\\n margin-left: 8px;\\n}\\n.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child {\\n margin-left: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-collection__item-accessory {\\n margin-left: 16px;\\n text-align: right;\\n}\\n.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret {\\n margin-left: 16px;\\n}\\n.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) {\\n border-left: 1px solid transparent;\\n}\\n.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) {\\n margin-right: 8px;\\n}\\n.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child {\\n margin-right: 4px;\\n}\\n.tox[dir=rtl] .tox-collection__item-accessory {\\n margin-right: 16px;\\n text-align: left;\\n}\\n.tox[dir=rtl] .tox-collection .tox-collection__item-caret {\\n margin-right: 16px;\\n transform: rotateY(180deg);\\n}\\n.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret {\\n margin-right: 4px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-hue-slider,\\n .tox .tox-rgb-form .tox-rgba-preview {\\n background-color: currentColor !important;\\n border: 1px solid highlight !important;\\n forced-color-adjust: none;\\n }\\n}\\n.tox .tox-color-picker-container {\\n display: flex;\\n flex-direction: row;\\n height: 225px;\\n margin: 0;\\n}\\n.tox .tox-sv-palette {\\n box-sizing: border-box;\\n display: flex;\\n height: 100%;\\n}\\n.tox .tox-sv-palette-spectrum {\\n height: 100%;\\n}\\n.tox .tox-sv-palette,\\n.tox .tox-sv-palette-spectrum {\\n width: 225px;\\n}\\n.tox .tox-sv-palette-thumb {\\n background: none;\\n border: 1px solid black;\\n border-radius: 50%;\\n box-sizing: content-box;\\n height: 12px;\\n position: absolute;\\n width: 12px;\\n}\\n.tox .tox-sv-palette-inner-thumb {\\n border: 1px solid white;\\n border-radius: 50%;\\n height: 10px;\\n position: absolute;\\n width: 10px;\\n}\\n.tox .tox-hue-slider {\\n box-sizing: border-box;\\n height: 100%;\\n width: 25px;\\n}\\n.tox .tox-hue-slider-spectrum {\\n background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00);\\n height: 100%;\\n width: 100%;\\n}\\n.tox .tox-hue-slider,\\n.tox .tox-hue-slider-spectrum {\\n width: 20px;\\n}\\n.tox .tox-hue-slider-spectrum:focus,\\n.tox .tox-sv-palette-spectrum:focus {\\n outline: #08f solid;\\n}\\n.tox .tox-hue-slider-thumb {\\n background: white;\\n border: 1px solid black;\\n box-sizing: content-box;\\n height: 4px;\\n width: 100%;\\n}\\n.tox .tox-rgb-form {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n.tox .tox-rgb-form div {\\n align-items: center;\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 5px;\\n width: inherit;\\n}\\n.tox .tox-rgb-form input {\\n min-width: 6em;\\n}\\n.tox .tox-rgb-form input.tox-invalid {\\n /* Need !important to override Chrome's focus styling unfortunately */\\n border: 1px solid #f00 !important;\\n box-shadow: 0 0 0 1px #f00;\\n}\\n.tox .tox-rgb-container {\\n position: relative;\\n}\\n.tox .tox-rgb-form .tox-invalid-icon {\\n align-content: center;\\n align-items: center;\\n display: none;\\n height: 100%;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n.tox .tox-rgb-form .tox-invalid-icon .tox-control-wrap__status-icon-invalid {\\n margin: 0;\\n}\\n.tox .tox-rgb-warning-note {\\n background-color: #f5cccc;\\n border: 1px solid #f0b3b3;\\n border-radius: 3px;\\n color: #77181f;\\n padding: 3px;\\n}\\n.tox input.tox-invalid + .tox-invalid-icon {\\n display: flex;\\n}\\n.tox .tox-rgb-form .tox-rgba-preview {\\n border: 1px solid black;\\n flex-grow: 2;\\n margin-bottom: 0;\\n}\\n.tox:not([dir=rtl]) .tox-sv-palette {\\n margin-right: 15px;\\n}\\n.tox:not([dir=rtl]) .tox-hue-slider {\\n margin-right: 15px;\\n}\\n.tox:not([dir=rtl]) .tox-hue-slider-thumb {\\n margin-left: -1px;\\n}\\n.tox:not([dir=rtl]) .tox-rgb-form label {\\n margin-right: 0.5em;\\n}\\n.tox[dir=rtl] .tox-sv-palette {\\n margin-left: 15px;\\n}\\n.tox[dir=rtl] .tox-hue-slider {\\n margin-left: 15px;\\n}\\n.tox[dir=rtl] .tox-hue-slider-thumb {\\n margin-right: -1px;\\n}\\n.tox[dir=rtl] .tox-rgb-form label {\\n margin-left: 0.5em;\\n}\\n.tox .tox-toolbar .tox-swatches,\\n.tox .tox-toolbar__primary .tox-swatches,\\n.tox .tox-toolbar__overflow .tox-swatches {\\n margin: 5px 0 6px 11px;\\n}\\n.tox .tox-collection--list .tox-collection__group .tox-swatches-menu {\\n border: 0;\\n margin: -4px -4px;\\n}\\n.tox .tox-swatches__row {\\n display: flex;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-swatches__row {\\n forced-color-adjust: none;\\n }\\n}\\n.tox .tox-swatch {\\n height: 30px;\\n transition: transform 0.15s, box-shadow 0.15s;\\n width: 30px;\\n}\\n.tox .tox-swatch:hover,\\n.tox .tox-swatch:focus {\\n box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset;\\n transform: scale(0.8);\\n}\\n.tox .tox-swatch--remove {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n.tox .tox-swatch--remove svg path {\\n stroke: #e74c3c;\\n}\\n.tox .tox-swatches__picker-btn {\\n align-items: center;\\n background-color: transparent;\\n border: 0;\\n cursor: pointer;\\n display: flex;\\n height: 30px;\\n justify-content: center;\\n outline: none;\\n padding: 0;\\n width: 30px;\\n}\\n.tox .tox-swatches__picker-btn svg {\\n fill: #222f3e;\\n height: 24px;\\n width: 24px;\\n}\\n.tox .tox-swatches__picker-btn:hover {\\n background: #f0f0f0;\\n}\\n.tox div.tox-swatch:not(.tox-swatch--remove) svg {\\n display: none;\\n fill: #222f3e;\\n height: 24px;\\n margin: calc((30px - 24px) / 2) calc((30px - 24px) / 2);\\n width: 24px;\\n}\\n.tox div.tox-swatch:not(.tox-swatch--remove) svg path {\\n fill: #fff;\\n paint-order: stroke;\\n stroke: #222f3e;\\n stroke-width: 2px;\\n}\\n.tox div.tox-swatch:not(.tox-swatch--remove).tox-collection__item--enabled svg {\\n display: block;\\n}\\n.tox:not([dir=rtl]) .tox-swatches__picker-btn {\\n margin-left: auto;\\n}\\n.tox[dir=rtl] .tox-swatches__picker-btn {\\n margin-right: auto;\\n}\\n.tox {\\n /* Animation for deleting a comment */\\n /* A comment fades to 0 when it is being deleted, then is removed */\\n}\\n.tox .tox-conversations {\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n height: 100%;\\n /* This is to give the sidebar a consistent width. Need a solution for this */\\n min-width: 300px;\\n max-width: 300px;\\n width: 300px;\\n}\\n.tox .tox-conversations__header {\\n align-items: center;\\n display: flex;\\n justify-content: space-between;\\n box-shadow: 0px 4px 8px 0px rgba(34, 47, 62, 0.1);\\n padding: 8px 12px;\\n background: #fff;\\n}\\n.tox .tox-conversations__title {\\n font-size: 20px;\\n font-weight: 400;\\n padding: 8px 0 8px 0;\\n color: #222f3e;\\n line-height: 28px;\\n}\\n.tox .tox-comment {\\n background: #fff;\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n padding: 8px 8px 16px 8px;\\n position: relative;\\n}\\n.tox .tox-comment:hover {\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n}\\n.tox .tox-comment.tox-comment--selected {\\n background-color: #fff2c9;\\n border: 1px solid #ffcf30;\\n box-shadow: 0px 4px 8px 0px rgba(34, 47, 62, 0.1);\\n}\\n.tox .tox-comment.tox-comment--selected:focus {\\n border: 2px solid #006ce7;\\n margin: -1px;\\n}\\n.tox .tox-comment.tox-comment--selected:focus:not(:first-child) {\\n margin-top: 7px;\\n}\\n.tox .tox-comment.tox-comment--selected .tox-comment__single {\\n margin-bottom: 12px;\\n}\\n.tox .tox-comment.tox-comment--selected .tox-comment__single:focus {\\n position: relative;\\n}\\n.tox .tox-comment.tox-comment--selected .tox-comment__single:focus::after {\\n top: -9px;\\n pointer-events: none;\\n position: absolute;\\n content: \\\"\\\";\\n display: block;\\n bottom: -9px;\\n left: -9px;\\n right: -9px;\\n border-radius: 6px;\\n border: 2px solid #006ce7;\\n}\\n.tox .tox-comment__header {\\n align-items: center;\\n color: #222f3e;\\n display: flex;\\n justify-content: space-between;\\n}\\n.tox .tox-comment__date {\\n color: #222f3e;\\n font-size: 12px;\\n line-height: 18px;\\n}\\n.tox .tox-comment__body {\\n color: #222f3e;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n margin-top: 8px;\\n position: relative;\\n text-transform: initial;\\n transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);\\n white-space: pre-wrap;\\n /* We remove the transitions when wanting to measure and jump straight to collapsed or expanded */\\n}\\n.tox .tox-comment__body.tox-comment__body--expanded {\\n max-height: 100em;\\n transition: max-height 1s ease-in-out;\\n}\\n.tox .tox-comment__body.tox-comment__body--pending {\\n transition: max-height 0s;\\n}\\n.tox .tox-comment__body p {\\n margin: 0;\\n}\\n.tox .tox-comment__body textarea {\\n resize: none;\\n white-space: normal;\\n width: 100%;\\n}\\n.tox .tox-comment__loading-text {\\n align-items: center;\\n color: #222f3e;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n}\\n.tox .tox-comment__loading-text > div {\\n padding-bottom: 16px;\\n}\\n.tox .tox-comment__overlaytext {\\n bottom: 0;\\n flex-direction: column;\\n font-size: 14px;\\n left: 0;\\n padding: 1em;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 10;\\n}\\n.tox .tox-comment__overlaytext p {\\n background-color: #fff;\\n box-shadow: 0 0 8px 8px #fff;\\n color: #222f3e;\\n text-align: center;\\n}\\n.tox .tox-comment__overlaytext div:nth-of-type(2) {\\n font-size: 0.8em;\\n}\\n.tox .tox-comment__expander {\\n padding-top: 8px;\\n}\\n.tox .tox-comment__expander p {\\n color: rgba(34, 47, 62, 0.7);\\n font-size: 14px;\\n font-style: normal;\\n /* Need a focus highlight on the show more/less button */\\n}\\n.tox .tox-comment__expander p:focus {\\n font-weight: bold;\\n}\\n.tox .tox-comment__buttonspacing {\\n padding-top: 16px;\\n text-align: center;\\n}\\n.tox .tox-tbtn.tox-comment__mention-btn {\\n display: flex;\\n width: 34px;\\n height: 34px;\\n padding: 5px;\\n justify-content: center;\\n align-items: center;\\n margin: 0;\\n background-color: transparent;\\n}\\n.tox .tox-comment-thread {\\n background: #fff;\\n position: relative;\\n border-radius: 6px;\\n background-color: transparent;\\n}\\n.tox .tox-comment-thread > *:not(:first-child) {\\n margin-top: 8px;\\n}\\n.tox .tox-comment-thread__overlay::after {\\n background: #fff;\\n bottom: 0;\\n content: \\\"\\\";\\n display: flex;\\n left: 0;\\n opacity: 0.9;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 5;\\n}\\n.tox .tox-comment__reply {\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n margin-top: 8px;\\n}\\n.tox .tox-comment__reply > *:first-child {\\n margin-bottom: 8px;\\n width: 100%;\\n}\\n.tox .tox-comment__edit {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n margin-top: 8px;\\n}\\n.tox .tox-comment__gradient::after {\\n background: linear-gradient(rgba(255, 255, 255, 0), #fff);\\n bottom: 0;\\n content: \\\"\\\";\\n display: block;\\n height: 5em;\\n margin-top: -40px;\\n position: absolute;\\n width: 100%;\\n}\\n.tox .tox-comment__overlay {\\n background: #fff;\\n bottom: 0;\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n left: 0;\\n opacity: 0.9;\\n position: absolute;\\n right: 0;\\n text-align: center;\\n top: 0;\\n z-index: 5;\\n}\\n.tox .tox-comment__busy-spinner {\\n align-items: center;\\n background-color: #fff;\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 20;\\n}\\n.tox .tox-comment__scroll {\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 1;\\n overflow: auto;\\n padding: 12px;\\n scroll-behavior: smooth;\\n}\\n.tox .tox-comment--disappearing {\\n transition: opacity 0.5s ease;\\n}\\n.tox .tox-comment[data-transitioning-destination=\\\"deleting\\\"] {\\n opacity: 0;\\n}\\n.tox .tox-skeleton .tox-skeleton__line {\\n height: 16px;\\n width: 100%;\\n background: linear-gradient(to right, rgba(240, 240, 240, 0.5) 8%, rgba(240, 240, 240, 0.7) 18%, rgba(240, 240, 240, 0.5) 33%);\\n animation: wave 2s infinite ease-out;\\n}\\n.tox .tox-skeleton .tox-skeleton__circle {\\n height: 36px;\\n width: 36px;\\n margin-right: 8px;\\n border-radius: 100%;\\n background: linear-gradient(to right, rgba(240, 240, 240, 0.5) 8%, rgba(240, 240, 240, 0.7) 18%, rgba(240, 240, 240, 0.5) 33%);\\n animation: wave 2s infinite ease-out;\\n}\\n@keyframes wave {\\n 0% {\\n background-position: -268px 0;\\n }\\n 100% {\\n background-position: 268px 0;\\n }\\n}\\n.tox .tox-ring-loader {\\n width: 10px;\\n height: 10px;\\n border: 1px solid #FFF;\\n border-bottom-color: transparent;\\n border-radius: 50%;\\n display: inline-block;\\n box-sizing: border-box;\\n animation: rotation 1s linear infinite;\\n}\\n@keyframes rotation {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.tox:not([dir=rtl]) .tox-comment__edit {\\n margin-left: 8px;\\n}\\n.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child,\\n.tox:not([dir=rtl]) .tox-comment__edit > *:last-child,\\n.tox:not([dir=rtl]) .tox-comment__reply > *:last-child {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-comment__edit {\\n margin-right: 8px;\\n}\\n.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child,\\n.tox[dir=rtl] .tox-comment__edit > *:last-child,\\n.tox[dir=rtl] .tox-comment__reply > *:last-child {\\n margin-right: 8px;\\n}\\n.tox .tox-user {\\n align-items: center;\\n display: flex;\\n}\\n.tox .tox-user__avatar svg {\\n fill: rgba(34, 47, 62, 0.7);\\n}\\n.tox .tox-user__avatar img {\\n border-radius: 50%;\\n height: 36px;\\n object-fit: cover;\\n vertical-align: middle;\\n width: 36px;\\n}\\n.tox .tox-user__name {\\n color: #222f3e;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: bold;\\n line-height: 18px;\\n text-transform: none;\\n}\\n.tox:not([dir=rtl]) .tox-user__avatar svg,\\n.tox:not([dir=rtl]) .tox-user__avatar img {\\n margin-right: 8px;\\n}\\n.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-user__avatar svg,\\n.tox[dir=rtl] .tox-user__avatar img {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-user__avatar + .tox-user__name {\\n margin-right: 8px;\\n}\\n.tox {\\n /* .tox-dialog-blocker-wrap {\\n //\\n } */\\n}\\n.tox .tox-dialog-wrap {\\n align-items: center;\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1100;\\n}\\n.tox .tox-dialog-wrap__backdrop {\\n background-color: rgba(255, 255, 255, 0.75);\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 1;\\n}\\n.tox .tox-dialog-wrap__backdrop--opaque {\\n background-color: #fff;\\n}\\n.tox .tox-dialog {\\n background-color: #fff;\\n border-color: #eeeeee;\\n border-radius: 10px;\\n border-style: solid;\\n border-width: 0;\\n box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15);\\n display: flex;\\n flex-direction: column;\\n max-height: 100%;\\n max-width: 480px;\\n overflow: hidden;\\n position: relative;\\n width: 95vw;\\n z-index: 2;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-dialog {\\n align-self: flex-start;\\n margin: 8px auto;\\n max-height: calc(100vh - 8px * 2);\\n width: calc(100vw - 16px);\\n }\\n}\\n.tox .tox-dialog-inline {\\n z-index: 1100;\\n}\\n.tox .tox-dialog__header {\\n align-items: center;\\n background-color: #fff;\\n border-bottom: none;\\n color: #222f3e;\\n display: flex;\\n font-size: 16px;\\n justify-content: space-between;\\n padding: 8px 16px 0 16px;\\n position: relative;\\n}\\n.tox .tox-dialog__header .tox-button {\\n z-index: 1;\\n}\\n.tox .tox-dialog__draghandle {\\n cursor: grab;\\n height: 100%;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n}\\n.tox .tox-dialog__draghandle:active {\\n cursor: grabbing;\\n}\\n.tox .tox-dialog__dismiss {\\n margin-left: auto;\\n}\\n.tox .tox-dialog__title {\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n margin: 0;\\n text-transform: none;\\n}\\n.tox .tox-dialog__body {\\n color: #222f3e;\\n display: flex;\\n flex: 1;\\n font-size: 16px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n min-width: 0;\\n text-align: left;\\n text-transform: none;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-dialog__body {\\n flex-direction: column;\\n }\\n}\\n.tox .tox-dialog__body-nav {\\n align-items: flex-start;\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 0;\\n padding: 16px 16px;\\n}\\n@media only screen and (min-width: 768px ) {\\n .tox .tox-dialog__body-nav {\\n max-width: 11em;\\n }\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox .tox-dialog__body-nav {\\n flex-direction: row;\\n -webkit-overflow-scrolling: touch;\\n overflow-x: auto;\\n padding-bottom: 0;\\n }\\n}\\n.tox .tox-dialog__body-nav-item {\\n border-bottom: 2px solid transparent;\\n color: rgba(34, 47, 62, 0.7);\\n display: inline-block;\\n flex-shrink: 0;\\n font-size: 14px;\\n line-height: 1.3;\\n margin-bottom: 8px;\\n max-width: 13em;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n}\\n.tox .tox-dialog__body-nav-item:focus {\\n background-color: rgba(0, 108, 231, 0.1);\\n}\\n.tox .tox-dialog__body-nav-item--active {\\n border-bottom: 2px solid #006ce7;\\n color: #006ce7;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-dialog__body-nav-item--active {\\n border-bottom: 2px solid highlight;\\n color: highlight;\\n }\\n}\\n.tox .tox-dialog__body-content {\\n box-sizing: border-box;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n max-height: min(650px, calc(100vh - 110px));\\n overflow: auto;\\n -webkit-overflow-scrolling: touch;\\n padding: 16px 16px;\\n}\\n.tox .tox-dialog__body-content > * {\\n margin-bottom: 0;\\n margin-top: 16px;\\n}\\n.tox .tox-dialog__body-content > *:first-child {\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content > *:last-child {\\n margin-bottom: 0;\\n}\\n.tox .tox-dialog__body-content > *:only-child {\\n margin-bottom: 0;\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content a {\\n color: #006ce7;\\n cursor: pointer;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-dialog__body-content a:hover,\\n.tox .tox-dialog__body-content a:focus {\\n color: #003c81;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-dialog__body-content a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #006ce7;\\n outline-offset: 2px;\\n}\\n.tox .tox-dialog__body-content a:active {\\n color: #00244e;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-dialog__body-content svg {\\n fill: #222f3e;\\n}\\n.tox .tox-dialog__body-content strong {\\n font-weight: bold;\\n}\\n.tox .tox-dialog__body-content ul {\\n list-style-type: disc;\\n}\\n.tox .tox-dialog__body-content ul,\\n.tox .tox-dialog__body-content ol,\\n.tox .tox-dialog__body-content dd {\\n padding-inline-start: 2.5rem;\\n}\\n.tox .tox-dialog__body-content ul,\\n.tox .tox-dialog__body-content ol,\\n.tox .tox-dialog__body-content dl {\\n margin-bottom: 16px;\\n}\\n.tox .tox-dialog__body-content ul,\\n.tox .tox-dialog__body-content ol,\\n.tox .tox-dialog__body-content dl,\\n.tox .tox-dialog__body-content dd,\\n.tox .tox-dialog__body-content dt {\\n display: block;\\n margin-inline-end: 0;\\n margin-inline-start: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1 {\\n color: #222f3e;\\n font-size: 20px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n margin-bottom: 16px;\\n margin-top: 2rem;\\n text-transform: none;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h2 {\\n color: #222f3e;\\n font-size: 16px;\\n font-style: normal;\\n font-weight: bold;\\n letter-spacing: normal;\\n margin-bottom: 16px;\\n margin-top: 2rem;\\n text-transform: none;\\n}\\n.tox .tox-dialog__body-content .tox-form__group p {\\n margin-bottom: 16px;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1:first-child,\\n.tox .tox-dialog__body-content .tox-form__group h2:first-child,\\n.tox .tox-dialog__body-content .tox-form__group p:first-child {\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1:last-child,\\n.tox .tox-dialog__body-content .tox-form__group h2:last-child,\\n.tox .tox-dialog__body-content .tox-form__group p:last-child {\\n margin-bottom: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group h1:only-child,\\n.tox .tox-dialog__body-content .tox-form__group h2:only-child,\\n.tox .tox-dialog__body-content .tox-form__group p:only-child {\\n margin-bottom: 0;\\n margin-top: 0;\\n}\\n.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--center {\\n text-align: center;\\n}\\n.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--end {\\n text-align: end;\\n}\\n.tox .tox-dialog--width-lg {\\n height: 650px;\\n max-width: 1200px;\\n}\\n.tox .tox-dialog--fullscreen {\\n height: 100%;\\n max-width: 100%;\\n}\\n.tox .tox-dialog--fullscreen .tox-dialog__body-content {\\n max-height: 100%;\\n}\\n.tox .tox-dialog--width-md {\\n max-width: 800px;\\n}\\n.tox .tox-dialog--width-md .tox-dialog__body-content {\\n overflow: auto;\\n}\\n.tox .tox-dialog__body-content--centered {\\n text-align: center;\\n}\\n.tox .tox-dialog__footer {\\n align-items: center;\\n background-color: #fff;\\n border-top: none;\\n display: flex;\\n justify-content: space-between;\\n padding: 8px 16px;\\n}\\n.tox .tox-dialog__footer-start,\\n.tox .tox-dialog__footer-end {\\n display: flex;\\n}\\n.tox .tox-dialog__busy-spinner {\\n align-items: center;\\n background-color: rgba(255, 255, 255, 0.75);\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 3;\\n}\\n.tox .tox-dialog__table {\\n border-collapse: collapse;\\n width: 100%;\\n}\\n.tox .tox-dialog__table thead th {\\n font-weight: bold;\\n padding-bottom: 8px;\\n}\\n.tox .tox-dialog__table thead th:first-child {\\n padding-right: 8px;\\n}\\n.tox .tox-dialog__table tbody tr {\\n border-bottom: 1px solid #626262;\\n}\\n.tox .tox-dialog__table tbody tr:last-child {\\n border-bottom: none;\\n}\\n.tox .tox-dialog__table td {\\n padding-bottom: 8px;\\n padding-top: 8px;\\n}\\n.tox .tox-dialog__table td:first-child {\\n padding-right: 8px;\\n}\\n.tox .tox-dialog__iframe {\\n min-height: 200px;\\n}\\n.tox .tox-dialog__iframe.tox-dialog__iframe--opaque {\\n background: #fff;\\n}\\n.tox .tox-navobj-bordered {\\n position: relative;\\n}\\n.tox .tox-navobj-bordered::before {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n content: '';\\n inset: 0;\\n opacity: 1;\\n pointer-events: none;\\n position: absolute;\\n z-index: 1;\\n}\\n.tox .tox-navobj-bordered iframe {\\n border-radius: 6px;\\n}\\n.tox .tox-navobj-bordered-focus.tox-navobj-bordered::before {\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n outline: none;\\n}\\n.tox .tox-dialog__popups {\\n position: absolute;\\n width: 100%;\\n z-index: 1100;\\n}\\n.tox .tox-dialog__body-iframe {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n}\\n.tox .tox-dialog__body-iframe .tox-navobj {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) {\\n flex: 1;\\n height: 100%;\\n}\\n.tox .tox-dialog-dock-fadeout {\\n opacity: 0;\\n visibility: hidden;\\n}\\n.tox .tox-dialog-dock-fadein {\\n opacity: 1;\\n visibility: visible;\\n}\\n.tox .tox-dialog-dock-transition {\\n transition: visibility 0s linear 0.3s, opacity 0.3s ease;\\n}\\n.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein {\\n transition-delay: 0s;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav {\\n margin-right: 0;\\n }\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) {\\n margin-left: 8px;\\n }\\n}\\n.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *,\\n.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-dialog__body {\\n text-align: right;\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav {\\n margin-left: 0;\\n }\\n}\\n@media only screen and (max-width: 767px ) {\\n body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) {\\n margin-right: 8px;\\n }\\n}\\n.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *,\\n.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * {\\n margin-right: 8px;\\n}\\nbody.tox-dialog__disable-scroll {\\n overflow: hidden;\\n}\\n.tox .tox-dropzone-container {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-dropzone {\\n align-items: center;\\n background: #fff;\\n border: 2px dashed #eeeeee;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n justify-content: center;\\n min-height: 100px;\\n padding: 10px;\\n}\\n.tox .tox-dropzone p {\\n color: rgba(34, 47, 62, 0.7);\\n margin: 0 0 16px 0;\\n}\\n.tox .tox-edit-area {\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n position: relative;\\n}\\n.tox .tox-edit-area::before {\\n border: 2px solid #006ce7;\\n border-radius: 4px;\\n content: '';\\n inset: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n transition: opacity 0.15s;\\n z-index: 1;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-edit-area::before {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-edit-area__iframe {\\n background-color: #fff;\\n border: 0;\\n box-sizing: border-box;\\n flex: 1;\\n height: 100%;\\n position: absolute;\\n width: 100%;\\n}\\n.tox.tox-edit-focus .tox-edit-area::before {\\n opacity: 1;\\n}\\n.tox.tox-inline-edit-area {\\n border: 1px dotted #eeeeee;\\n}\\n.tox .tox-editor-container {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.tox .tox-editor-header {\\n display: grid;\\n grid-template-columns: 1fr min-content;\\n z-index: 2;\\n}\\n.tox:not(.tox-tinymce-inline) .tox-editor-header {\\n background-color: #fff;\\n border-bottom: none;\\n box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.1), 0 8px 8px -4px rgba(34, 47, 62, 0.07);\\n padding: 4px 0;\\n}\\n.tox:not(.tox-tinymce-inline) .tox-editor-header:not(.tox-editor-dock-transition) {\\n transition: box-shadow 0.5s;\\n}\\n.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-bottom .tox-editor-header {\\n border-top: 1px solid #e3e3e3;\\n box-shadow: none;\\n}\\n.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on .tox-editor-header {\\n background-color: #fff;\\n box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15);\\n padding: 4px 0;\\n}\\n.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on.tox-tinymce--toolbar-bottom .tox-editor-header {\\n box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15);\\n}\\n.tox.tox:not(.tox-tinymce-inline) .tox-editor-header.tox-editor-header--empty {\\n background: none;\\n border: none;\\n box-shadow: none;\\n padding: 0;\\n}\\n.tox-editor-dock-fadeout {\\n opacity: 0;\\n visibility: hidden;\\n}\\n.tox-editor-dock-fadein {\\n opacity: 1;\\n visibility: visible;\\n}\\n.tox-editor-dock-transition {\\n transition: visibility 0s linear 0.25s, opacity 0.25s ease;\\n}\\n.tox-editor-dock-transition.tox-editor-dock-fadein {\\n transition-delay: 0s;\\n}\\n.tox .tox-control-wrap {\\n flex: 1;\\n position: relative;\\n}\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid {\\n display: none;\\n}\\n.tox .tox-control-wrap svg {\\n display: block;\\n}\\n.tox .tox-control-wrap__status-icon-wrap {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox .tox-control-wrap__status-icon-invalid svg {\\n fill: #c00;\\n}\\n.tox .tox-control-wrap__status-icon-unknown svg {\\n fill: orange;\\n}\\n.tox .tox-control-wrap__status-icon-valid svg {\\n fill: green;\\n}\\n.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,\\n.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,\\n.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield {\\n padding-right: 32px;\\n}\\n.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap {\\n right: 4px;\\n}\\n.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,\\n.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,\\n.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield {\\n padding-left: 32px;\\n}\\n.tox[dir=rtl] .tox-control-wrap__status-icon-wrap {\\n left: 4px;\\n}\\n.tox .tox-custom-preview {\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n flex: 1;\\n padding: 8px;\\n}\\n.tox .tox-autocompleter {\\n max-width: 25em;\\n}\\n.tox .tox-autocompleter .tox-menu {\\n box-sizing: border-box;\\n max-width: 25em;\\n}\\n.tox .tox-autocompleter .tox-autocompleter-highlight {\\n font-weight: bold;\\n}\\n.tox .tox-color-input {\\n display: flex;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-color-input .tox-textfield {\\n z-index: -1;\\n}\\n.tox .tox-color-input span {\\n border-color: rgba(34 47 3.1%);\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n height: 24px;\\n position: absolute;\\n top: 6px;\\n width: 24px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-color-input span {\\n border-color: currentColor;\\n border-width: 2px !important;\\n forced-color-adjust: none;\\n }\\n}\\n.tox .tox-color-input span:hover:not([aria-disabled=true]),\\n.tox .tox-color-input span:focus:not([aria-disabled=true]) {\\n border-color: #006ce7;\\n cursor: pointer;\\n}\\n.tox .tox-color-input span::before {\\n background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%);\\n background-position: 0 0, 0 6px, 6px -6px, -6px 0;\\n background-size: 12px 12px;\\n border: 1px solid #fff;\\n border-radius: 6px;\\n box-sizing: border-box;\\n content: '';\\n height: 24px;\\n left: -1px;\\n position: absolute;\\n top: -1px;\\n width: 24px;\\n z-index: -1;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-color-input span::before {\\n border: none;\\n }\\n}\\n.tox .tox-color-input span[aria-disabled=true] {\\n cursor: not-allowed;\\n}\\n.tox:not([dir=rtl]) .tox-color-input {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox:not([dir=rtl]) .tox-color-input .tox-textfield {\\n padding-left: 36px;\\n}\\n.tox:not([dir=rtl]) .tox-color-input span {\\n left: 6px;\\n}\\n.tox[dir=\\\"rtl\\\"] .tox-color-input {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox[dir=\\\"rtl\\\"] .tox-color-input .tox-textfield {\\n padding-right: 36px;\\n}\\n.tox[dir=\\\"rtl\\\"] .tox-color-input span {\\n right: 6px;\\n}\\n.tox .tox-label,\\n.tox .tox-toolbar-label {\\n color: rgba(34, 47, 62, 0.7);\\n display: block;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.3;\\n padding: 0 8px 0 0;\\n text-transform: none;\\n white-space: nowrap;\\n}\\n.tox .tox-toolbar-label {\\n padding: 0 8px;\\n}\\n.tox[dir=rtl] .tox-label {\\n padding: 0 0 0 8px;\\n}\\n.tox .tox-form {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n}\\n.tox .tox-form__group {\\n box-sizing: border-box;\\n margin-bottom: 4px;\\n}\\n.tox .tox-form-group--maximize {\\n flex: 1;\\n}\\n.tox .tox-form__group--error {\\n color: #c00;\\n}\\n.tox .tox-form__group--collection {\\n display: flex;\\n}\\n.tox .tox-form__grid {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n justify-content: space-between;\\n}\\n.tox .tox-form__grid--2col > .tox-form__group {\\n width: calc(50% - (8px / 2));\\n}\\n.tox .tox-form__grid--3col > .tox-form__group {\\n width: calc(100% / 3 - (8px / 2));\\n}\\n.tox .tox-form__grid--4col > .tox-form__group {\\n width: calc(25% - (8px / 2));\\n}\\n.tox .tox-form__controls-h-stack {\\n align-items: center;\\n display: flex;\\n}\\n.tox .tox-form__group--inline {\\n align-items: center;\\n display: flex;\\n}\\n.tox .tox-form__group--stretched {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n}\\n.tox .tox-form__group--stretched .tox-textarea {\\n flex: 1;\\n}\\n.tox .tox-form__group--stretched .tox-navobj {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-form__group--stretched .tox-navobj :nth-child(2) {\\n flex: 1;\\n height: 100%;\\n}\\n.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) {\\n margin-right: 4px;\\n}\\n.tox .tox-lock.tox-locked .tox-lock-icon__unlock,\\n.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock {\\n display: none;\\n}\\n.tox .tox-textfield,\\n.tox .tox-toolbar-textfield,\\n.tox .tox-listboxfield .tox-listbox--select,\\n.tox .tox-textarea,\\n.tox .tox-textarea-wrap .tox-textarea:focus {\\n appearance: none;\\n background-color: #fff;\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n color: #222f3e;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n line-height: 24px;\\n margin: 0;\\n min-height: 34px;\\n outline: none;\\n padding: 5px 5.5px;\\n resize: none;\\n width: 100%;\\n}\\n.tox .tox-textfield[disabled],\\n.tox .tox-textarea[disabled] {\\n background-color: #f2f2f2;\\n color: rgba(34, 47, 62, 0.85);\\n cursor: not-allowed;\\n}\\n.tox .tox-textfield:focus,\\n.tox .tox-listboxfield .tox-listbox--select:focus,\\n.tox .tox-textarea-wrap:focus-within,\\n.tox .tox-textarea:focus,\\n.tox .tox-custom-editor:focus-within {\\n background-color: #fff;\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n outline: none;\\n}\\n.tox .tox-toolbar-textfield {\\n border-width: 0;\\n margin-bottom: 3px;\\n margin-top: 2px;\\n max-width: 250px;\\n}\\n.tox .tox-naked-btn {\\n background-color: transparent;\\n border: 0;\\n border-color: transparent;\\n box-shadow: unset;\\n color: #006ce7;\\n cursor: pointer;\\n display: block;\\n margin: 0;\\n padding: 0;\\n}\\n.tox .tox-naked-btn svg {\\n display: block;\\n fill: #222f3e;\\n}\\n.tox:not([dir=rtl]) .tox-toolbar-textfield + * {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-toolbar-textfield + * {\\n margin-right: 4px;\\n}\\n.tox .tox-listboxfield {\\n cursor: pointer;\\n position: relative;\\n}\\n.tox .tox-listboxfield .tox-listbox--select[disabled] {\\n background-color: #f2f2f2;\\n color: rgba(34, 47, 62, 0.85);\\n cursor: not-allowed;\\n}\\n.tox .tox-listbox__select-label {\\n cursor: default;\\n flex: 1;\\n margin: 0 4px;\\n}\\n.tox .tox-listbox__select-chevron {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n width: 16px;\\n}\\n.tox .tox-listbox__select-chevron svg {\\n fill: #222f3e;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-listbox__select-chevron svg {\\n fill: currentColor !important;\\n }\\n}\\n.tox .tox-listboxfield .tox-listbox--select {\\n align-items: center;\\n display: flex;\\n}\\n.tox:not([dir=rtl]) .tox-listboxfield svg {\\n right: 8px;\\n}\\n.tox[dir=rtl] .tox-listboxfield svg {\\n left: 8px;\\n}\\n.tox .tox-selectfield {\\n cursor: pointer;\\n position: relative;\\n}\\n.tox .tox-selectfield select {\\n appearance: none;\\n background-color: #fff;\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n color: #222f3e;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n line-height: 24px;\\n margin: 0;\\n min-height: 34px;\\n outline: none;\\n padding: 5px 5.5px;\\n resize: none;\\n width: 100%;\\n}\\n.tox .tox-selectfield select[disabled] {\\n background-color: #f2f2f2;\\n color: rgba(34, 47, 62, 0.85);\\n cursor: not-allowed;\\n}\\n.tox .tox-selectfield select::-ms-expand {\\n display: none;\\n}\\n.tox .tox-selectfield select:focus {\\n background-color: #fff;\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n outline: none;\\n}\\n.tox .tox-selectfield svg {\\n pointer-events: none;\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"0\\\"],\\n.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"1\\\"] {\\n padding-right: 24px;\\n}\\n.tox:not([dir=rtl]) .tox-selectfield svg {\\n right: 8px;\\n}\\n.tox[dir=rtl] .tox-selectfield select[size=\\\"0\\\"],\\n.tox[dir=rtl] .tox-selectfield select[size=\\\"1\\\"] {\\n padding-left: 24px;\\n}\\n.tox[dir=rtl] .tox-selectfield svg {\\n left: 8px;\\n}\\n.tox .tox-textarea-wrap {\\n border-color: #eeeeee;\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n}\\n.tox .tox-textarea {\\n appearance: textarea;\\n white-space: pre-wrap;\\n}\\n.tox .tox-textarea-wrap .tox-textarea {\\n border: none;\\n}\\n.tox .tox-textarea-wrap .tox-textarea:focus {\\n border: none;\\n}\\n.tox-fullscreen {\\n border: 0;\\n height: 100%;\\n margin: 0;\\n overflow: hidden;\\n overscroll-behavior: none;\\n padding: 0;\\n touch-action: pinch-zoom;\\n width: 100%;\\n}\\n.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {\\n display: none;\\n}\\n.tox.tox-tinymce.tox-fullscreen,\\n.tox-shadowhost.tox-fullscreen {\\n left: 0;\\n position: fixed;\\n top: 0;\\n z-index: 1200;\\n}\\n.tox.tox-tinymce.tox-fullscreen {\\n background-color: transparent;\\n}\\n.tox-fullscreen .tox.tox-tinymce-aux,\\n.tox-fullscreen ~ .tox.tox-tinymce-aux {\\n z-index: 1201;\\n}\\n.tox .tox-help__more-link {\\n list-style: none;\\n margin-top: 1em;\\n}\\n.tox .tox-imagepreview {\\n background-color: #666;\\n height: 380px;\\n overflow: hidden;\\n position: relative;\\n width: 100%;\\n}\\n.tox .tox-imagepreview.tox-imagepreview__loaded {\\n overflow: auto;\\n}\\n.tox .tox-imagepreview__container {\\n display: flex;\\n left: 100vw;\\n position: absolute;\\n top: 100vw;\\n}\\n.tox .tox-imagepreview__image {\\n background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==);\\n}\\n.tox .tox-image-tools .tox-spacer {\\n flex: 1;\\n}\\n.tox .tox-image-tools .tox-bar {\\n align-items: center;\\n display: flex;\\n height: 60px;\\n justify-content: center;\\n}\\n.tox .tox-image-tools .tox-imagepreview,\\n.tox .tox-image-tools .tox-imagepreview + .tox-bar {\\n margin-top: 8px;\\n}\\n.tox .tox-image-tools .tox-croprect-block {\\n background: black;\\n filter: alpha(opacity=50);\\n opacity: 0.5;\\n position: absolute;\\n zoom: 1;\\n}\\n.tox .tox-image-tools .tox-croprect-handle {\\n border: 2px solid white;\\n height: 20px;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 20px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-move {\\n border: 0;\\n cursor: move;\\n position: absolute;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-nw {\\n border-width: 2px 0 0 2px;\\n cursor: nw-resize;\\n left: 100px;\\n margin: -2px 0 0 -2px;\\n top: 100px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-ne {\\n border-width: 2px 2px 0 0;\\n cursor: ne-resize;\\n left: 200px;\\n margin: -2px 0 0 -20px;\\n top: 100px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-sw {\\n border-width: 0 0 2px 2px;\\n cursor: sw-resize;\\n left: 100px;\\n margin: -20px 2px 0 -2px;\\n top: 200px;\\n}\\n.tox .tox-image-tools .tox-croprect-handle-se {\\n border-width: 0 2px 2px 0;\\n cursor: se-resize;\\n left: 200px;\\n margin: -20px 0 0 -20px;\\n top: 200px;\\n}\\n.tox .tox-insert-table-picker {\\n background-color: #fff;\\n display: flex;\\n flex-wrap: wrap;\\n width: 170px;\\n}\\n.tox .tox-insert-table-picker > div {\\n border-color: #eeeeee;\\n border-style: solid;\\n border-width: 0 1px 1px 0;\\n box-sizing: border-box;\\n height: 17px;\\n width: 17px;\\n}\\n.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker {\\n margin: -4px -4px;\\n}\\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected {\\n background-color: #006ce7;\\n border-color: #eeeeee;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-insert-table-picker .tox-insert-table-picker__selected {\\n border-color: Highlight;\\n filter: contrast(50%);\\n }\\n}\\n.tox .tox-insert-table-picker__label {\\n color: rgba(34, 47, 62, 0.7);\\n display: block;\\n font-size: 14px;\\n padding: 4px;\\n text-align: center;\\n width: 100%;\\n}\\n.tox:not([dir=rtl]) {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) {\\n border-right: 0;\\n}\\n.tox[dir=rtl] {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) {\\n border-right: 0;\\n}\\n.tox {\\n /* stylelint-disable */\\n /* stylelint-enable */\\n}\\n.tox .tox-menu {\\n background-color: #fff;\\n border: 1px solid transparent;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n display: inline-block;\\n overflow: hidden;\\n vertical-align: top;\\n z-index: 1150;\\n}\\n.tox .tox-menu.tox-collection.tox-collection--list {\\n padding: 0 4px;\\n}\\n.tox .tox-menu.tox-collection.tox-collection--toolbar {\\n padding: 8px;\\n}\\n.tox .tox-menu.tox-collection.tox-collection--grid {\\n padding: 8px;\\n}\\n@media only screen and (min-width: 768px ) {\\n .tox .tox-menu .tox-collection__item-label {\\n overflow-wrap: break-word;\\n word-break: normal;\\n }\\n .tox .tox-dialog__popups .tox-menu .tox-collection__item-label {\\n word-break: break-all;\\n }\\n}\\n.tox .tox-menu__label h1,\\n.tox .tox-menu__label h2,\\n.tox .tox-menu__label h3,\\n.tox .tox-menu__label h4,\\n.tox .tox-menu__label h5,\\n.tox .tox-menu__label h6,\\n.tox .tox-menu__label p,\\n.tox .tox-menu__label blockquote,\\n.tox .tox-menu__label code {\\n margin: 0;\\n}\\n.tox .tox-menubar {\\n background: repeating-linear-gradient(transparent 0 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat;\\n background-color: #fff;\\n display: flex;\\n flex: 0 0 auto;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n grid-column: 1 / -1;\\n grid-row: 1;\\n padding: 0 11px 0 12px;\\n}\\n.tox .tox-promotion + .tox-menubar {\\n grid-column: 1;\\n}\\n.tox .tox-promotion {\\n background: repeating-linear-gradient(transparent 0 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat;\\n background-color: #fff;\\n grid-column: 2;\\n grid-row: 1;\\n padding-inline-end: 8px;\\n padding-inline-start: 4px;\\n padding-top: 5px;\\n}\\n.tox .tox-promotion-link {\\n align-items: unsafe center;\\n background-color: #E8F1F8;\\n border-radius: 5px;\\n color: #086BE6;\\n cursor: pointer;\\n display: flex;\\n font-size: 14px;\\n height: 26.6px;\\n padding: 4px 8px;\\n white-space: nowrap;\\n}\\n.tox .tox-promotion-link:hover {\\n background-color: #B4D7FF;\\n}\\n.tox .tox-promotion-link:focus {\\n background-color: #D9EDF7;\\n}\\n/* Deprecated. Remove in next major release */\\n.tox .tox-mbtn {\\n align-items: center;\\n background: #fff;\\n border: 0;\\n border-radius: 3px;\\n box-shadow: none;\\n color: #222f3e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n height: 28px;\\n justify-content: center;\\n margin: 5px 1px 6px 0;\\n outline: none;\\n padding: 0 4px;\\n text-transform: none;\\n width: auto;\\n}\\n.tox .tox-mbtn[disabled] {\\n background-color: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-mbtn:focus:not(:disabled) {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-mbtn:focus:not(:disabled)::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-mbtn:focus:not(:disabled)::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-mbtn--active,\\n.tox .tox-mbtn:not(:disabled).tox-mbtn--active:focus {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-mbtn__select-label {\\n cursor: default;\\n font-weight: normal;\\n margin: 0 4px;\\n}\\n.tox .tox-mbtn[disabled] .tox-mbtn__select-label {\\n cursor: not-allowed;\\n}\\n.tox .tox-mbtn__select-chevron {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n width: 16px;\\n display: none;\\n}\\n.tox .tox-notification {\\n border-radius: 6px;\\n border-style: solid;\\n border-width: 1px;\\n box-shadow: none;\\n box-sizing: border-box;\\n display: grid;\\n font-size: 14px;\\n font-weight: normal;\\n grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr);\\n margin-left: auto;\\n margin-right: auto;\\n margin-top: 4px;\\n opacity: 0;\\n padding: 4px;\\n transition: transform 100ms ease-in, opacity 150ms ease-in;\\n width: max-content;\\n}\\n.tox .tox-notification a {\\n cursor: pointer;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification p {\\n font-size: 14px;\\n font-weight: normal;\\n}\\n.tox .tox-notification:focus {\\n border-color: #006ce7;\\n box-shadow: 0 0 0 1px #006ce7;\\n}\\n.tox .tox-notification--in {\\n opacity: 1;\\n}\\n.tox .tox-notification--success {\\n background-color: #e4eeda;\\n border-color: #d7e6c8;\\n color: #222f3e;\\n}\\n.tox .tox-notification--success p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--success a {\\n color: #517342;\\n}\\n.tox .tox-notification--success a:hover,\\n.tox .tox-notification--success a:focus {\\n color: #24321d;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--success a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #517342;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--success a:active {\\n color: #0d120a;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--success svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification--error {\\n background-color: #f5cccc;\\n border-color: #f0b3b3;\\n color: #222f3e;\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-notification--error p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--error a {\\n color: #77181f;\\n}\\n.tox .tox-notification--error a:hover,\\n.tox .tox-notification--error a:focus {\\n color: #220709;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--error a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #77181f;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--error a:active {\\n color: #000000;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--error svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification--warn,\\n.tox .tox-notification--warning {\\n background-color: #fff5cc;\\n border-color: #fff0b3;\\n color: #222f3e;\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-notification--warn p,\\n.tox .tox-notification--warning p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--warn a,\\n.tox .tox-notification--warning a {\\n color: #7a6e25;\\n}\\n.tox .tox-notification--warn a:hover,\\n.tox .tox-notification--warning a:hover,\\n.tox .tox-notification--warn a:focus,\\n.tox .tox-notification--warning a:focus {\\n color: #2c280d;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--warn a:focus-visible,\\n.tox .tox-notification--warning a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #7a6e25;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--warn a:active,\\n.tox .tox-notification--warning a:active {\\n color: #050502;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--warn svg,\\n.tox .tox-notification--warning svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification--info {\\n background-color: #d6e7fb;\\n border-color: #c1dbf9;\\n color: #222f3e;\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox .tox-notification--info p {\\n color: #222f3e;\\n}\\n.tox .tox-notification--info a {\\n color: #2a64a6;\\n}\\n.tox .tox-notification--info a:hover,\\n.tox .tox-notification--info a:focus {\\n color: #163355;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--info a:focus-visible {\\n border-radius: 1px;\\n outline: 2px solid #2a64a6;\\n outline-offset: 2px;\\n}\\n.tox .tox-notification--info a:active {\\n color: #0b1a2c;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n}\\n.tox .tox-notification--info svg {\\n fill: #222f3e;\\n}\\n.tox .tox-notification__body {\\n align-self: center;\\n color: #222f3e;\\n font-size: 14px;\\n grid-column-end: 3;\\n grid-column-start: 2;\\n grid-row-end: 2;\\n grid-row-start: 1;\\n text-align: center;\\n white-space: normal;\\n word-break: break-all;\\n word-break: break-word;\\n}\\n.tox .tox-notification__body > * {\\n margin: 0;\\n}\\n.tox .tox-notification__body > * + * {\\n margin-top: 1rem;\\n}\\n.tox .tox-notification__icon {\\n align-self: center;\\n grid-column-end: 2;\\n grid-column-start: 1;\\n grid-row-end: 2;\\n grid-row-start: 1;\\n justify-self: end;\\n}\\n.tox .tox-notification__icon svg {\\n display: block;\\n}\\n.tox .tox-notification__dismiss {\\n align-self: start;\\n grid-column-end: 4;\\n grid-column-start: 3;\\n grid-row-end: 2;\\n grid-row-start: 1;\\n justify-self: end;\\n}\\n.tox .tox-notification .tox-progress-bar {\\n grid-column-end: 4;\\n grid-column-start: 1;\\n grid-row-end: 3;\\n grid-row-start: 2;\\n justify-self: center;\\n}\\n.tox .tox-notification-container-dock-fadeout {\\n opacity: 0;\\n visibility: hidden;\\n}\\n.tox .tox-notification-container-dock-fadein {\\n opacity: 1;\\n visibility: visible;\\n}\\n.tox .tox-notification-container-dock-transition {\\n transition: visibility 0s linear 0.3s, opacity 0.3s ease;\\n}\\n.tox .tox-notification-container-dock-transition.tox-notification-container-dock-fadein {\\n transition-delay: 0s;\\n}\\n.tox .tox-pop {\\n display: inline-block;\\n position: relative;\\n}\\n.tox .tox-pop--resizing {\\n transition: width 0.1s ease;\\n}\\n.tox .tox-pop--resizing .tox-toolbar,\\n.tox .tox-pop--resizing .tox-toolbar__group {\\n flex-wrap: nowrap;\\n}\\n.tox .tox-pop--transition {\\n transition: 0.15s ease;\\n transition-property: left, right, top, bottom;\\n}\\n.tox .tox-pop--transition::before,\\n.tox .tox-pop--transition::after {\\n transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s;\\n}\\n.tox .tox-pop__dialog {\\n background-color: #fff;\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n min-width: 0;\\n overflow: hidden;\\n}\\n.tox .tox-pop__dialog > *:not(.tox-toolbar) {\\n margin: 4px 4px 4px 8px;\\n}\\n.tox .tox-pop__dialog .tox-toolbar {\\n background-color: transparent;\\n margin-bottom: -1px;\\n}\\n.tox .tox-pop::before,\\n.tox .tox-pop::after {\\n border-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n opacity: 1;\\n position: absolute;\\n width: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-pop::before,\\n .tox .tox-pop::after {\\n content: none;\\n }\\n}\\n.tox .tox-pop.tox-pop--inset::before,\\n.tox .tox-pop.tox-pop--inset::after {\\n opacity: 0;\\n transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease;\\n}\\n.tox .tox-pop.tox-pop--bottom::before,\\n.tox .tox-pop.tox-pop--bottom::after {\\n left: 50%;\\n top: 100%;\\n}\\n.tox .tox-pop.tox-pop--bottom::after {\\n border-color: #fff transparent transparent transparent;\\n border-width: 8px;\\n margin-left: -8px;\\n margin-top: -1px;\\n}\\n.tox .tox-pop.tox-pop--bottom::before {\\n border-color: #eeeeee transparent transparent transparent;\\n border-width: 9px;\\n margin-left: -9px;\\n}\\n.tox .tox-pop.tox-pop--top::before,\\n.tox .tox-pop.tox-pop--top::after {\\n left: 50%;\\n top: 0;\\n transform: translateY(-100%);\\n}\\n.tox .tox-pop.tox-pop--top::after {\\n border-color: transparent transparent #fff transparent;\\n border-width: 8px;\\n margin-left: -8px;\\n margin-top: 1px;\\n}\\n.tox .tox-pop.tox-pop--top::before {\\n border-color: transparent transparent #eeeeee transparent;\\n border-width: 9px;\\n margin-left: -9px;\\n}\\n.tox .tox-pop.tox-pop--left::before,\\n.tox .tox-pop.tox-pop--left::after {\\n left: 0;\\n top: calc(50% - 1px);\\n transform: translateY(-50%);\\n}\\n.tox .tox-pop.tox-pop--left::after {\\n border-color: transparent #fff transparent transparent;\\n border-width: 8px;\\n margin-left: -15px;\\n}\\n.tox .tox-pop.tox-pop--left::before {\\n border-color: transparent #eeeeee transparent transparent;\\n border-width: 10px;\\n margin-left: -19px;\\n}\\n.tox .tox-pop.tox-pop--right::before,\\n.tox .tox-pop.tox-pop--right::after {\\n left: 100%;\\n top: calc(50% + 1px);\\n transform: translateY(-50%);\\n}\\n.tox .tox-pop.tox-pop--right::after {\\n border-color: transparent transparent transparent #fff;\\n border-width: 8px;\\n margin-left: -1px;\\n}\\n.tox .tox-pop.tox-pop--right::before {\\n border-color: transparent transparent transparent #eeeeee;\\n border-width: 10px;\\n margin-left: -1px;\\n}\\n.tox .tox-pop.tox-pop--align-left::before,\\n.tox .tox-pop.tox-pop--align-left::after {\\n left: 20px;\\n}\\n.tox .tox-pop.tox-pop--align-right::before,\\n.tox .tox-pop.tox-pop--align-right::after {\\n left: calc(100% - 20px);\\n}\\n.tox .tox-sidebar-wrap {\\n display: flex;\\n flex-direction: row;\\n flex-grow: 1;\\n min-height: 0;\\n}\\n.tox .tox-sidebar {\\n background-color: #f0f0f0;\\n display: flex;\\n flex-direction: row;\\n justify-content: flex-end;\\n}\\n.tox .tox-sidebar__slider {\\n display: flex;\\n overflow: hidden;\\n}\\n.tox .tox-sidebar__pane-container {\\n display: flex;\\n}\\n.tox .tox-sidebar__pane {\\n display: flex;\\n}\\n.tox .tox-sidebar--sliding-closed {\\n opacity: 0;\\n}\\n.tox .tox-sidebar--sliding-open {\\n opacity: 1;\\n}\\n.tox .tox-sidebar--sliding-growing,\\n.tox .tox-sidebar--sliding-shrinking {\\n transition: width 0.5s ease, opacity 0.5s ease;\\n}\\n.tox .tox-selector {\\n background-color: #4099ff;\\n border-color: #4099ff;\\n border-style: solid;\\n border-width: 1px;\\n box-sizing: border-box;\\n display: inline-block;\\n height: 10px;\\n position: absolute;\\n width: 10px;\\n}\\n.tox.tox-platform-touch .tox-selector {\\n height: 12px;\\n width: 12px;\\n}\\n.tox .tox-slider {\\n align-items: center;\\n display: flex;\\n flex: 1;\\n height: 24px;\\n justify-content: center;\\n position: relative;\\n}\\n.tox .tox-slider__rail {\\n background-color: transparent;\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n height: 10px;\\n min-width: 120px;\\n width: 100%;\\n}\\n.tox .tox-slider__handle {\\n background-color: #006ce7;\\n border: 2px solid #0054b4;\\n border-radius: 6px;\\n box-shadow: none;\\n height: 24px;\\n left: 50%;\\n position: absolute;\\n top: 50%;\\n transform: translateX(-50%) translateY(-50%);\\n width: 14px;\\n}\\n.tox .tox-form__controls-h-stack > .tox-slider:not(:first-of-type) {\\n margin-inline-start: 8px;\\n}\\n.tox .tox-form__controls-h-stack > .tox-form__group + .tox-slider {\\n margin-inline-start: 32px;\\n}\\n.tox .tox-form__controls-h-stack > .tox-slider + .tox-form__group {\\n margin-inline-start: 32px;\\n}\\n.tox .tox-source-code {\\n overflow: auto;\\n}\\n.tox .tox-spinner {\\n display: flex;\\n}\\n.tox .tox-spinner > div {\\n animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both;\\n background-color: rgba(34, 47, 62, 0.7);\\n border-radius: 100%;\\n height: 8px;\\n width: 8px;\\n}\\n.tox .tox-spinner > div:nth-child(1) {\\n animation-delay: -0.32s;\\n}\\n.tox .tox-spinner > div:nth-child(2) {\\n animation-delay: -0.16s;\\n}\\n@keyframes tam-bouncing-dots {\\n 0%,\\n 80%,\\n 100% {\\n transform: scale(0);\\n }\\n 40% {\\n transform: scale(1);\\n }\\n}\\n.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-spinner > div:not(:first-child) {\\n margin-right: 4px;\\n}\\n.tox .tox-statusbar {\\n align-items: center;\\n background-color: #fff;\\n border-top: 1px solid #e3e3e3;\\n color: rgba(34, 47, 62, 0.7);\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-weight: normal;\\n height: 25px;\\n overflow: hidden;\\n padding: 0 8px;\\n position: relative;\\n text-transform: none;\\n}\\n.tox .tox-statusbar__path {\\n display: flex;\\n flex: 1 1 auto;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.tox .tox-statusbar__right-container {\\n display: flex;\\n justify-content: flex-end;\\n white-space: nowrap;\\n}\\n.tox .tox-statusbar__help-text {\\n text-align: center;\\n}\\n.tox .tox-statusbar__text-container {\\n align-items: flex-start;\\n display: flex;\\n flex: 1 1 auto;\\n height: 16px;\\n justify-content: space-between;\\n}\\n@media only screen and (min-width: 768px ) {\\n .tox .tox-statusbar__text-container.tox-statusbar__text-container-3-cols > .tox-statusbar__help-text,\\n .tox .tox-statusbar__text-container.tox-statusbar__text-container-3-cols > .tox-statusbar__right-container,\\n .tox .tox-statusbar__text-container.tox-statusbar__text-container-3-cols > .tox-statusbar__path {\\n flex: 0 0 calc(100% / 3);\\n }\\n}\\n.tox .tox-statusbar__text-container.tox-statusbar__text-container--flex-end {\\n justify-content: flex-end;\\n}\\n.tox .tox-statusbar__text-container.tox-statusbar__text-container--flex-start {\\n justify-content: flex-start;\\n}\\n.tox .tox-statusbar__text-container.tox-statusbar__text-container--space-around {\\n justify-content: space-around;\\n}\\n.tox .tox-statusbar__path > * {\\n display: inline;\\n white-space: nowrap;\\n}\\n.tox .tox-statusbar__wordcount {\\n flex: 0 0 auto;\\n margin-left: 1ch;\\n}\\n@media only screen and (max-width: 767px ) {\\n .tox .tox-statusbar__text-container .tox-statusbar__help-text {\\n display: none;\\n }\\n .tox .tox-statusbar__text-container .tox-statusbar__help-text:only-child {\\n display: block;\\n }\\n}\\n.tox .tox-statusbar a,\\n.tox .tox-statusbar__path-item,\\n.tox .tox-statusbar__wordcount {\\n color: rgba(34, 47, 62, 0.7);\\n position: relative;\\n -webkit-text-decoration: none;\\n text-decoration: none;\\n}\\n.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),\\n.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) {\\n color: #222f3e;\\n cursor: pointer;\\n}\\n.tox .tox-statusbar a:focus-visible::after,\\n.tox .tox-statusbar__path-item:focus-visible::after,\\n.tox .tox-statusbar__wordcount:focus-visible::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-statusbar a:focus-visible::after,\\n .tox .tox-statusbar__path-item:focus-visible::after,\\n .tox .tox-statusbar__wordcount:focus-visible::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-statusbar__branding svg {\\n fill: rgba(34, 47, 62, 0.8);\\n height: 1em;\\n margin-left: 0.3em;\\n width: auto;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-statusbar__branding svg {\\n fill: currentColor;\\n }\\n}\\n.tox .tox-statusbar__branding a {\\n /* stylelint-disable-line no-descending-specificity */\\n align-items: center;\\n display: inline-flex;\\n}\\n.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled=true]) svg,\\n.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled=true]) svg {\\n fill: #222f3e;\\n}\\n.tox .tox-statusbar__resize-handle {\\n align-items: flex-end;\\n align-self: stretch;\\n cursor: nwse-resize;\\n display: flex;\\n flex: 0 0 auto;\\n justify-content: flex-end;\\n margin-bottom: 3px;\\n margin-left: 4px;\\n margin-right: calc(3px - 8px);\\n margin-top: 3px;\\n padding-bottom: 0;\\n padding-left: 0;\\n padding-right: 0;\\n position: relative;\\n}\\n.tox .tox-statusbar__resize-handle svg {\\n display: block;\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-statusbar__resize-handle:hover svg,\\n.tox .tox-statusbar__resize-handle:focus svg {\\n fill: #222f3e;\\n}\\n.tox .tox-statusbar__resize-handle:focus-visible {\\n background-color: transparent;\\n border-radius: 1px 1px 5px 1px;\\n box-shadow: 0 0 0 2px transparent;\\n}\\n.tox .tox-statusbar__resize-handle:focus-visible::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-statusbar__resize-handle:focus-visible::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-statusbar__resize-handle:only-child {\\n margin-left: auto;\\n}\\n.tox:not([dir=rtl]) .tox-statusbar__path > * {\\n margin-right: 4px;\\n}\\n.tox:not([dir=rtl]) .tox-statusbar__branding {\\n margin-left: 2ch;\\n}\\n.tox[dir=rtl] .tox-statusbar {\\n flex-direction: row-reverse;\\n}\\n.tox[dir=rtl] .tox-statusbar__path > * {\\n margin-left: 4px;\\n}\\n.tox[dir=rtl] .tox-statusbar__branding svg {\\n margin-left: 0;\\n margin-right: 0.3em;\\n}\\n.tox .tox-throbber {\\n z-index: 1299;\\n}\\n.tox .tox-throbber__busy-spinner {\\n align-items: center;\\n background-color: rgba(255, 255, 255, 0.6);\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n.tox .tox-tbtn {\\n align-items: center;\\n background: #fff;\\n border: 0;\\n border-radius: 3px;\\n box-shadow: none;\\n color: #222f3e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n height: 28px;\\n justify-content: center;\\n margin: 6px 1px 5px 0;\\n outline: none;\\n padding: 0;\\n text-transform: none;\\n width: 34px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn:hover,\\n .tox .tox-tbtn.tox-tbtn:hover {\\n outline: 1px dashed currentColor;\\n }\\n .tox .tox-tbtn.tox-tbtn--active,\\n .tox .tox-tbtn.tox-tbtn--enabled,\\n .tox .tox-tbtn.tox-tbtn--enabled:hover,\\n .tox .tox-tbtn.tox-tbtn--enabled:focus,\\n .tox .tox-tbtn:focus:not(.tox-tbtn--disabled) {\\n outline: 1px solid currentColor;\\n position: relative;\\n }\\n}\\n.tox .tox-tbtn svg {\\n display: block;\\n fill: #222f3e;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn svg {\\n fill: currentColor !important;\\n }\\n .tox .tox-tbtn svg.tox-tbtn--enabled,\\n .tox .tox-tbtn svg:focus:not(.tox-tbtn--disabled) {\\n fill: currentColor !important;\\n }\\n .tox .tox-tbtn svg.tox-tbtn--disabled,\\n .tox .tox-tbtn svg.tox-tbtn--disabled:hover,\\n .tox .tox-tbtn svg .tox-tbtn:disabled,\\n .tox .tox-tbtn svg .tox-tbtn:disabled:hover {\\n filter: contrast(0%);\\n }\\n}\\n.tox .tox-tbtn.tox-tbtn-more {\\n padding-left: 5px;\\n padding-right: 5px;\\n width: inherit;\\n}\\n.tox .tox-tbtn:focus {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-tbtn:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-tbtn:hover {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tbtn:hover svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn:active {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tbtn:active svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn--disabled .tox-tbtn--enabled svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tbtn--disabled,\\n.tox .tox-tbtn--disabled:hover,\\n.tox .tox-tbtn:disabled,\\n.tox .tox-tbtn:disabled:hover {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-tbtn--disabled svg,\\n.tox .tox-tbtn--disabled:hover svg,\\n.tox .tox-tbtn:disabled svg,\\n.tox .tox-tbtn:disabled:hover svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tbtn--active,\\n.tox .tox-tbtn--enabled,\\n.tox .tox-tbtn--enabled:hover,\\n.tox .tox-tbtn--enabled:focus {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n position: relative;\\n}\\n.tox .tox-tbtn--active > *,\\n.tox .tox-tbtn--enabled > *,\\n.tox .tox-tbtn--enabled:hover > *,\\n.tox .tox-tbtn--enabled:focus > * {\\n transform: none;\\n}\\n.tox .tox-tbtn--active svg,\\n.tox .tox-tbtn--enabled svg,\\n.tox .tox-tbtn--enabled:hover svg,\\n.tox .tox-tbtn--enabled:focus svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn--active.tox-tbtn--disabled svg,\\n.tox .tox-tbtn--enabled.tox-tbtn--disabled svg,\\n.tox .tox-tbtn--enabled:hover.tox-tbtn--disabled svg,\\n.tox .tox-tbtn--enabled:focus.tox-tbtn--disabled svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tbtn--enabled:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn--enabled:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) {\\n color: #222f3e;\\n}\\n.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tbtn:active > * {\\n transform: none;\\n}\\n.tox .tox-tbtn--md {\\n height: 42px;\\n width: 51px;\\n}\\n.tox .tox-tbtn--lg {\\n flex-direction: column;\\n height: 56px;\\n width: 68px;\\n}\\n.tox .tox-tbtn--return {\\n align-self: stretch;\\n height: unset;\\n width: 16px;\\n}\\n.tox .tox-tbtn--labeled {\\n padding: 0 4px;\\n width: unset;\\n}\\n.tox .tox-tbtn__vlabel {\\n display: block;\\n font-size: 10px;\\n font-weight: normal;\\n letter-spacing: -0.025em;\\n margin-bottom: 4px;\\n white-space: nowrap;\\n}\\n.tox .tox-number-input {\\n background: #f7f7f7;\\n border-radius: 3px;\\n display: flex;\\n margin: 6px 1px 5px 0;\\n position: relative;\\n width: auto;\\n}\\n.tox .tox-number-input:focus {\\n background: #f7f7f7;\\n}\\n.tox .tox-number-input:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input .tox-input-wrapper {\\n display: flex;\\n pointer-events: none;\\n position: relative;\\n text-align: center;\\n}\\n.tox .tox-number-input .tox-input-wrapper:focus {\\n background-color: #f7f7f7;\\n z-index: 1;\\n}\\n.tox .tox-number-input .tox-input-wrapper:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input .tox-input-wrapper:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input .tox-input-wrapper:has(input:focus)::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input .tox-input-wrapper:has(input:focus)::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input input {\\n border-radius: 3px;\\n color: #222f3e;\\n font-size: 14px;\\n margin: 2px 0;\\n pointer-events: all;\\n position: relative;\\n width: 60px;\\n}\\n.tox .tox-number-input input:hover {\\n background: #f0f0f0;\\n color: #222f3e;\\n}\\n.tox .tox-number-input input:focus {\\n background-color: #f7f7f7;\\n}\\n.tox .tox-number-input input:disabled {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-number-input button {\\n color: #222f3e;\\n height: 28px;\\n position: relative;\\n text-align: center;\\n width: 24px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input button:hover,\\n .tox .tox-number-input button:focus,\\n .tox .tox-number-input button:active {\\n outline: 1px solid currentColor !important;\\n }\\n}\\n.tox .tox-number-input button svg {\\n display: block;\\n fill: #222f3e;\\n margin: 0 auto;\\n transform: scale(0.67);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input button svg,\\n .tox .tox-number-input button svg:active,\\n .tox .tox-number-input button svg:hover {\\n fill: currentColor !important;\\n }\\n .tox .tox-number-input button svg:disabled {\\n filter: contrast(0);\\n }\\n}\\n.tox .tox-number-input button:focus {\\n background: #f7f7f7;\\n z-index: 1;\\n}\\n.tox .tox-number-input button:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-number-input button:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-number-input button:hover {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-number-input button:hover svg {\\n fill: #222f3e;\\n}\\n.tox .tox-number-input button:active {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-number-input button:active svg {\\n fill: #222f3e;\\n}\\n.tox .tox-number-input button:disabled {\\n background: #fff;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-number-input button:disabled svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-number-input button.minus {\\n border-radius: 3px 0 0 3px;\\n}\\n.tox .tox-number-input button.plus {\\n border-radius: 0 3px 3px 0;\\n}\\n.tox .tox-number-input:focus:not(:active) > button,\\n.tox .tox-number-input:focus:not(:active) > .tox-input-wrapper {\\n background: #f7f7f7;\\n}\\n.tox .tox-tbtn--select {\\n margin: 6px 1px 5px 0;\\n padding: 0 4px;\\n width: auto;\\n}\\n.tox .tox-tbtn__select-label {\\n cursor: default;\\n font-weight: normal;\\n height: initial;\\n margin: 0 4px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.tox .tox-tbtn__select-chevron {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n width: 16px;\\n}\\n.tox .tox-tbtn__select-chevron svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tbtn__select-chevron svg {\\n fill: currentColor;\\n }\\n}\\n.tox .tox-tbtn--bespoke {\\n background: #f7f7f7;\\n}\\n.tox .tox-tbtn--bespoke:focus {\\n background: #f7f7f7;\\n}\\n.tox .tox-tbtn--bespoke + .tox-tbtn--bespoke {\\n margin-inline-start: 4px;\\n}\\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 7em;\\n}\\n.tox .tox-tbtn--disabled .tox-tbtn__select-label,\\n.tox .tox-tbtn--select:disabled .tox-tbtn__select-label {\\n cursor: not-allowed;\\n}\\n.tox .tox-split-button {\\n border: 0;\\n border-radius: 3px;\\n box-sizing: border-box;\\n display: flex;\\n margin: 6px 1px 5px 0;\\n}\\n.tox .tox-split-button:hover {\\n box-shadow: 0 0 0 1px #f0f0f0 inset;\\n}\\n.tox .tox-split-button:focus {\\n background: #fff;\\n box-shadow: none;\\n color: #222f3e;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-split-button:focus::after {\\n pointer-events: none;\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-split-button:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-split-button > * {\\n border-radius: 0;\\n}\\n.tox .tox-split-button > *:nth-child(1) {\\n border-bottom-left-radius: 3px;\\n border-top-left-radius: 3px;\\n}\\n.tox .tox-split-button > *:nth-child(2) {\\n border-bottom-right-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.tox .tox-split-button__chevron {\\n width: 16px;\\n}\\n.tox .tox-split-button__chevron svg {\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n@media (forced-colors: active) {\\n .tox .tox-split-button__chevron svg {\\n fill: currentColor;\\n }\\n}\\n.tox .tox-split-button .tox-tbtn {\\n margin: 0;\\n}\\n.tox .tox-split-button:focus .tox-tbtn {\\n background-color: transparent;\\n}\\n.tox .tox-split-button.tox-tbtn--disabled:hover,\\n.tox .tox-split-button.tox-tbtn--disabled:focus,\\n.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,\\n.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {\\n background: #fff;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n}\\n.tox.tox-platform-touch .tox-split-button .tox-tbtn--select {\\n padding: 0 0px;\\n}\\n.tox.tox-platform-touch .tox-split-button .tox-tbtn:not(.tox-tbtn--select):first-child {\\n width: 30px;\\n}\\n.tox.tox-platform-touch .tox-split-button__chevron {\\n width: 20px;\\n}\\n.tox .tox-split-button.tox-tbtn--disabled svg .tox-icon-text-color__color,\\n.tox .tox-split-button.tox-tbtn--disabled svg .tox-icon-highlight-bg-color__color {\\n opacity: 0.3;\\n}\\n.tox .tox-toolbar-overlord {\\n background-color: #fff;\\n}\\n.tox .tox-toolbar,\\n.tox .tox-toolbar__primary,\\n.tox .tox-toolbar__overflow {\\n background-attachment: local;\\n background-color: #fff;\\n background-image: repeating-linear-gradient(#e3e3e3 0 1px, transparent 1px 39px);\\n background-position: center top 40px;\\n background-repeat: no-repeat;\\n background-size: calc(100% - 11px * 2) calc(100% - 41px);\\n display: flex;\\n flex: 0 0 auto;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n padding: 0 0px;\\n transform: perspective(1px);\\n}\\n.tox .tox-toolbar-overlord > .tox-toolbar,\\n.tox .tox-toolbar-overlord > .tox-toolbar__primary,\\n.tox .tox-toolbar-overlord > .tox-toolbar__overflow {\\n background-position: center top 0px;\\n background-size: calc(100% - 11px * 2) calc(100% - 0px);\\n}\\n.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed {\\n height: 0;\\n opacity: 0;\\n padding-bottom: 0;\\n padding-top: 0;\\n visibility: hidden;\\n}\\n.tox .tox-toolbar__overflow--growing {\\n transition: height 0.3s ease, opacity 0.2s linear 0.1s;\\n}\\n.tox .tox-toolbar__overflow--shrinking {\\n transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s;\\n}\\n.tox .tox-toolbar-overlord,\\n.tox .tox-anchorbar {\\n grid-column: 1 / -1;\\n}\\n.tox .tox-menubar + .tox-toolbar,\\n.tox .tox-menubar + .tox-toolbar-overlord {\\n border-top: 1px solid transparent;\\n margin-top: -1px;\\n padding-bottom: 1px;\\n padding-top: 1px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-menubar + .tox-toolbar,\\n .tox .tox-menubar + .tox-toolbar-overlord {\\n outline: 1px solid currentColor;\\n }\\n}\\n.tox .tox-toolbar--scrolling {\\n flex-wrap: nowrap;\\n overflow-x: auto;\\n}\\n.tox .tox-pop .tox-toolbar {\\n border-width: 0;\\n}\\n.tox .tox-toolbar--no-divider {\\n background-image: none;\\n}\\n.tox .tox-toolbar-overlord .tox-toolbar:not(.tox-toolbar--scrolling):first-child,\\n.tox .tox-toolbar-overlord .tox-toolbar__primary {\\n background-position: center top 39px;\\n}\\n.tox .tox-editor-header > .tox-toolbar--scrolling,\\n.tox .tox-toolbar-overlord .tox-toolbar--scrolling:first-child {\\n background-image: none;\\n}\\n.tox.tox-tinymce-aux .tox-toolbar__overflow {\\n background-color: #fff;\\n background-position: center top 43px;\\n background-size: calc(100% - 8px * 2) calc(100% - 51px);\\n border: none;\\n border-radius: 6px;\\n box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15);\\n overscroll-behavior: none;\\n padding: 4px 0;\\n}\\n@media (forced-colors: active) {\\n .tox.tox-tinymce-aux .tox-toolbar__overflow {\\n border: solid;\\n }\\n}\\n.tox-pop .tox-pop__dialog {\\n /* stylelint-disable-next-line no-descending-specificity */\\n}\\n.tox-pop .tox-pop__dialog .tox-toolbar {\\n background-position: center top 43px;\\n background-size: calc(100% - 11px * 2) calc(100% - 51px);\\n padding: 4px 0;\\n}\\n.tox .tox-toolbar__group {\\n align-items: center;\\n display: flex;\\n flex-wrap: wrap;\\n margin: 0 0;\\n padding: 0 11px 0 12px;\\n}\\n.tox .tox-toolbar__group--pull-right {\\n margin-left: auto;\\n}\\n.tox .tox-toolbar--scrolling .tox-toolbar__group {\\n flex-shrink: 0;\\n flex-wrap: nowrap;\\n}\\n.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) {\\n border-right: 1px solid transparent;\\n}\\n.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) {\\n border-left: 1px solid transparent;\\n}\\n.tox .tox-tooltip {\\n display: inline-block;\\n max-width: 15em;\\n padding: 8px;\\n /*\\n * The pointer-events: none is designed to make mouse events bleed through the tooltip\\n * to the underlying items. For example, a mouse hovering over a tooltip that hovers over\\n * another item should trigger the hover of the item obscured by the tooltip, even though\\n * the tooltip is on top\\n */\\n pointer-events: none;\\n position: relative;\\n width: max-content;\\n z-index: 1150;\\n}\\n.tox .tox-tooltip__body {\\n background-color: #222f3e;\\n border-radius: 6px;\\n box-shadow: none;\\n color: #fff;\\n font-size: 12px;\\n font-style: normal;\\n font-weight: 600;\\n overflow-wrap: break-word;\\n padding: 4px 6px;\\n text-transform: none;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-tooltip__body {\\n outline: outset 1px;\\n }\\n}\\n.tox .tox-tooltip__arrow {\\n position: absolute;\\n}\\n.tox .tox-tooltip--down .tox-tooltip__arrow {\\n border-left: 8px solid transparent;\\n border-right: 8px solid transparent;\\n border-top: 8px solid #222f3e;\\n bottom: 0;\\n left: 50%;\\n position: absolute;\\n transform: translateX(-50%);\\n}\\n.tox .tox-tooltip--up .tox-tooltip__arrow {\\n border-bottom: 8px solid #222f3e;\\n border-left: 8px solid transparent;\\n border-right: 8px solid transparent;\\n left: 50%;\\n position: absolute;\\n top: 0;\\n transform: translateX(-50%);\\n}\\n.tox .tox-tooltip--right .tox-tooltip__arrow {\\n border-bottom: 8px solid transparent;\\n border-left: 8px solid #222f3e;\\n border-top: 8px solid transparent;\\n position: absolute;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox .tox-tooltip--left .tox-tooltip__arrow {\\n border-bottom: 8px solid transparent;\\n border-right: 8px solid #222f3e;\\n border-top: 8px solid transparent;\\n left: 0;\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.tox .tox-tree {\\n display: flex;\\n flex-direction: column;\\n}\\n.tox .tox-tree .tox-trbtn {\\n align-items: center;\\n background: transparent;\\n border: 0;\\n border-radius: 4px;\\n box-shadow: none;\\n color: #222f3e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n height: 28px;\\n margin-bottom: 4px;\\n margin-top: 4px;\\n outline: none;\\n overflow: hidden;\\n padding: 0;\\n padding-left: 8px;\\n text-transform: none;\\n}\\n.tox .tox-tree .tox-trbtn .tox-tree__label {\\n cursor: default;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.tox .tox-tree .tox-trbtn svg {\\n display: block;\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:focus {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n}\\n.tox .tox-tree .tox-trbtn:hover {\\n background: #f0f0f0;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:hover svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:active {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:active svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn--disabled,\\n.tox .tox-tree .tox-trbtn--disabled:hover,\\n.tox .tox-tree .tox-trbtn:disabled,\\n.tox .tox-tree .tox-trbtn:disabled:hover {\\n background: transparent;\\n border: 0;\\n box-shadow: none;\\n color: rgba(34, 47, 62, 0.5);\\n cursor: not-allowed;\\n}\\n.tox .tox-tree .tox-trbtn--disabled svg,\\n.tox .tox-tree .tox-trbtn--disabled:hover svg,\\n.tox .tox-tree .tox-trbtn:disabled svg,\\n.tox .tox-tree .tox-trbtn:disabled:hover svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: rgba(34, 47, 62, 0.5);\\n}\\n.tox .tox-tree .tox-trbtn--enabled,\\n.tox .tox-tree .tox-trbtn--enabled:hover {\\n background: #a6ccf7;\\n border: 0;\\n box-shadow: none;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn--enabled > *,\\n.tox .tox-tree .tox-trbtn--enabled:hover > * {\\n transform: none;\\n}\\n.tox .tox-tree .tox-trbtn--enabled svg,\\n.tox .tox-tree .tox-trbtn--enabled:hover svg {\\n /* stylelint-disable-line no-descending-specificity */\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) {\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-trbtn:active > * {\\n transform: none;\\n}\\n.tox .tox-tree .tox-trbtn--return {\\n align-self: stretch;\\n height: unset;\\n width: 16px;\\n}\\n.tox .tox-tree .tox-trbtn--labeled {\\n padding: 0 4px;\\n width: unset;\\n}\\n.tox .tox-tree .tox-trbtn__vlabel {\\n display: block;\\n font-size: 10px;\\n font-weight: normal;\\n letter-spacing: -0.025em;\\n margin-bottom: 4px;\\n white-space: nowrap;\\n}\\n.tox .tox-tree .tox-tree--directory {\\n display: flex;\\n flex-direction: column;\\n /* stylelint-disable no-descending-specificity */\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label {\\n font-weight: bold;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn {\\n margin-left: auto;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn svg {\\n fill: transparent;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn.tox-mbtn--active svg,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn:focus svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover .tox-mbtn svg,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:focus .tox-mbtn svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) {\\n background-color: transparent;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) .tox-chevron svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-chevron {\\n margin-right: 6px;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--shrinking) .tox-chevron {\\n transition: transform 0.5s ease-in-out;\\n}\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron,\\n.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--open) .tox-chevron {\\n transform: rotate(90deg);\\n}\\n.tox .tox-tree .tox-tree--leaf__label {\\n font-weight: normal;\\n}\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn {\\n margin-left: auto;\\n}\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn svg {\\n fill: transparent;\\n}\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn.tox-mbtn--active svg,\\n.tox .tox-tree .tox-tree--leaf__label .tox-mbtn:focus svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--leaf__label:hover .tox-mbtn svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) {\\n background-color: transparent;\\n color: #222f3e;\\n}\\n.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) .tox-chevron svg {\\n fill: #222f3e;\\n}\\n.tox .tox-tree .tox-icon-custom-state {\\n flex-grow: 1;\\n display: flex;\\n justify-content: flex-end;\\n}\\n.tox .tox-tree .tox-tree--directory__children {\\n overflow: hidden;\\n padding-left: 16px;\\n}\\n.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--growing,\\n.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--shrinking {\\n transition: height 0.5s ease-in-out;\\n}\\n.tox .tox-tree .tox-trbtn.tox-tree--leaf__label {\\n display: flex;\\n justify-content: space-between;\\n}\\n.tox .tox-revisionhistory__pane {\\n padding: 0 !important;\\n /* Override the default padding of tox-view__pane */\\n}\\n.tox .tox-revisionhistory__container {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n}\\n.tox .tox-revisionhistory {\\n background-color: #fff;\\n border-top: 1px solid #f0f0f0;\\n display: flex;\\n flex: 1;\\n height: 100%;\\n margin-top: 8px;\\n overflow-x: auto;\\n overflow-y: hidden;\\n position: relative;\\n width: 100%;\\n}\\n.tox .tox-revisionhistory--align-right {\\n margin-left: auto;\\n}\\n.tox .tox-revisionhistory__iframe {\\n flex: 1;\\n}\\n.tox .tox-revisionhistory__sidebar {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n min-width: 248px;\\n width: 316px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__sidebar-title {\\n background-color: #fff;\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n color: #222f3e;\\n font-size: 20px;\\n font-weight: 400;\\n line-height: 28px;\\n padding: 12px;\\n z-index: 1;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions {\\n background-color: #f0f0f0;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n gap: 12px;\\n overflow-y: auto;\\n padding: 10px 12px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions:focus {\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 ;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 6px;\\n bottom: 1px;\\n left: 1px;\\n right: 1px;\\n top: 1px;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card {\\n background-color: #fff;\\n border: 1px solid #f0f0f0;\\n border-radius: 6px;\\n color: #222f3e;\\n cursor: pointer;\\n display: flex;\\n flex-direction: column;\\n font-size: 14px;\\n gap: 12px;\\n padding: 12px;\\n width: 100%;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:hover {\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:focus {\\n position: relative;\\n z-index: 1;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:focus::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 #006ce7;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 6px;\\n box-shadow: 0 0 0 2px #006ce7;\\n box-shadow: 0 0 0 2px #006ce7 !important;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card:focus::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card.tox-revisionhistory__card--selected {\\n background-color: #fff5cc;\\n box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);\\n position: relative;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card.tox-revisionhistory__card--selected::after {\\n border-radius: 3px;\\n bottom: 0;\\n box-shadow: 0 0 0 2px #006ce7 #e3b82a;\\n content: '';\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 6px;\\n box-shadow: 0 0 0 2px #e3b82a;\\n}\\n@media (forced-colors: active) {\\n .tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card.tox-revisionhistory__card--selected::after {\\n border: 2px solid highlight;\\n }\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-date {\\n display: flex;\\n gap: 12px;\\n justify-content: space-between;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-date-label {\\n font-size: 16px;\\n line-height: 24px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-label {\\n font-size: 12px;\\n font-weight: 600;\\n line-height: 24px;\\n padding: 0;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-author {\\n align-items: center;\\n display: flex;\\n flex: 1 0 0;\\n gap: 8px;\\n height: 36px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-author-name {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n font-size: 14px;\\n font-weight: 700;\\n line-height: 18px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__avatar {\\n border-radius: 50%;\\n height: 36px;\\n object-fit: cover;\\n vertical-align: middle;\\n width: 36px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__norevision {\\n color: rgba(34, 47, 62, 0.7);\\n font-size: 16px;\\n line-height: 24px;\\n padding: 5px 5.5px;\\n}\\n.tox .tox-revisionhistory__sidebar .tox-revisionhistory__revisions .tox-revisionhistory__card-check-icon {\\n color: #222f3e;\\n height: 24px;\\n}\\n.tox .tox-view-wrap,\\n.tox .tox-view-wrap__slot-container {\\n background-color: #fff;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n height: 100%;\\n}\\n.tox .tox-view {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.tox .tox-view__header {\\n align-items: center;\\n display: flex;\\n font-size: 16px;\\n justify-content: space-between;\\n padding: 10px 10px 2px 10px;\\n position: relative;\\n}\\n.tox .tox-view__label {\\n color: #222f3e;\\n font-weight: bold;\\n line-height: 24px;\\n padding: 4px 16px;\\n text-align: center;\\n white-space: nowrap;\\n}\\n.tox .tox-view__label--normal {\\n font-size: 16px;\\n}\\n.tox .tox-view__label--large {\\n font-size: 20px;\\n}\\n.tox .tox-view--mobile.tox-view__header,\\n.tox .tox-view--mobile.tox-view__toolbar {\\n padding: 8px;\\n}\\n.tox .tox-view--scrolling {\\n flex-wrap: nowrap;\\n overflow-x: auto;\\n}\\n.tox .tox-view__toolbar {\\n display: flex;\\n flex-direction: row;\\n gap: 8px;\\n justify-content: space-between;\\n overflow-x: auto;\\n padding: 10px 10px 2px 10px;\\n}\\n.tox .tox-view__toolbar__group {\\n display: flex;\\n flex-direction: row;\\n gap: 12px;\\n}\\n.tox .tox-view__header-start,\\n.tox .tox-view__header-end {\\n display: flex;\\n}\\n.tox .tox-view__pane {\\n height: 100%;\\n padding: 8px;\\n position: relative;\\n width: 100%;\\n}\\n.tox .tox-view__pane_panel {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n}\\n.tox:not([dir=rtl]) .tox-view__header .tox-view__header-start > *,\\n.tox:not([dir=rtl]) .tox-view__header .tox-view__header-end > * {\\n margin-left: 8px;\\n}\\n.tox[dir=rtl] .tox-view__header .tox-view__header-start > *,\\n.tox[dir=rtl] .tox-view__header .tox-view__header-end > * {\\n margin-right: 8px;\\n}\\n.tox .tox-well {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n padding: 8px;\\n width: 100%;\\n}\\n.tox .tox-well > *:first-child {\\n margin-top: 0;\\n}\\n.tox .tox-well > *:last-child {\\n margin-bottom: 0;\\n}\\n.tox .tox-well > *:only-child {\\n margin: 0;\\n}\\n.tox .tox-custom-editor {\\n border: 1px solid #eeeeee;\\n border-radius: 6px;\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n position: relative;\\n}\\n/* stylelint-disable */\\n.tox {\\n /* stylelint-enable */\\n}\\n.tox .tox-dialog-loading::before {\\n background-color: rgba(0, 0, 0, 0.5);\\n content: \\\"\\\";\\n height: 100%;\\n position: absolute;\\n width: 100%;\\n z-index: 1000;\\n}\\n.tox .tox-tab {\\n cursor: pointer;\\n}\\n.tox .tox-dialog__content-js {\\n display: flex;\\n flex: 1;\\n}\\n.tox .tox-dialog__body-content .tox-collection {\\n display: flex;\\n flex: 1;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Mark = factory());\n}(this, (function () { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar DOMIterator = function () {\n function DOMIterator(ctx) {\n var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;\n classCallCheck(this, DOMIterator);\n\n this.ctx = ctx;\n this.iframes = iframes;\n this.exclude = exclude;\n this.iframesTimeout = iframesTimeout;\n }\n\n createClass(DOMIterator, [{\n key: 'getContexts',\n value: function getContexts() {\n var ctx = void 0,\n filteredCtx = [];\n if (typeof this.ctx === 'undefined' || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n ctx.forEach(function (ctx) {\n var isDescendant = filteredCtx.filter(function (contexts) {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n }, {\n key: 'getIframeContents',\n value: function getIframeContents(ifr, successFn) {\n var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n var doc = void 0;\n try {\n var ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) {\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n }, {\n key: 'isIframeBlank',\n value: function isIframeBlank(ifr) {\n var bl = 'about:blank',\n src = ifr.getAttribute('src').trim(),\n href = ifr.contentWindow.location.href;\n return href === bl && src !== bl && src;\n }\n }, {\n key: 'observeIframeLoad',\n value: function observeIframeLoad(ifr, successFn, errorFn) {\n var _this = this;\n\n var called = false,\n tout = null;\n var listener = function listener() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(tout);\n try {\n if (!_this.isIframeBlank(ifr)) {\n ifr.removeEventListener('load', listener);\n _this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n ifr.addEventListener('load', listener);\n tout = setTimeout(listener, this.iframesTimeout);\n }\n }, {\n key: 'onIframeReady',\n value: function onIframeReady(ifr, successFn, errorFn) {\n try {\n if (ifr.contentWindow.document.readyState === 'complete') {\n if (this.isIframeBlank(ifr)) {\n this.observeIframeLoad(ifr, successFn, errorFn);\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n this.observeIframeLoad(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n }\n }, {\n key: 'waitForIframes',\n value: function waitForIframes(ctx, done) {\n var _this2 = this;\n\n var eachCalled = 0;\n this.forEachIframe(ctx, function () {\n return true;\n }, function (ifr) {\n eachCalled++;\n _this2.waitForIframes(ifr.querySelector('html'), function () {\n if (! --eachCalled) {\n done();\n }\n });\n }, function (handled) {\n if (!handled) {\n done();\n }\n });\n }\n }, {\n key: 'forEachIframe',\n value: function forEachIframe(ctx, filter, each) {\n var _this3 = this;\n\n var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var ifr = ctx.querySelectorAll('iframe'),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n var checkEnd = function checkEnd() {\n if (--open <= 0) {\n end(handled);\n }\n };\n if (!open) {\n checkEnd();\n }\n ifr.forEach(function (ifr) {\n if (DOMIterator.matches(ifr, _this3.exclude)) {\n checkEnd();\n } else {\n _this3.onIframeReady(ifr, function (con) {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n checkEnd();\n }, checkEnd);\n }\n });\n }\n }, {\n key: 'createIterator',\n value: function createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n }, {\n key: 'createInstanceOnIframe',\n value: function createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector('html'), this.iframes);\n }\n }, {\n key: 'compareNodeIframe',\n value: function compareNodeIframe(node, prevNode, ifr) {\n var compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n if (compCurr & prev) {\n if (prevNode !== null) {\n var compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n }\n }, {\n key: 'getIteratorNode',\n value: function getIteratorNode(itr) {\n var prevNode = itr.previousNode();\n var node = void 0;\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n return {\n prevNode: prevNode,\n node: node\n };\n }\n }, {\n key: 'checkIframeFilter',\n value: function checkIframeFilter(node, prevNode, currIfr, ifr) {\n var key = false,\n handled = false;\n ifr.forEach(function (ifrDict, i) {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n return true;\n }\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n return false;\n }\n }, {\n key: 'handleOpenIframes',\n value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n var _this4 = this;\n\n ifr.forEach(function (ifrDict) {\n if (!ifrDict.handled) {\n _this4.getIframeContents(ifrDict.val, function (con) {\n _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n }, {\n key: 'iterateThroughNodes',\n value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n var _this5 = this;\n\n var itr = this.createIterator(ctx, whatToShow, filterCb);\n var ifr = [],\n elements = [],\n node = void 0,\n prevNode = void 0,\n retrieveNodes = function retrieveNodes() {\n var _getIteratorNode = _this5.getIteratorNode(itr);\n\n prevNode = _getIteratorNode.prevNode;\n node = _getIteratorNode.node;\n\n return node;\n };\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, function (currIfr) {\n return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, function (con) {\n _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {\n return elements.push(ifrNode);\n }, filterCb);\n });\n }\n elements.push(node);\n }\n elements.forEach(function (node) {\n eachCb(node);\n });\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n doneCb();\n }\n }, {\n key: 'forEachNode',\n value: function forEachNode(whatToShow, each, filter) {\n var _this6 = this;\n\n var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var contexts = this.getContexts();\n var open = contexts.length;\n if (!open) {\n done();\n }\n contexts.forEach(function (ctx) {\n var ready = function ready() {\n _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {\n if (--open <= 0) {\n done();\n }\n });\n };\n if (_this6.iframes) {\n _this6.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n }], [{\n key: 'matches',\n value: function matches(element, selector) {\n var selectors = typeof selector === 'string' ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n if (fn) {\n var match = false;\n selectors.every(function (sel) {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n }]);\n return DOMIterator;\n}();\n\nvar Mark$1 = function () {\n function Mark(ctx) {\n classCallCheck(this, Mark);\n\n this.ctx = ctx;\n this.ie = false;\n var ua = window.navigator.userAgent;\n if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {\n this.ie = true;\n }\n }\n\n createClass(Mark, [{\n key: 'log',\n value: function log(msg) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';\n\n var log = this.opt.log;\n if (!this.opt.debug) {\n return;\n }\n if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {\n log[level]('mark.js: ' + msg);\n }\n }\n }, {\n key: 'escapeStr',\n value: function escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n }, {\n key: 'createRegExp',\n value: function createRegExp(str) {\n if (this.opt.wildcards !== 'disabled') {\n str = this.setupWildcardsRegExp(str);\n }\n str = this.escapeStr(str);\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n str = this.createMergedBlanksRegExp(str);\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.createJoinersRegExp(str);\n }\n if (this.opt.wildcards !== 'disabled') {\n str = this.createWildcardsRegExp(str);\n }\n str = this.createAccuracyRegExp(str);\n return str;\n }\n }, {\n key: 'createSynonymsRegExp',\n value: function createSynonymsRegExp(str) {\n var syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? '' : 'i',\n joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\\0' : '';\n for (var index in syn) {\n if (syn.hasOwnProperty(index)) {\n var value = syn[index],\n k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),\n k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);\n if (k1 !== '' && k2 !== '') {\n str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);\n }\n }\n }\n return str;\n }\n }, {\n key: 'processSynomyms',\n value: function processSynomyms(str) {\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n return str;\n }\n }, {\n key: 'setupWildcardsRegExp',\n value: function setupWildcardsRegExp(str) {\n str = str.replace(/(?:\\\\)*\\?/g, function (val) {\n return val.charAt(0) === '\\\\' ? '?' : '\\x01';\n });\n return str.replace(/(?:\\\\)*\\*/g, function (val) {\n return val.charAt(0) === '\\\\' ? '*' : '\\x02';\n });\n }\n }, {\n key: 'createWildcardsRegExp',\n value: function createWildcardsRegExp(str) {\n var spaces = this.opt.wildcards === 'withSpaces';\n return str.replace(/\\u0001/g, spaces ? '[\\\\S\\\\s]?' : '\\\\S?').replace(/\\u0002/g, spaces ? '[\\\\S\\\\s]*?' : '\\\\S*');\n }\n }, {\n key: 'setupIgnoreJoinersRegExp',\n value: function setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, function (val, indx, original) {\n var nextChar = original.charAt(indx + 1);\n if (/[(|)\\\\]/.test(nextChar) || nextChar === '') {\n return val;\n } else {\n return val + '\\0';\n }\n });\n }\n }, {\n key: 'createJoinersRegExp',\n value: function createJoinersRegExp(str) {\n var joiner = [];\n var ignorePunctuation = this.opt.ignorePunctuation;\n if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {\n joiner.push(this.escapeStr(ignorePunctuation.join('')));\n }\n if (this.opt.ignoreJoiners) {\n joiner.push('\\\\u00ad\\\\u200b\\\\u200c\\\\u200d');\n }\n return joiner.length ? str.split(/\\u0000+/).join('[' + joiner.join('') + ']*') : str;\n }\n }, {\n key: 'createDiacriticsRegExp',\n value: function createDiacriticsRegExp(str) {\n var sens = this.opt.caseSensitive ? '' : 'i',\n dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];\n var handled = [];\n str.split('').forEach(function (ch) {\n dct.every(function (dct) {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');\n handled.push(dct);\n }\n return true;\n });\n });\n return str;\n }\n }, {\n key: 'createMergedBlanksRegExp',\n value: function createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, '[\\\\s]+');\n }\n }, {\n key: 'createAccuracyRegExp',\n value: function createAccuracyRegExp(str) {\n var _this = this;\n\n var chars = '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿';\n var acc = this.opt.accuracy,\n val = typeof acc === 'string' ? acc : acc.value,\n ls = typeof acc === 'string' ? [] : acc.limiters,\n lsJoin = '';\n ls.forEach(function (limiter) {\n lsJoin += '|' + _this.escapeStr(limiter);\n });\n switch (val) {\n case 'partially':\n default:\n return '()(' + str + ')';\n case 'complementary':\n lsJoin = '\\\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));\n return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';\n case 'exactly':\n return '(^|\\\\s' + lsJoin + ')(' + str + ')(?=$|\\\\s' + lsJoin + ')';\n }\n }\n }, {\n key: 'getSeparatedKeywords',\n value: function getSeparatedKeywords(sv) {\n var _this2 = this;\n\n var stack = [];\n sv.forEach(function (kw) {\n if (!_this2.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(' ').forEach(function (kwSplitted) {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n 'keywords': stack.sort(function (a, b) {\n return b.length - a.length;\n }),\n 'length': stack.length\n };\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric(value) {\n return Number(parseFloat(value)) == value;\n }\n }, {\n key: 'checkRanges',\n value: function checkRanges(array) {\n var _this3 = this;\n\n if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {\n this.log('markRanges() will only accept an array of objects');\n this.opt.noMatch(array);\n return [];\n }\n var stack = [];\n var last = 0;\n array.sort(function (a, b) {\n return a.start - b.start;\n }).forEach(function (item) {\n var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),\n start = _callNoMatchOnInvalid.start,\n end = _callNoMatchOnInvalid.end,\n valid = _callNoMatchOnInvalid.valid;\n\n if (valid) {\n item.start = start;\n item.length = end - start;\n stack.push(item);\n last = end;\n }\n });\n return stack;\n }\n }, {\n key: 'callNoMatchOnInvalidRanges',\n value: function callNoMatchOnInvalidRanges(range, last) {\n var start = void 0,\n end = void 0,\n valid = false;\n if (range && typeof range.start !== 'undefined') {\n start = parseInt(range.start, 10);\n end = start + parseInt(range.length, 10);\n if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {\n valid = true;\n } else {\n this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));\n this.opt.noMatch(range);\n }\n } else {\n this.log('Ignoring invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'checkWhitespaceRanges',\n value: function checkWhitespaceRanges(range, originalLength, string) {\n var end = void 0,\n valid = true,\n max = string.length,\n offset = originalLength - max,\n start = parseInt(range.start, 10) - offset;\n start = start > max ? max : start;\n end = start + parseInt(range.length, 10);\n if (end > max) {\n end = max;\n this.log('End range automatically set to the max value of ' + max);\n }\n if (start < 0 || end - start < 0 || start > max || end > max) {\n valid = false;\n this.log('Invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n } else if (string.substring(start, end).replace(/\\s+/g, '') === '') {\n valid = false;\n this.log('Skipping whitespace only range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'getTextNodes',\n value: function getTextNodes(cb) {\n var _this4 = this;\n\n var val = '',\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node: node\n });\n }, function (node) {\n if (_this4.matchesExclude(node.parentNode)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, function () {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n }, {\n key: 'matchesExclude',\n value: function matchesExclude(el) {\n return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));\n }\n }, {\n key: 'wrapRangeInTextNode',\n value: function wrapRangeInTextNode(node, start, end) {\n var hEl = !this.opt.element ? 'mark' : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n var repl = document.createElement(hEl);\n repl.setAttribute('data-markjs', 'true');\n if (this.opt.className) {\n repl.setAttribute('class', this.opt.className);\n }\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n }, {\n key: 'wrapRangeInMappedTextNode',\n value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n var _this5 = this;\n\n dict.nodes.every(function (n, i) {\n var sibl = dict.nodes[i + 1];\n if (typeof sibl === 'undefined' || sibl.start > start) {\n if (!filterCb(n.node)) {\n return false;\n }\n var s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start,\n startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n n.node = _this5.wrapRangeInTextNode(n.node, s, e);\n dict.value = startStr + endStr;\n dict.nodes.forEach(function (k, j) {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n return true;\n });\n }\n }, {\n key: 'wrapMatches',\n value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this6 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n dict.nodes.forEach(function (node) {\n node = node.node;\n var match = void 0;\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n var pos = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n }, {\n key: 'wrapMatchesAcrossElements',\n value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this7 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n var match = void 0;\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {\n var start = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n var end = start + match[matchIdx].length;\n _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(match[matchIdx], node);\n }, function (node, lastIndex) {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n endCb();\n });\n }\n }, {\n key: 'wrapRangeFromIndex',\n value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {\n var _this8 = this;\n\n this.getTextNodes(function (dict) {\n var originalLength = dict.value.length;\n ranges.forEach(function (range, counter) {\n var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),\n start = _checkWhitespaceRange.start,\n end = _checkWhitespaceRange.end,\n valid = _checkWhitespaceRange.valid;\n\n if (valid) {\n _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(node, range, dict.value.substring(start, end), counter);\n }, function (node) {\n eachCb(node, range);\n });\n }\n });\n endCb();\n });\n }\n }, {\n key: 'unwrapMatches',\n value: function unwrapMatches(node) {\n var parent = node.parentNode;\n var docFrag = document.createDocumentFragment();\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n parent.replaceChild(docFrag, node);\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n }, {\n key: 'normalizeTextNode',\n value: function normalizeTextNode(node) {\n if (!node) {\n return;\n }\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n this.normalizeTextNode(node.nextSibling);\n }\n }, {\n key: 'markRegExp',\n value: function markRegExp(regexp, opt) {\n var _this9 = this;\n\n this.opt = opt;\n this.log('Searching with expression \"' + regexp + '\"');\n var totalMatches = 0,\n fn = 'wrapMatches';\n var eachCb = function eachCb(element) {\n totalMatches++;\n _this9.opt.each(element);\n };\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n this[fn](regexp, this.opt.ignoreGroups, function (match, node) {\n return _this9.opt.filter(node, match, totalMatches);\n }, eachCb, function () {\n if (totalMatches === 0) {\n _this9.opt.noMatch(regexp);\n }\n _this9.opt.done(totalMatches);\n });\n }\n }, {\n key: 'mark',\n value: function mark(sv, opt) {\n var _this10 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),\n kwArr = _getSeparatedKeywords.keywords,\n kwArrLen = _getSeparatedKeywords.length,\n sens = this.opt.caseSensitive ? '' : 'i',\n handler = function handler(kw) {\n var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),\n matches = 0;\n _this10.log('Searching with expression \"' + regex + '\"');\n _this10[fn](regex, 1, function (term, node) {\n return _this10.opt.filter(node, kw, totalMatches, matches);\n }, function (element) {\n matches++;\n totalMatches++;\n _this10.opt.each(element);\n }, function () {\n if (matches === 0) {\n _this10.opt.noMatch(kw);\n }\n if (kwArr[kwArrLen - 1] === kw) {\n _this10.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n }, {\n key: 'markRanges',\n value: function markRanges(rawRanges, opt) {\n var _this11 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n ranges = this.checkRanges(rawRanges);\n if (ranges && ranges.length) {\n this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));\n this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {\n return _this11.opt.filter(node, range, match, counter);\n }, function (element, range) {\n totalMatches++;\n _this11.opt.each(element, range);\n }, function () {\n _this11.opt.done(totalMatches);\n });\n } else {\n this.opt.done(totalMatches);\n }\n }\n }, {\n key: 'unmark',\n value: function unmark(opt) {\n var _this12 = this;\n\n this.opt = opt;\n var sel = this.opt.element ? this.opt.element : '*';\n sel += '[data-markjs]';\n if (this.opt.className) {\n sel += '.' + this.opt.className;\n }\n this.log('Removal selector \"' + sel + '\"');\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {\n _this12.unwrapMatches(node);\n }, function (node) {\n var matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = _this12.matchesExclude(node);\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }, {\n key: 'opt',\n set: function set$$1(val) {\n this._opt = _extends({}, {\n 'element': '',\n 'className': '',\n 'exclude': [],\n 'iframes': false,\n 'iframesTimeout': 5000,\n 'separateWordSearch': true,\n 'diacritics': true,\n 'synonyms': {},\n 'accuracy': 'partially',\n 'acrossElements': false,\n 'caseSensitive': false,\n 'ignoreJoiners': false,\n 'ignoreGroups': 0,\n 'ignorePunctuation': [],\n 'wildcards': 'disabled',\n 'each': function each() {},\n 'noMatch': function noMatch() {},\n 'filter': function filter() {\n return true;\n },\n 'done': function done() {},\n 'debug': false,\n 'log': window.console\n }, val);\n },\n get: function get$$1() {\n return this._opt;\n }\n }, {\n key: 'iterator',\n get: function get$$1() {\n return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);\n }\n }]);\n return Mark;\n}();\n\nfunction Mark(ctx) {\n var _this = this;\n\n var instance = new Mark$1(ctx);\n this.mark = function (sv, opt) {\n instance.mark(sv, opt);\n return _this;\n };\n this.markRegExp = function (sv, opt) {\n instance.markRegExp(sv, opt);\n return _this;\n };\n this.markRanges = function (sv, opt) {\n instance.markRanges(sv, opt);\n return _this;\n };\n this.unmark = function (opt) {\n instance.unmark(opt);\n return _this;\n };\n return this;\n}\n\nreturn Mark;\n\n})));\n","tinymce.IconManager.add('default', {\n icons: {\n 'accessibility-check': '',\n 'accordion-toggle': '',\n 'accordion': '',\n 'action-next': '',\n 'action-prev': '',\n 'addtag': '',\n 'ai-prompt': '',\n 'ai': '',\n 'align-center': '',\n 'align-justify': '',\n 'align-left': '',\n 'align-none': '',\n 'align-right': '',\n 'arrow-left': '',\n 'arrow-right': '',\n 'bold': '',\n 'bookmark': '',\n 'border-style': '',\n 'border-width': '',\n 'brightness': '',\n 'browse': '',\n 'cancel': '',\n 'cell-background-color': '',\n 'cell-border-color': '',\n 'change-case': '',\n 'character-count': '',\n 'checklist-rtl': '',\n 'checklist': '',\n 'checkmark': '',\n 'chevron-down': '',\n 'chevron-left': '',\n 'chevron-right': '',\n 'chevron-up': '',\n 'close': '',\n 'code-sample': '',\n 'color-levels': '',\n 'color-picker': '',\n 'color-swatch-remove-color': '',\n 'color-swatch': '',\n 'comment-add': '',\n 'comment': '',\n 'contrast': '',\n 'copy': '',\n 'crop': '',\n 'cut-column': '',\n 'cut-row': '',\n 'cut': '',\n 'document-properties': '',\n 'drag': '',\n 'duplicate-column': '',\n 'duplicate-row': '',\n 'duplicate': '',\n 'edit-block': '',\n 'edit-image': '',\n 'embed-page': '',\n 'embed': '',\n 'emoji': '',\n 'export': '',\n 'fill': '',\n 'flip-horizontally': '',\n 'flip-vertically': '',\n 'footnote': '',\n 'format-code': '',\n 'format-painter': '',\n 'format': '',\n 'fullscreen': '',\n 'gallery': '',\n 'gamma': '',\n 'help': '',\n 'highlight-bg-color': '',\n 'home': '',\n 'horizontal-rule': '',\n 'image-options': '',\n 'image': '',\n 'indent': '',\n 'info': '',\n 'insert-character': '',\n 'insert-time': '',\n 'invert': '',\n 'italic': '',\n 'language': '',\n 'line-height': '',\n 'line': '',\n 'link': '',\n 'list-bull-circle': '',\n 'list-bull-default': '',\n 'list-bull-square': '',\n 'list-num-default-rtl': '',\n 'list-num-default': '',\n 'list-num-lower-alpha-rtl': '',\n 'list-num-lower-alpha': '',\n 'list-num-lower-greek-rtl': '',\n 'list-num-lower-greek': '',\n 'list-num-lower-roman-rtl': '',\n 'list-num-lower-roman': '',\n 'list-num-upper-alpha-rtl': '',\n 'list-num-upper-alpha': '',\n 'list-num-upper-roman-rtl': '',\n 'list-num-upper-roman': '',\n 'lock': '',\n 'ltr': '',\n 'math-equation': '',\n 'mentions': '',\n 'minus': '',\n 'more-drawer': '',\n 'new-document': '',\n 'new-tab': '',\n 'non-breaking': '',\n 'notice': '',\n 'ordered-list-rtl': '',\n 'ordered-list': '',\n 'orientation': '',\n 'outdent': '',\n 'export-pdf': '',\n 'export-word': '',\n 'import-word': '',\n 'page-break': '',\n 'paragraph': '',\n 'paste-column-after': '',\n 'paste-column-before': '',\n 'paste-row-after': '',\n 'paste-row-before': '',\n 'paste-text': '',\n 'paste': '',\n 'permanent-pen': '',\n 'plus': '',\n 'preferences': '',\n 'preview': '',\n 'print': '',\n 'quote': '',\n 'redo': '',\n 'reload': '',\n 'remove-formatting': '',\n 'remove': '',\n 'resize-handle': '',\n 'resize': '',\n 'restore-draft': '',\n 'revision-history': '',\n 'rotate-left': '',\n 'rotate-right': '',\n 'rtl': '',\n 'save': '',\n 'search': '',\n 'select-all': '',\n 'selected': '',\n 'send': '',\n 'settings': '',\n 'sharpen': '',\n 'sourcecode': '',\n 'spell-check': '',\n 'strike-through': '',\n 'subscript': '',\n 'superscript': '',\n 'table-caption': '',\n 'table-cell-classes': '',\n 'table-cell-properties': '',\n 'table-cell-select-all': '',\n 'table-cell-select-inner': '',\n 'table-classes': '',\n 'table-delete-column': '',\n 'table-delete-row': '',\n 'table-delete-table': '',\n 'table-insert-column-after': '',\n 'table-insert-column-before': '',\n 'table-insert-row-above': '',\n 'table-insert-row-after': '',\n 'table-left-header': '',\n 'table-merge-cells': '',\n 'table-row-numbering-rtl': '',\n 'table-row-numbering': '',\n 'table-row-properties': '',\n 'table-split-cells': '',\n 'table-top-header': '',\n 'table': '',\n 'template-add': '',\n 'template': '',\n 'temporary-placeholder': '',\n 'text-color': '',\n 'text-size-decrease': '',\n 'text-size-increase': '',\n 'toc': '',\n 'translate': '',\n 'typography': '',\n 'underline': '',\n 'undo': '',\n 'unlink': '',\n 'unlock': '',\n 'unordered-list': '',\n 'unselected': '',\n 'upload': '',\n 'user': '',\n 'vertical-align': '',\n 'visualblocks': '',\n 'visualchars': '',\n 'warning': '',\n 'zoom-in': '',\n 'zoom-out': '',\n }\n});","// Exports the \"default\" icons for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/icons/default')\n// ES2015:\n// import 'tinymce/icons/default'\nrequire('./icons.js');","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.ModelManager');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$2 = t => a => t === a;\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isArray = isType$1('array');\n const isNull = eq$2(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$2(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n\n const noop = () => {\n };\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply = f => {\n return f();\n };\n const never = constant(false);\n const always = constant(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const range$1 = (num, f) => {\n const r = [];\n for (let i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n const map$1 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$2 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$2 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$2(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$1 = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const findIndex = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$2 = (xs, f) => flatten(map$1(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const sort$1 = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$d = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$d(xs, 0);\n const last$2 = xs => get$d(xs, xs.length - 1);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each$1 = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each$1(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each$1(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter$1 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each$1(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$c = (obj, key) => {\n return has$1(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$1 = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$1(obj, key) && obj[key] !== undefined && obj[key] !== null;\n const isEmpty = r => {\n for (const x in r) {\n if (hasOwnProperty.call(r, x)) {\n return false;\n }\n }\n return true;\n };\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve$2 = (p, scope) => {\n const parts = p.split('.');\n return path(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve$2(name, scope);\n };\n const getOrDie = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve$2('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf(x).constructor.name));\n };\n\n const COMMENT = 8;\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type = element => element.dom.nodeType;\n const isType = t => element => type(element) === t;\n const isComment = element => type(element) === COMMENT || name(element) === '#comment';\n const isHTMLElement = element => isElement(element) && isPrototypeOf(element.dom);\n const isElement = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocument = isType(DOCUMENT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement(e) && name(e) === tag;\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$2 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each$1(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const setOptions = (element, attrs) => {\n each$1(attrs, (v, k) => {\n v.fold(() => {\n remove$7(element, k);\n }, value => {\n rawSet(element.dom, k, value);\n });\n });\n };\n const get$b = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$b(element, key));\n const remove$7 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const clone$2 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom$1(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom$1(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom$1(node);\n };\n const fromDom$1 = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint$1 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1);\n const SugarElement = {\n fromHtml: fromHtml$1,\n fromTag,\n fromText,\n fromDom: fromDom$1,\n fromPoint: fromPoint$1\n };\n\n const is$2 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all$1 = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$1(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq$1 = (e1, e2) => e1.dom === e2.dom;\n const contains$1 = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n const is$1 = is$2;\n\n const owner = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children$2 = element => map$1(element.dom.childNodes, SugarElement.fromDom);\n const child$2 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$2(element, 0);\n\n const before$3 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$5 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$3(v, element);\n });\n };\n const prepend = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$1(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const appendAt = (parent, element, index) => {\n child$2(parent, index).fold(() => {\n append$1(parent, element);\n }, v => {\n before$3(v, element);\n });\n };\n const wrap = (element, wrapper) => {\n before$3(element, wrapper);\n append$1(wrapper, element);\n };\n\n const after$4 = (marker, elements) => {\n each$2(elements, (x, i) => {\n const e = i === 0 ? marker : elements[i - 1];\n after$5(e, x);\n });\n };\n const append = (parent, elements) => {\n each$2(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$2(children$2(element), rogue => {\n remove$6(rogue);\n });\n };\n const remove$6 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n const unwrap = wrapper => {\n const children = children$2(wrapper);\n if (children.length > 0) {\n after$4(wrapper, children);\n }\n remove$6(wrapper);\n };\n\n const clone$1 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow = original => clone$1(original, false);\n const deep = original => clone$1(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$2(original);\n setAll$1(nu, attributes);\n return nu;\n };\n const copy$2 = (original, tag) => {\n const nu = shallowAs(original, tag);\n const cloneChildren = children$2(deep(original));\n append(nu, cloneChildren);\n return nu;\n };\n const mutate$1 = (original, tag) => {\n const nu = shallowAs(original, tag);\n after$5(original, nu);\n const children = children$2(original);\n append(nu, children);\n remove$6(original);\n return nu;\n };\n\n const validSectionList = [\n 'tfoot',\n 'thead',\n 'tbody',\n 'colgroup'\n ];\n const isValidSection = parentName => contains$2(validSectionList, parentName);\n const grid = (rows, columns) => ({\n rows,\n columns\n });\n const address = (row, column) => ({\n row,\n column\n });\n const detail = (element, rowspan, colspan) => ({\n element,\n rowspan,\n colspan\n });\n const detailnew = (element, rowspan, colspan, isNew) => ({\n element,\n rowspan,\n colspan,\n isNew\n });\n const extended = (element, rowspan, colspan, row, column, isLocked) => ({\n element,\n rowspan,\n colspan,\n row,\n column,\n isLocked\n });\n const rowdetail = (element, cells, section) => ({\n element,\n cells,\n section\n });\n const rowdetailnew = (element, cells, section, isNew) => ({\n element,\n cells,\n section,\n isNew\n });\n const elementnew = (element, isNew, isLocked) => ({\n element,\n isNew,\n isLocked\n });\n const rowcells = (element, cells, section, isNew) => ({\n element,\n cells,\n section,\n isNew\n });\n const bounds = (startRow, startCol, finishRow, finishCol) => ({\n startRow,\n startCol,\n finishRow,\n finishCol\n });\n const columnext = (element, colspan, column) => ({\n element,\n colspan,\n column\n });\n const colgroup = (element, columns) => ({\n element,\n columns\n });\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n const body$1 = () => getBody$1(SugarElement.fromDom(document));\n const getBody$1 = doc => {\n const b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const ancestors$4 = (scope, predicate, isRoot) => filter$2(parents(scope, isRoot), predicate);\n const children$1 = (scope, predicate) => filter$2(children$2(scope), predicate);\n const descendants$1 = (scope, predicate) => {\n let result = [];\n each$2(children$2(scope), x => {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants$1(x, predicate));\n });\n return result;\n };\n\n const ancestors$3 = (scope, selector, isRoot) => ancestors$4(scope, e => is$2(e, selector), isRoot);\n const children = (scope, selector) => children$1(scope, e => is$2(e, selector));\n const descendants = (scope, selector) => all$1(selector, scope);\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$2 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$2 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$2, scope, predicate, isRoot);\n };\n const child$1 = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$1(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$1 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const ancestor$1 = (scope, selector, isRoot) => ancestor$2(scope, e => is$2(e, selector), isRoot);\n const child = (scope, selector) => child$1(scope, e => is$2(e, selector));\n const descendant = (scope, selector) => one(selector, scope);\n const closest$1 = (scope, selector, isRoot) => {\n const is = (element, selector) => is$2(element, selector);\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const bindFrom = (a, f) => a !== undefined && a !== null ? f(a) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const contains = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const toFloat = value => {\n const num = parseFloat(value);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$1 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each$1(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const get$a = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw$2 = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const remove$5 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is(getOpt(element, 'style').map(trim), '')) {\n remove$7(element, 'style');\n }\n };\n const copy$1 = (source, target) => {\n const sourceDom = source.dom;\n const targetDom = target.dom;\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n\n const getAttrValue = (cell, name, fallback = 0) => getOpt(cell, name).map(value => parseInt(value, 10)).getOr(fallback);\n const getSpan = (cell, type) => getAttrValue(cell, type, 1);\n const hasColspan = cellOrCol => {\n if (isTag('col')(cellOrCol)) {\n return getAttrValue(cellOrCol, 'span', 1) > 1;\n } else {\n return getSpan(cellOrCol, 'colspan') > 1;\n }\n };\n const hasRowspan = cell => getSpan(cell, 'rowspan') > 1;\n const getCssValue = (element, property) => parseInt(get$a(element, property), 10);\n const minWidth = constant(10);\n const minHeight = constant(10);\n\n const firstLayer = (scope, selector) => {\n return filterFirstLayer(scope, selector, always);\n };\n const filterFirstLayer = (scope, selector, predicate) => {\n return bind$2(children$2(scope), x => {\n if (is$2(x, selector)) {\n return predicate(x) ? [x] : [];\n } else {\n return filterFirstLayer(x, selector, predicate);\n }\n });\n };\n\n const lookup = (tags, element, isRoot = never) => {\n if (isRoot(element)) {\n return Optional.none();\n }\n if (contains$2(tags, name(element))) {\n return Optional.some(element);\n }\n const isRootOrUpperTable = elm => is$2(elm, 'table') || isRoot(elm);\n return ancestor$1(element, tags.join(','), isRootOrUpperTable);\n };\n const cell = (element, isRoot) => lookup([\n 'td',\n 'th'\n ], element, isRoot);\n const cells$1 = ancestor => firstLayer(ancestor, 'th,td');\n const columns$1 = ancestor => {\n if (is$2(ancestor, 'colgroup')) {\n return children(ancestor, 'col');\n } else {\n return bind$2(columnGroups(ancestor), columnGroup => children(columnGroup, 'col'));\n }\n };\n const table = (element, isRoot) => closest$1(element, 'table', isRoot);\n const rows$1 = ancestor => firstLayer(ancestor, 'tr');\n const columnGroups = ancestor => table(ancestor).fold(constant([]), table => children(table, 'colgroup'));\n\n const fromRowsOrColGroups = (elems, getSection) => map$1(elems, row => {\n if (name(row) === 'colgroup') {\n const cells = map$1(columns$1(row), column => {\n const colspan = getAttrValue(column, 'span', 1);\n return detail(column, 1, colspan);\n });\n return rowdetail(row, cells, 'colgroup');\n } else {\n const cells = map$1(cells$1(row), cell => {\n const rowspan = getAttrValue(cell, 'rowspan', 1);\n const colspan = getAttrValue(cell, 'colspan', 1);\n return detail(cell, rowspan, colspan);\n });\n return rowdetail(row, cells, getSection(row));\n }\n });\n const getParentSection = group => parent(group).map(parent => {\n const parentName = name(parent);\n return isValidSection(parentName) ? parentName : 'tbody';\n }).getOr('tbody');\n const fromTable$1 = table => {\n const rows = rows$1(table);\n const columnGroups$1 = columnGroups(table);\n const elems = [\n ...columnGroups$1,\n ...rows\n ];\n return fromRowsOrColGroups(elems, getParentSection);\n };\n const fromPastedRows = (elems, section) => fromRowsOrColGroups(elems, () => section);\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$2(group(1), group(2));\n };\n const detect$5 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n return find(versionRegexes, cleanedAgent);\n };\n const unknown$2 = () => {\n return nu$2(0, 0);\n };\n const nu$2 = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$2,\n detect: detect$5,\n unknown: unknown$2\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$1(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$4 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$1(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$4(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$4(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains(uastring, 'msie') || contains(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains(uastring, 'iphone') || contains(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$1 = () => {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$1 = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chromium: constant(chromium),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown = () => {\n return nu({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown,\n nu,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n macos: constant(macos),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n const detect$3 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$3 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$2 = () => platform();\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$a(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$a(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const toNumber = (px, fallback) => toFloat(px).getOr(fallback);\n const getProp = (element, name, fallback) => toNumber(get$a(element, name), fallback);\n const calcContentBoxSize = (element, size, upper, lower) => {\n const paddingUpper = getProp(element, `padding-${ upper }`, 0);\n const paddingLower = getProp(element, `padding-${ lower }`, 0);\n const borderUpper = getProp(element, `border-${ upper }-width`, 0);\n const borderLower = getProp(element, `border-${ lower }-width`, 0);\n return size - paddingUpper - paddingLower - borderUpper - borderLower;\n };\n const getCalculatedWidth = (element, boxSizing) => {\n const dom = element.dom;\n const width = dom.getBoundingClientRect().width || dom.offsetWidth;\n return boxSizing === 'border-box' ? width : calcContentBoxSize(element, width, 'left', 'right');\n };\n const getHeight$1 = element => getProp(element, 'height', element.dom.offsetHeight);\n const getWidth = element => getProp(element, 'width', element.dom.offsetWidth);\n const getInnerWidth = element => getCalculatedWidth(element, 'content-box');\n\n const api$2 = Dimension('width', element => element.dom.offsetWidth);\n const get$9 = element => api$2.get(element);\n const getOuter$2 = element => api$2.getOuter(element);\n const getInner = getInnerWidth;\n const getRuntime$1 = getWidth;\n\n const addCells = (gridRow, index, cells) => {\n const existingCells = gridRow.cells;\n const before = existingCells.slice(0, index);\n const after = existingCells.slice(index);\n const newCells = before.concat(cells).concat(after);\n return setCells(gridRow, newCells);\n };\n const addCell = (gridRow, index, cell) => addCells(gridRow, index, [cell]);\n const mutateCell = (gridRow, index, cell) => {\n const cells = gridRow.cells;\n cells[index] = cell;\n };\n const setCells = (gridRow, cells) => rowcells(gridRow.element, cells, gridRow.section, gridRow.isNew);\n const mapCells = (gridRow, f) => {\n const cells = gridRow.cells;\n const r = map$1(cells, f);\n return rowcells(gridRow.element, r, gridRow.section, gridRow.isNew);\n };\n const getCell = (gridRow, index) => gridRow.cells[index];\n const getCellElement = (gridRow, index) => getCell(gridRow, index).element;\n const cellLength = gridRow => gridRow.cells.length;\n const extractGridDetails = grid => {\n const result = partition(grid, row => row.section === 'colgroup');\n return {\n rows: result.fail,\n cols: result.pass\n };\n };\n const clone = (gridRow, cloneRow, cloneCell) => {\n const newCells = map$1(gridRow.cells, cloneCell);\n return rowcells(cloneRow(gridRow.element), newCells, gridRow.section, true);\n };\n\n const LOCKED_COL_ATTR = 'data-snooker-locked-cols';\n const getLockedColumnsFromTable = table => getOpt(table, LOCKED_COL_ATTR).bind(lockedColStr => Optional.from(lockedColStr.match(/\\d+/g))).map(lockedCols => mapToObject(lockedCols, always));\n const getLockedColumnsFromGrid = grid => {\n const locked = foldl(extractGridDetails(grid).rows, (acc, row) => {\n each$2(row.cells, (cell, idx) => {\n if (cell.isLocked) {\n acc[idx] = true;\n }\n });\n return acc;\n }, {});\n const lockedArr = mapToArray(locked, (_val, key) => parseInt(key, 10));\n return sort$1(lockedArr);\n };\n\n const key = (row, column) => {\n return row + ',' + column;\n };\n const getAt = (warehouse, row, column) => Optional.from(warehouse.access[key(row, column)]);\n const findItem = (warehouse, item, comparator) => {\n const filtered = filterItems(warehouse, detail => {\n return comparator(item, detail.element);\n });\n return filtered.length > 0 ? Optional.some(filtered[0]) : Optional.none();\n };\n const filterItems = (warehouse, predicate) => {\n const all = bind$2(warehouse.all, r => {\n return r.cells;\n });\n return filter$2(all, predicate);\n };\n const generateColumns = rowData => {\n const columnsGroup = {};\n let index = 0;\n each$2(rowData.cells, column => {\n const colspan = column.colspan;\n range$1(colspan, columnIndex => {\n const colIndex = index + columnIndex;\n columnsGroup[colIndex] = columnext(column.element, colspan, colIndex);\n });\n index += colspan;\n });\n return columnsGroup;\n };\n const generate$1 = list => {\n const access = {};\n const cells = [];\n const tableOpt = head(list).map(rowData => rowData.element).bind(table);\n const lockedColumns = tableOpt.bind(getLockedColumnsFromTable).getOr({});\n let maxRows = 0;\n let maxColumns = 0;\n let rowCount = 0;\n const {\n pass: colgroupRows,\n fail: rows\n } = partition(list, rowData => rowData.section === 'colgroup');\n each$2(rows, rowData => {\n const currentRow = [];\n each$2(rowData.cells, rowCell => {\n let start = 0;\n while (access[key(rowCount, start)] !== undefined) {\n start++;\n }\n const isLocked = hasNonNullableKey(lockedColumns, start.toString());\n const current = extended(rowCell.element, rowCell.rowspan, rowCell.colspan, rowCount, start, isLocked);\n for (let occupiedColumnPosition = 0; occupiedColumnPosition < rowCell.colspan; occupiedColumnPosition++) {\n for (let occupiedRowPosition = 0; occupiedRowPosition < rowCell.rowspan; occupiedRowPosition++) {\n const rowPosition = rowCount + occupiedRowPosition;\n const columnPosition = start + occupiedColumnPosition;\n const newpos = key(rowPosition, columnPosition);\n access[newpos] = current;\n maxColumns = Math.max(maxColumns, columnPosition + 1);\n }\n }\n currentRow.push(current);\n });\n maxRows++;\n cells.push(rowdetail(rowData.element, currentRow, rowData.section));\n rowCount++;\n });\n const {columns, colgroups} = last$2(colgroupRows).map(rowData => {\n const columns = generateColumns(rowData);\n const colgroup$1 = colgroup(rowData.element, values(columns));\n return {\n colgroups: [colgroup$1],\n columns\n };\n }).getOrThunk(() => ({\n colgroups: [],\n columns: {}\n }));\n const grid$1 = grid(maxRows, maxColumns);\n return {\n grid: grid$1,\n access,\n all: cells,\n columns,\n colgroups\n };\n };\n const fromTable = table => {\n const list = fromTable$1(table);\n return generate$1(list);\n };\n const justCells = warehouse => bind$2(warehouse.all, w => w.cells);\n const justColumns = warehouse => values(warehouse.columns);\n const hasColumns = warehouse => keys(warehouse.columns).length > 0;\n const getColumnAt = (warehouse, columnIndex) => Optional.from(warehouse.columns[columnIndex]);\n const Warehouse = {\n fromTable,\n generate: generate$1,\n getAt,\n findItem,\n filterItems,\n justCells,\n justColumns,\n hasColumns,\n getColumnAt\n };\n\n const columns = (warehouse, isValidCell = always) => {\n const grid = warehouse.grid;\n const cols = range$1(grid.columns, identity);\n const rowsArr = range$1(grid.rows, identity);\n return map$1(cols, col => {\n const getBlock = () => bind$2(rowsArr, r => Warehouse.getAt(warehouse, r, col).filter(detail => detail.column === col).toArray());\n const isValid = detail => detail.colspan === 1 && isValidCell(detail.element);\n const getFallback = () => Warehouse.getAt(warehouse, 0, col);\n return decide(getBlock, isValid, getFallback);\n });\n };\n const decide = (getBlock, isValid, getFallback) => {\n const inBlock = getBlock();\n const validInBlock = find$1(inBlock, isValid);\n const detailOption = validInBlock.orThunk(() => Optional.from(inBlock[0]).orThunk(getFallback));\n return detailOption.map(detail => detail.element);\n };\n const rows = warehouse => {\n const grid = warehouse.grid;\n const rowsArr = range$1(grid.rows, identity);\n const cols = range$1(grid.columns, identity);\n return map$1(rowsArr, row => {\n const getBlock = () => bind$2(cols, c => Warehouse.getAt(warehouse, row, c).filter(detail => detail.row === row).fold(constant([]), detail => [detail]));\n const isSingle = detail => detail.rowspan === 1;\n const getFallback = () => Warehouse.getAt(warehouse, row, 0);\n return decide(getBlock, isSingle, getFallback);\n });\n };\n\n const deduce = (xs, index) => {\n if (index < 0 || index >= xs.length - 1) {\n return Optional.none();\n }\n const current = xs[index].fold(() => {\n const rest = reverse(xs.slice(0, index));\n return findMap(rest, (a, i) => a.map(aa => ({\n value: aa,\n delta: i + 1\n })));\n }, c => Optional.some({\n value: c,\n delta: 0\n }));\n const next = xs[index + 1].fold(() => {\n const rest = xs.slice(index + 1);\n return findMap(rest, (a, i) => a.map(aa => ({\n value: aa,\n delta: i + 1\n })));\n }, n => Optional.some({\n value: n,\n delta: 1\n }));\n return current.bind(c => next.map(n => {\n const extras = n.delta + c.delta;\n return Math.abs(n.value - c.value) / extras;\n }));\n };\n\n const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr;\n const getDirection = element => get$a(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n\n const api$1 = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$8 = element => api$1.get(element);\n const getOuter$1 = element => api$1.getOuter(element);\n const getRuntime = getHeight$1;\n\n const r = (left, top) => {\n const translate = (x, y) => r(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const rowInfo = (row, y) => ({\n row,\n y\n });\n const colInfo = (col, x) => ({\n col,\n x\n });\n const rtlEdge = cell => {\n const pos = absolute(cell);\n return pos.left + getOuter$2(cell);\n };\n const ltrEdge = cell => {\n return absolute(cell).left;\n };\n const getLeftEdge = (index, cell) => {\n return colInfo(index, ltrEdge(cell));\n };\n const getRightEdge = (index, cell) => {\n return colInfo(index, rtlEdge(cell));\n };\n const getTop$1 = cell => {\n return absolute(cell).top;\n };\n const getTopEdge = (index, cell) => {\n return rowInfo(index, getTop$1(cell));\n };\n const getBottomEdge = (index, cell) => {\n return rowInfo(index, getTop$1(cell) + getOuter$1(cell));\n };\n const findPositions = (getInnerEdge, getOuterEdge, array) => {\n if (array.length === 0) {\n return [];\n }\n const lines = map$1(array.slice(1), (cellOption, index) => {\n return cellOption.map(cell => {\n return getInnerEdge(index, cell);\n });\n });\n const lastLine = array[array.length - 1].map(cell => {\n return getOuterEdge(array.length - 1, cell);\n });\n return lines.concat([lastLine]);\n };\n const negate = step => {\n return -step;\n };\n const height = {\n delta: identity,\n positions: optElements => findPositions(getTopEdge, getBottomEdge, optElements),\n edge: getTop$1\n };\n const ltr$1 = {\n delta: identity,\n edge: ltrEdge,\n positions: optElements => findPositions(getLeftEdge, getRightEdge, optElements)\n };\n const rtl$1 = {\n delta: negate,\n edge: rtlEdge,\n positions: optElements => findPositions(getRightEdge, getLeftEdge, optElements)\n };\n const detect$1 = onDirection(ltr$1, rtl$1);\n const width = {\n delta: (amount, table) => detect$1(table).delta(amount, table),\n positions: (cols, table) => detect$1(table).positions(cols, table),\n edge: cell => detect$1(cell).edge(cell)\n };\n\n const units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n const pattern = (() => {\n const decimalDigits = '[0-9]+';\n const signedInteger = '[+-]?' + decimalDigits;\n const exponentPart = '[eE]' + signedInteger;\n const dot = '\\\\.';\n const opt = input => `(?:${ input })?`;\n const unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n const float = `[+-]?(?:${ unsignedDecimalLiteral })`;\n return new RegExp(`^(${ float })(.*)$`);\n })();\n const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check));\n const parse = (input, accepted) => {\n const match = Optional.from(pattern.exec(input));\n return match.bind(array => {\n const value = Number(array[1]);\n const unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n\n const rPercentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n const rPixelBasedSizeRegex = /(\\d+(\\.\\d+)?)px|em/;\n const isCol$2 = isTag('col');\n const isRow$2 = isTag('tr');\n const getPercentSize = (elm, outerGetter, innerGetter) => {\n const relativeParent = parentElement(elm).getOrThunk(() => getBody$1(owner(elm)));\n return outerGetter(elm) / innerGetter(relativeParent) * 100;\n };\n const setPixelWidth = (cell, amount) => {\n set$1(cell, 'width', amount + 'px');\n };\n const setPercentageWidth = (cell, amount) => {\n set$1(cell, 'width', amount + '%');\n };\n const setHeight = (cell, amount) => {\n set$1(cell, 'height', amount + 'px');\n };\n const removeHeight = cell => {\n remove$5(cell, 'height');\n };\n const getHeightValue = cell => getRuntime(cell) + 'px';\n const convert = (cell, number, getter, setter) => {\n const newSize = table(cell).map(table => {\n const total = getter(table);\n return Math.floor(number / 100 * total);\n }).getOr(number);\n setter(cell, newSize);\n return newSize;\n };\n const normalizePixelSize = (value, cell, getter, setter) => {\n const number = parseFloat(value);\n return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;\n };\n const getTotalHeight = cell => {\n const value = getHeightValue(cell);\n if (!value) {\n return get$8(cell);\n }\n return normalizePixelSize(value, cell, get$8, setHeight);\n };\n const get$7 = (cell, type, f) => {\n const v = f(cell);\n const span = getSpan(cell, type);\n return v / span;\n };\n const getRaw$1 = (element, prop) => {\n return getRaw$2(element, prop).orThunk(() => {\n return getOpt(element, prop).map(val => val + 'px');\n });\n };\n const getRawWidth$1 = element => getRaw$1(element, 'width');\n const getRawHeight$1 = element => getRaw$1(element, 'height');\n const getPercentageWidth = cell => getPercentSize(cell, get$9, getInner);\n const getPixelWidth$1 = cell => isCol$2(cell) ? get$9(cell) : getRuntime$1(cell);\n const getHeight = cell => {\n return isRow$2(cell) ? get$8(cell) : get$7(cell, 'rowspan', getTotalHeight);\n };\n const getGenericWidth = cell => {\n const width = getRawWidth$1(cell);\n return width.bind(w => parse(w, [\n 'fixed',\n 'relative',\n 'empty'\n ]));\n };\n const setGenericWidth = (cell, amount, unit) => {\n set$1(cell, 'width', amount + unit);\n };\n const getPixelTableWidth = table => get$9(table) + 'px';\n const getPixelTableHeight = table => get$8(table) + 'px';\n const getPercentTableWidth = table => getPercentSize(table, get$9, getInner) + '%';\n const isPercentSizing$1 = table => getRawWidth$1(table).exists(size => rPercentageBasedSizeRegex.test(size));\n const isPixelSizing$1 = table => getRawWidth$1(table).exists(size => rPixelBasedSizeRegex.test(size));\n const isNoneSizing$1 = table => getRawWidth$1(table).isNone();\n const percentageBasedSizeRegex = constant(rPercentageBasedSizeRegex);\n\n const isCol$1 = isTag('col');\n const getRawW = cell => {\n return getRawWidth$1(cell).getOrThunk(() => getPixelWidth$1(cell) + 'px');\n };\n const getRawH = cell => {\n return getRawHeight$1(cell).getOrThunk(() => getHeight(cell) + 'px');\n };\n const justCols = warehouse => map$1(Warehouse.justColumns(warehouse), column => Optional.from(column.element));\n const isValidColumn = cell => {\n const browser = detect$2().browser;\n const supportsColWidths = browser.isChromium() || browser.isFirefox();\n return isCol$1(cell) ? supportsColWidths : true;\n };\n const getDimension = (cellOpt, index, backups, filter, getter, fallback) => cellOpt.filter(filter).fold(() => fallback(deduce(backups, index)), cell => getter(cell));\n const getWidthFrom = (warehouse, table, getWidth, fallback) => {\n const columnCells = columns(warehouse);\n const columns$1 = Warehouse.hasColumns(warehouse) ? justCols(warehouse) : columnCells;\n const backups = [Optional.some(width.edge(table))].concat(map$1(width.positions(columnCells, table), pos => pos.map(p => p.x)));\n const colFilter = not(hasColspan);\n return map$1(columns$1, (cellOption, c) => {\n return getDimension(cellOption, c, backups, colFilter, column => {\n if (isValidColumn(column)) {\n return getWidth(column);\n } else {\n const cell = bindFrom(columnCells[c], identity);\n return getDimension(cell, c, backups, colFilter, cell => fallback(Optional.some(get$9(cell))), fallback);\n }\n }, fallback);\n });\n };\n const getDeduced = deduced => {\n return deduced.map(d => {\n return d + 'px';\n }).getOr('');\n };\n const getRawWidths = (warehouse, table) => {\n return getWidthFrom(warehouse, table, getRawW, getDeduced);\n };\n const getPercentageWidths = (warehouse, table, tableSize) => {\n return getWidthFrom(warehouse, table, getPercentageWidth, deduced => {\n return deduced.fold(() => {\n return tableSize.minCellWidth();\n }, cellWidth => {\n return cellWidth / tableSize.pixelWidth() * 100;\n });\n });\n };\n const getPixelWidths = (warehouse, table, tableSize) => {\n return getWidthFrom(warehouse, table, getPixelWidth$1, deduced => {\n return deduced.getOrThunk(tableSize.minCellWidth);\n });\n };\n const getHeightFrom = (warehouse, table, getHeight, fallback) => {\n const rowCells = rows(warehouse);\n const rows$1 = map$1(warehouse.all, r => Optional.some(r.element));\n const backups = [Optional.some(height.edge(table))].concat(map$1(height.positions(rowCells, table), pos => pos.map(p => p.y)));\n return map$1(rows$1, (row, i) => getDimension(row, i, backups, always, getHeight, fallback));\n };\n const getPixelHeights = (warehouse, table) => {\n return getHeightFrom(warehouse, table, getHeight, deduced => {\n return deduced.getOrThunk(minHeight);\n });\n };\n const getRawHeights = (warehouse, table) => {\n return getHeightFrom(warehouse, table, getRawH, getDeduced);\n };\n\n const widthLookup = (table, getter) => () => {\n if (inBody(table)) {\n return getter(table);\n } else {\n return parseFloat(getRaw$2(table, 'width').getOr('0'));\n }\n };\n const noneSize = table => {\n const getWidth = widthLookup(table, get$9);\n const zero = constant(0);\n const getWidths = (warehouse, tableSize) => getPixelWidths(warehouse, table, tableSize);\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta: zero,\n singleColumnWidth: constant([0]),\n minCellWidth: zero,\n setElementWidth: noop,\n adjustTableWidth: noop,\n isRelative: true,\n label: 'none'\n };\n };\n const percentageSize = table => {\n const getFloatWidth = widthLookup(table, elem => parseFloat(getPercentTableWidth(elem)));\n const getWidth = widthLookup(table, get$9);\n const getCellDelta = delta => delta / getWidth() * 100;\n const singleColumnWidth = (w, _delta) => [100 - w];\n const minCellWidth = () => minWidth() / getWidth() * 100;\n const adjustTableWidth = delta => {\n const currentWidth = getFloatWidth();\n const change = delta / 100 * currentWidth;\n const newWidth = currentWidth + change;\n setPercentageWidth(table, newWidth);\n };\n const getWidths = (warehouse, tableSize) => getPercentageWidths(warehouse, table, tableSize);\n return {\n width: getFloatWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta,\n singleColumnWidth,\n minCellWidth,\n setElementWidth: setPercentageWidth,\n adjustTableWidth,\n isRelative: true,\n label: 'percent'\n };\n };\n const pixelSize = table => {\n const getWidth = widthLookup(table, get$9);\n const getCellDelta = identity;\n const singleColumnWidth = (w, delta) => {\n const newNext = Math.max(minWidth(), w + delta);\n return [newNext - w];\n };\n const adjustTableWidth = delta => {\n const newWidth = getWidth() + delta;\n setPixelWidth(table, newWidth);\n };\n const getWidths = (warehouse, tableSize) => getPixelWidths(warehouse, table, tableSize);\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta,\n singleColumnWidth,\n minCellWidth: minWidth,\n setElementWidth: setPixelWidth,\n adjustTableWidth,\n isRelative: false,\n label: 'pixel'\n };\n };\n const chooseSize = (element, width) => {\n const percentMatch = percentageBasedSizeRegex().exec(width);\n if (percentMatch !== null) {\n return percentageSize(element);\n } else {\n return pixelSize(element);\n }\n };\n const getTableSize = table => {\n const width = getRawWidth$1(table);\n return width.fold(() => noneSize(table), w => chooseSize(table, w));\n };\n const TableSize = {\n getTableSize,\n pixelSize,\n percentageSize,\n noneSize\n };\n\n const statsStruct = (minRow, minCol, maxRow, maxCol, allCells, selectedCells) => ({\n minRow,\n minCol,\n maxRow,\n maxCol,\n allCells,\n selectedCells\n });\n const findSelectedStats = (house, isSelected) => {\n const totalColumns = house.grid.columns;\n const totalRows = house.grid.rows;\n let minRow = totalRows;\n let minCol = totalColumns;\n let maxRow = 0;\n let maxCol = 0;\n const allCells = [];\n const selectedCells = [];\n each$1(house.access, detail => {\n allCells.push(detail);\n if (isSelected(detail)) {\n selectedCells.push(detail);\n const startRow = detail.row;\n const endRow = startRow + detail.rowspan - 1;\n const startCol = detail.column;\n const endCol = startCol + detail.colspan - 1;\n if (startRow < minRow) {\n minRow = startRow;\n } else if (endRow > maxRow) {\n maxRow = endRow;\n }\n if (startCol < minCol) {\n minCol = startCol;\n } else if (endCol > maxCol) {\n maxCol = endCol;\n }\n }\n });\n return statsStruct(minRow, minCol, maxRow, maxCol, allCells, selectedCells);\n };\n const makeCell = (list, seenSelected, rowIndex) => {\n const row = list[rowIndex].element;\n const td = SugarElement.fromTag('td');\n append$1(td, SugarElement.fromTag('br'));\n const f = seenSelected ? append$1 : prepend;\n f(row, td);\n };\n const fillInGaps = (list, house, stats, isSelected) => {\n const rows = filter$2(list, row => row.section !== 'colgroup');\n const totalColumns = house.grid.columns;\n const totalRows = house.grid.rows;\n for (let i = 0; i < totalRows; i++) {\n let seenSelected = false;\n for (let j = 0; j < totalColumns; j++) {\n if (!(i < stats.minRow || i > stats.maxRow || j < stats.minCol || j > stats.maxCol)) {\n const needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone();\n if (needCell) {\n makeCell(rows, seenSelected, i);\n } else {\n seenSelected = true;\n }\n }\n }\n }\n };\n const clean = (replica, stats, house, widthDelta) => {\n each$1(house.columns, col => {\n if (col.column < stats.minCol || col.column > stats.maxCol) {\n remove$6(col.element);\n }\n });\n const emptyRows = filter$2(firstLayer(replica, 'tr'), row => row.dom.childElementCount === 0);\n each$2(emptyRows, remove$6);\n if (stats.minCol === stats.maxCol || stats.minRow === stats.maxRow) {\n each$2(firstLayer(replica, 'th,td'), cell => {\n remove$7(cell, 'rowspan');\n remove$7(cell, 'colspan');\n });\n }\n remove$7(replica, LOCKED_COL_ATTR);\n remove$7(replica, 'data-snooker-col-series');\n const tableSize = TableSize.getTableSize(replica);\n tableSize.adjustTableWidth(widthDelta);\n };\n const getTableWidthDelta = (table, warehouse, tableSize, stats) => {\n if (stats.minCol === 0 && warehouse.grid.columns === stats.maxCol + 1) {\n return 0;\n }\n const colWidths = getPixelWidths(warehouse, table, tableSize);\n const allColsWidth = foldl(colWidths, (acc, width) => acc + width, 0);\n const selectedColsWidth = foldl(colWidths.slice(stats.minCol, stats.maxCol + 1), (acc, width) => acc + width, 0);\n const newWidth = selectedColsWidth / allColsWidth * tableSize.pixelWidth();\n const delta = newWidth - tableSize.pixelWidth();\n return tableSize.getCellDelta(delta);\n };\n const extract$1 = (table, selectedSelector) => {\n const isSelected = detail => is$2(detail.element, selectedSelector);\n const replica = deep(table);\n const list = fromTable$1(replica);\n const tableSize = TableSize.getTableSize(table);\n const replicaHouse = Warehouse.generate(list);\n const replicaStats = findSelectedStats(replicaHouse, isSelected);\n const selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';\n const unselectedCells = filterFirstLayer(replica, 'th,td', cell => is$2(cell, selector));\n each$2(unselectedCells, remove$6);\n fillInGaps(list, replicaHouse, replicaStats, isSelected);\n const house = Warehouse.fromTable(table);\n const widthDelta = getTableWidthDelta(table, house, tableSize, replicaStats);\n clean(replica, replicaStats, replicaHouse, widthDelta);\n return replica;\n };\n\n const nbsp = '\\xA0';\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api = NodeValue(isText, 'text');\n const get$6 = element => api.get(element);\n const getOption = element => api.getOption(element);\n const set = (element, value) => api.set(element, value);\n\n const getEnd = element => name(element) === 'img' ? 1 : getOption(element).fold(() => children$2(element).length, v => v.length);\n const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome();\n const isContentEditableFalse = elem => isHTMLElement(elem) && get$b(elem, 'contenteditable') === 'false';\n const elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n const isCursorPosition = elem => {\n const hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem)) || isContentEditableFalse(elem);\n };\n\n const first = element => descendant$1(element, isCursorPosition);\n const last$1 = element => descendantRtl(element, isCursorPosition);\n const descendantRtl = (scope, predicate) => {\n const descend = element => {\n const children = children$2(element);\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i];\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope);\n };\n\n const transferableAttributes = {\n scope: [\n 'row',\n 'col'\n ]\n };\n const createCell = doc => () => {\n const td = SugarElement.fromTag('td', doc.dom);\n append$1(td, SugarElement.fromTag('br', doc.dom));\n return td;\n };\n const createCol = doc => () => {\n return SugarElement.fromTag('col', doc.dom);\n };\n const createColgroup = doc => () => {\n return SugarElement.fromTag('colgroup', doc.dom);\n };\n const createRow$1 = doc => () => {\n return SugarElement.fromTag('tr', doc.dom);\n };\n const replace$1 = (cell, tag, attrs) => {\n const replica = copy$2(cell, tag);\n each$1(attrs, (v, k) => {\n if (v === null) {\n remove$7(replica, k);\n } else {\n set$2(replica, k, v);\n }\n });\n return replica;\n };\n const pasteReplace = cell => {\n return cell;\n };\n const cloneFormats = (oldCell, newCell, formats) => {\n const first$1 = first(oldCell);\n return first$1.map(firstText => {\n const formatSelector = formats.join(',');\n const parents = ancestors$3(firstText, formatSelector, element => {\n return eq$1(element, oldCell);\n });\n return foldr(parents, (last, parent) => {\n const clonedFormat = shallow(parent);\n append$1(last, clonedFormat);\n return clonedFormat;\n }, newCell);\n }).getOr(newCell);\n };\n const cloneAppropriateAttributes = (original, clone) => {\n each$1(transferableAttributes, (validAttributes, attributeName) => getOpt(original, attributeName).filter(attribute => contains$2(validAttributes, attribute)).each(attribute => set$2(clone, attributeName, attribute)));\n };\n const cellOperations = (mutate, doc, formatsToClone) => {\n const cloneCss = (prev, clone) => {\n copy$1(prev.element, clone);\n remove$5(clone, 'height');\n if (prev.colspan !== 1) {\n remove$5(clone, 'width');\n }\n };\n const newCell = prev => {\n const td = SugarElement.fromTag(name(prev.element), doc.dom);\n const formats = formatsToClone.getOr([\n 'strong',\n 'em',\n 'b',\n 'i',\n 'span',\n 'font',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div'\n ]);\n const lastNode = formats.length > 0 ? cloneFormats(prev.element, td, formats) : td;\n append$1(lastNode, SugarElement.fromTag('br'));\n cloneCss(prev, td);\n cloneAppropriateAttributes(prev.element, td);\n mutate(prev.element, td);\n return td;\n };\n const newCol = prev => {\n const col = SugarElement.fromTag(name(prev.element), doc.dom);\n cloneCss(prev, col);\n mutate(prev.element, col);\n return col;\n };\n return {\n col: newCol,\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: newCell,\n replace: replace$1,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n const paste$1 = doc => {\n return {\n col: createCol(doc),\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: createCell(doc),\n replace: pasteReplace,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children$2(SugarElement.fromDom(div));\n };\n const fromDom = nodes => map$1(nodes, SugarElement.fromDom);\n\n const option = name => editor => editor.options.get(name);\n const defaultWidth = '100%';\n const getPixelForcedWidth = editor => {\n var _a;\n const dom = editor.dom;\n const parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody();\n return getInner(SugarElement.fromDom(parentBlock)) + 'px';\n };\n const determineDefaultTableStyles = (editor, defaultStyles) => {\n if (isTableResponsiveForced(editor) || !shouldStyleWithCss(editor)) {\n return defaultStyles;\n } else if (isTablePixelsForced(editor)) {\n return {\n ...defaultStyles,\n width: getPixelForcedWidth(editor)\n };\n } else {\n return {\n ...defaultStyles,\n width: defaultWidth\n };\n }\n };\n const determineDefaultTableAttributes = (editor, defaultAttributes) => {\n if (isTableResponsiveForced(editor) || shouldStyleWithCss(editor)) {\n return defaultAttributes;\n } else if (isTablePixelsForced(editor)) {\n return {\n ...defaultAttributes,\n width: getPixelForcedWidth(editor)\n };\n } else {\n return {\n ...defaultAttributes,\n width: defaultWidth\n };\n }\n };\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('table_clone_elements', { processor: 'string[]' });\n registerOption('table_use_colgroups', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_header_type', {\n processor: value => {\n const valid = contains$2([\n 'section',\n 'cells',\n 'sectionCells',\n 'auto'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: section, cells, sectionCells or auto.'\n };\n },\n default: 'section'\n });\n registerOption('table_sizing_mode', {\n processor: 'string',\n default: 'auto'\n });\n registerOption('table_default_attributes', {\n processor: 'object',\n default: { border: '1' }\n });\n registerOption('table_default_styles', {\n processor: 'object',\n default: { 'border-collapse': 'collapse' }\n });\n registerOption('table_column_resizing', {\n processor: value => {\n const valid = contains$2([\n 'preservetable',\n 'resizetable'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be preservetable, or resizetable.'\n };\n },\n default: 'preservetable'\n });\n registerOption('table_resize_bars', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_style_by_css', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_merge_content_on_paste', {\n processor: 'boolean',\n default: true\n });\n };\n const getTableCloneElements = editor => {\n return Optional.from(editor.options.get('table_clone_elements'));\n };\n const hasTableObjectResizing = editor => {\n const objectResizing = editor.options.get('object_resizing');\n return contains$2(objectResizing.split(','), 'table');\n };\n const getTableHeaderType = option('table_header_type');\n const getTableColumnResizingBehaviour = option('table_column_resizing');\n const isPreserveTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'preservetable';\n const isResizeTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'resizetable';\n const getTableSizingMode = option('table_sizing_mode');\n const isTablePercentagesForced = editor => getTableSizingMode(editor) === 'relative';\n const isTablePixelsForced = editor => getTableSizingMode(editor) === 'fixed';\n const isTableResponsiveForced = editor => getTableSizingMode(editor) === 'responsive';\n const hasTableResizeBars = option('table_resize_bars');\n const shouldStyleWithCss = option('table_style_by_css');\n const shouldMergeContentOnPaste = option('table_merge_content_on_paste');\n const getTableDefaultAttributes = editor => {\n const options = editor.options;\n const defaultAttributes = options.get('table_default_attributes');\n return options.isSet('table_default_attributes') ? defaultAttributes : determineDefaultTableAttributes(editor, defaultAttributes);\n };\n const getTableDefaultStyles = editor => {\n const options = editor.options;\n const defaultStyles = options.get('table_default_styles');\n return options.isSet('table_default_styles') ? defaultStyles : determineDefaultTableStyles(editor, defaultStyles);\n };\n const tableUseColumnGroup = option('table_use_colgroups');\n\n const closest = target => closest$1(target, '[contenteditable]');\n const isEditable$1 = (element, assumeEditable = false) => {\n if (inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest(element).fold(constant(assumeEditable), editable => getRaw(editable) === 'true');\n }\n };\n const getRaw = element => element.dom.contentEditable;\n\n const getBody = editor => SugarElement.fromDom(editor.getBody());\n const getIsRoot = editor => element => eq$1(element, getBody(editor));\n const removeDataStyle = table => {\n remove$7(table, 'data-mce-style');\n const removeStyleAttribute = element => remove$7(element, 'data-mce-style');\n each$2(cells$1(table), removeStyleAttribute);\n each$2(columns$1(table), removeStyleAttribute);\n each$2(rows$1(table), removeStyleAttribute);\n };\n const getSelectionStart = editor => SugarElement.fromDom(editor.selection.getStart());\n const getPixelWidth = elm => elm.getBoundingClientRect().width;\n const getPixelHeight = elm => elm.getBoundingClientRect().height;\n const getRawValue = prop => (editor, elm) => {\n const raw = editor.dom.getStyle(elm, prop) || editor.dom.getAttrib(elm, prop);\n return Optional.from(raw).filter(isNotEmpty);\n };\n const getRawWidth = getRawValue('width');\n const getRawHeight = getRawValue('height');\n const isPercentage$1 = value => /^(\\d+(\\.\\d+)?)%$/.test(value);\n const isPixel = value => /^(\\d+(\\.\\d+)?)px$/.test(value);\n const isInEditableContext$1 = cell => closest$2(cell, isTag('table')).exists(isEditable$1);\n\n const inSelection = (bounds, detail) => {\n const leftEdge = detail.column;\n const rightEdge = detail.column + detail.colspan - 1;\n const topEdge = detail.row;\n const bottomEdge = detail.row + detail.rowspan - 1;\n return leftEdge <= bounds.finishCol && rightEdge >= bounds.startCol && (topEdge <= bounds.finishRow && bottomEdge >= bounds.startRow);\n };\n const isWithin = (bounds, detail) => {\n return detail.column >= bounds.startCol && detail.column + detail.colspan - 1 <= bounds.finishCol && detail.row >= bounds.startRow && detail.row + detail.rowspan - 1 <= bounds.finishRow;\n };\n const isRectangular = (warehouse, bounds) => {\n let isRect = true;\n const detailIsWithin = curry(isWithin, bounds);\n for (let i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (let j = bounds.startCol; j <= bounds.finishCol; j++) {\n isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);\n }\n }\n return isRect ? Optional.some(bounds) : Optional.none();\n };\n\n const getBounds = (detailA, detailB) => {\n return bounds(Math.min(detailA.row, detailB.row), Math.min(detailA.column, detailB.column), Math.max(detailA.row + detailA.rowspan - 1, detailB.row + detailB.rowspan - 1), Math.max(detailA.column + detailA.colspan - 1, detailB.column + detailB.colspan - 1));\n };\n const getAnyBox = (warehouse, startCell, finishCell) => {\n const startCoords = Warehouse.findItem(warehouse, startCell, eq$1);\n const finishCoords = Warehouse.findItem(warehouse, finishCell, eq$1);\n return startCoords.bind(sc => {\n return finishCoords.map(fc => {\n return getBounds(sc, fc);\n });\n });\n };\n const getBox$1 = (warehouse, startCell, finishCell) => {\n return getAnyBox(warehouse, startCell, finishCell).bind(bounds => {\n return isRectangular(warehouse, bounds);\n });\n };\n\n const moveBy$1 = (warehouse, cell, row, column) => {\n return Warehouse.findItem(warehouse, cell, eq$1).bind(detail => {\n const startRow = row > 0 ? detail.row + detail.rowspan - 1 : detail.row;\n const startCol = column > 0 ? detail.column + detail.colspan - 1 : detail.column;\n const dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);\n return dest.map(d => {\n return d.element;\n });\n });\n };\n const intercepts$1 = (warehouse, start, finish) => {\n return getAnyBox(warehouse, start, finish).map(bounds => {\n const inside = Warehouse.filterItems(warehouse, curry(inSelection, bounds));\n return map$1(inside, detail => {\n return detail.element;\n });\n });\n };\n const parentCell = (warehouse, innerCell) => {\n const isContainedBy = (c1, c2) => {\n return contains$1(c2, c1);\n };\n return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(detail => {\n return detail.element;\n });\n };\n\n const moveBy = (cell, deltaRow, deltaColumn) => {\n return table(cell).bind(table => {\n const warehouse = getWarehouse(table);\n return moveBy$1(warehouse, cell, deltaRow, deltaColumn);\n });\n };\n const intercepts = (table, first, last) => {\n const warehouse = getWarehouse(table);\n return intercepts$1(warehouse, first, last);\n };\n const nestedIntercepts = (table, first, firstTable, last, lastTable) => {\n const warehouse = getWarehouse(table);\n const optStartCell = eq$1(table, firstTable) ? Optional.some(first) : parentCell(warehouse, first);\n const optLastCell = eq$1(table, lastTable) ? Optional.some(last) : parentCell(warehouse, last);\n return optStartCell.bind(startCell => optLastCell.bind(lastCell => intercepts$1(warehouse, startCell, lastCell)));\n };\n const getBox = (table, first, last) => {\n const warehouse = getWarehouse(table);\n return getBox$1(warehouse, first, last);\n };\n const getWarehouse = Warehouse.fromTable;\n\n var TagBoundaries = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'li',\n 'table',\n 'thead',\n 'tbody',\n 'tfoot',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n\n var DomUniverse = () => {\n const clone = element => {\n return SugarElement.fromDom(element.dom.cloneNode(false));\n };\n const document = element => documentOrOwner(element).dom;\n const isBoundary = element => {\n if (!isElement(element)) {\n return false;\n }\n if (name(element) === 'body') {\n return true;\n }\n return contains$2(TagBoundaries, name(element));\n };\n const isEmptyTag = element => {\n if (!isElement(element)) {\n return false;\n }\n return contains$2([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], name(element));\n };\n const isNonEditable = element => isElement(element) && get$b(element, 'contenteditable') === 'false';\n const comparePosition = (element, other) => {\n return element.dom.compareDocumentPosition(other.dom);\n };\n const copyAttributesTo = (source, destination) => {\n const as = clone$2(source);\n setAll$1(destination, as);\n };\n const isSpecial = element => {\n const tag = name(element);\n return contains$2([\n 'script',\n 'noscript',\n 'iframe',\n 'noframes',\n 'noembed',\n 'title',\n 'style',\n 'textarea',\n 'xmp'\n ], tag);\n };\n const getLanguage = element => isElement(element) ? getOpt(element, 'lang') : Optional.none();\n return {\n up: constant({\n selector: ancestor$1,\n closest: closest$1,\n predicate: ancestor$2,\n all: parents\n }),\n down: constant({\n selector: descendants,\n predicate: descendants$1\n }),\n styles: constant({\n get: get$a,\n getRaw: getRaw$2,\n set: set$1,\n remove: remove$5\n }),\n attrs: constant({\n get: get$b,\n set: set$2,\n remove: remove$7,\n copyTo: copyAttributesTo\n }),\n insert: constant({\n before: before$3,\n after: after$5,\n afterAll: after$4,\n append: append$1,\n appendAll: append,\n prepend: prepend,\n wrap: wrap\n }),\n remove: constant({\n unwrap: unwrap,\n remove: remove$6\n }),\n create: constant({\n nu: SugarElement.fromTag,\n clone,\n text: SugarElement.fromText\n }),\n query: constant({\n comparePosition,\n prevSibling: prevSibling,\n nextSibling: nextSibling\n }),\n property: constant({\n children: children$2,\n name: name,\n parent: parent,\n document,\n isText: isText,\n isComment: isComment,\n isElement: isElement,\n isSpecial,\n getLanguage,\n getText: get$6,\n setText: set,\n isBoundary,\n isEmptyTag,\n isNonEditable\n }),\n eq: eq$1,\n is: is$1\n };\n };\n\n const all = (universe, look, elements, f) => {\n const head = elements[0];\n const tail = elements.slice(1);\n return f(universe, look, head, tail);\n };\n const oneAll = (universe, look, elements) => {\n return elements.length > 0 ? all(universe, look, elements, unsafeOne) : Optional.none();\n };\n const unsafeOne = (universe, look, head, tail) => {\n const start = look(universe, head);\n return foldr(tail, (b, a) => {\n const current = look(universe, a);\n return commonElement(universe, b, current);\n }, start);\n };\n const commonElement = (universe, start, end) => {\n return start.bind(s => {\n return end.filter(curry(universe.eq, s));\n });\n };\n\n const eq = (universe, item) => {\n return curry(universe.eq, item);\n };\n const ancestors$2 = (universe, start, end, isRoot = never) => {\n const ps1 = [start].concat(universe.up().all(start));\n const ps2 = [end].concat(universe.up().all(end));\n const prune = path => {\n const index = findIndex(path, isRoot);\n return index.fold(() => {\n return path;\n }, ind => {\n return path.slice(0, ind + 1);\n });\n };\n const pruned1 = prune(ps1);\n const pruned2 = prune(ps2);\n const shared = find$1(pruned1, x => {\n return exists(pruned2, eq(universe, x));\n });\n return {\n firstpath: pruned1,\n secondpath: pruned2,\n shared\n };\n };\n\n const sharedOne$1 = oneAll;\n const ancestors$1 = ancestors$2;\n\n const universe$3 = DomUniverse();\n const sharedOne = (look, elements) => {\n return sharedOne$1(universe$3, (_universe, element) => {\n return look(element);\n }, elements);\n };\n const ancestors = (start, finish, isRoot) => {\n return ancestors$1(universe$3, start, finish, isRoot);\n };\n\n const lookupTable = container => {\n return ancestor$1(container, 'table');\n };\n const identify = (start, finish, isRoot) => {\n const getIsRoot = rootTable => {\n return element => {\n return isRoot !== undefined && isRoot(element) || eq$1(element, rootTable);\n };\n };\n if (eq$1(start, finish)) {\n return Optional.some({\n boxes: Optional.some([start]),\n start,\n finish\n });\n } else {\n return lookupTable(start).bind(startTable => {\n return lookupTable(finish).bind(finishTable => {\n if (eq$1(startTable, finishTable)) {\n return Optional.some({\n boxes: intercepts(startTable, start, finish),\n start,\n finish\n });\n } else if (contains$1(startTable, finishTable)) {\n const ancestorCells = ancestors$3(finish, 'td,th', getIsRoot(startTable));\n const finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;\n return Optional.some({\n boxes: nestedIntercepts(startTable, start, startTable, finish, finishTable),\n start,\n finish: finishCell\n });\n } else if (contains$1(finishTable, startTable)) {\n const ancestorCells = ancestors$3(start, 'td,th', getIsRoot(finishTable));\n const startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(finishTable, start, startTable, finish, finishTable),\n start,\n finish: startCell\n });\n } else {\n return ancestors(start, finish).shared.bind(lca => {\n return closest$1(lca, 'table', isRoot).bind(lcaTable => {\n const finishAncestorCells = ancestors$3(finish, 'td,th', getIsRoot(lcaTable));\n const finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;\n const startAncestorCells = ancestors$3(start, 'td,th', getIsRoot(lcaTable));\n const startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(lcaTable, start, startTable, finish, finishTable),\n start: startCell,\n finish: finishCell\n });\n });\n });\n }\n });\n });\n }\n };\n const retrieve$1 = (container, selector) => {\n const sels = descendants(container, selector);\n return sels.length > 0 ? Optional.some(sels) : Optional.none();\n };\n const getLast = (boxes, lastSelectedSelector) => {\n return find$1(boxes, box => {\n return is$2(box, lastSelectedSelector);\n });\n };\n const getEdges = (container, firstSelectedSelector, lastSelectedSelector) => {\n return descendant(container, firstSelectedSelector).bind(first => {\n return descendant(container, lastSelectedSelector).bind(last => {\n return sharedOne(lookupTable, [\n first,\n last\n ]).map(table => {\n return {\n first,\n last,\n table\n };\n });\n });\n });\n };\n const expandTo = (finish, firstSelectedSelector) => {\n return ancestor$1(finish, 'table').bind(table => {\n return descendant(table, firstSelectedSelector).bind(start => {\n return identify(start, finish).bind(identified => {\n return identified.boxes.map(boxes => {\n return {\n boxes,\n start: identified.start,\n finish: identified.finish\n };\n });\n });\n });\n });\n };\n const shiftSelection = (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) => {\n return getLast(boxes, lastSelectedSelector).bind(last => {\n return moveBy(last, deltaRow, deltaColumn).bind(finish => {\n return expandTo(finish, firstSelectedSelector);\n });\n });\n };\n\n const retrieve = (container, selector) => {\n return retrieve$1(container, selector);\n };\n const retrieveBox = (container, firstSelectedSelector, lastSelectedSelector) => {\n return getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(edges => {\n const isRoot = ancestor => {\n return eq$1(container, ancestor);\n };\n const sectionSelector = 'thead,tfoot,tbody,table';\n const firstAncestor = ancestor$1(edges.first, sectionSelector, isRoot);\n const lastAncestor = ancestor$1(edges.last, sectionSelector, isRoot);\n return firstAncestor.bind(fA => {\n return lastAncestor.bind(lA => {\n return eq$1(fA, lA) ? getBox(edges.table, edges.first, edges.last) : Optional.none();\n });\n });\n });\n };\n\n const selection = identity;\n const unmergable = selectedCells => {\n const hasSpan = (elem, type) => getOpt(elem, type).exists(span => parseInt(span, 10) > 1);\n const hasRowOrColSpan = elem => hasSpan(elem, 'rowspan') || hasSpan(elem, 'colspan');\n return selectedCells.length > 0 && forall(selectedCells, hasRowOrColSpan) ? Optional.some(selectedCells) : Optional.none();\n };\n const mergable = (table, selectedCells, ephemera) => {\n if (selectedCells.length <= 1) {\n return Optional.none();\n } else {\n return retrieveBox(table, ephemera.firstSelectedSelector, ephemera.lastSelectedSelector).map(bounds => ({\n bounds,\n cells: selectedCells\n }));\n }\n };\n\n const strSelected = 'data-mce-selected';\n const strSelectedSelector = 'td[' + strSelected + '],th[' + strSelected + ']';\n const strAttributeSelector = '[' + strSelected + ']';\n const strFirstSelected = 'data-mce-first-selected';\n const strFirstSelectedSelector = 'td[' + strFirstSelected + '],th[' + strFirstSelected + ']';\n const strLastSelected = 'data-mce-last-selected';\n const strLastSelectedSelector = 'td[' + strLastSelected + '],th[' + strLastSelected + ']';\n const attributeSelector = strAttributeSelector;\n const ephemera = {\n selected: strSelected,\n selectedSelector: strSelectedSelector,\n firstSelected: strFirstSelected,\n firstSelectedSelector: strFirstSelectedSelector,\n lastSelected: strLastSelected,\n lastSelectedSelector: strLastSelectedSelector\n };\n\n const forMenu = (selectedCells, table, cell) => ({\n element: cell,\n mergable: mergable(table, selectedCells, ephemera),\n unmergable: unmergable(selectedCells),\n selection: selection(selectedCells)\n });\n const paste = (element, clipboard, generators) => ({\n element,\n clipboard,\n generators\n });\n const pasteRows = (selectedCells, _cell, clipboard, generators) => ({\n selection: selection(selectedCells),\n clipboard,\n generators\n });\n\n const getSelectionCellFallback = element => table(element).bind(table => retrieve(table, ephemera.firstSelectedSelector)).fold(constant(element), cells => cells[0]);\n const getSelectionFromSelector = selector => (initCell, isRoot) => {\n const cellName = name(initCell);\n const cell = cellName === 'col' || cellName === 'colgroup' ? getSelectionCellFallback(initCell) : initCell;\n return closest$1(cell, selector, isRoot);\n };\n const getSelectionCellOrCaption = getSelectionFromSelector('th,td,caption');\n const getSelectionCell = getSelectionFromSelector('th,td');\n const getCellsFromSelection = editor => fromDom(editor.model.table.getSelectedCells());\n const getCellsFromFakeSelection = editor => filter$2(getCellsFromSelection(editor), cell => is$2(cell, ephemera.selectedSelector));\n\n const extractSelected = cells => {\n return table(cells[0]).map(table => {\n const replica = extract$1(table, attributeSelector);\n removeDataStyle(replica);\n return [replica];\n });\n };\n const serializeElements = (editor, elements) => map$1(elements, elm => editor.selection.serializer.serialize(elm.dom, {})).join('');\n const getTextContent = (editor, replicaElements) => {\n const doc = editor.getDoc();\n const dos = getRootNode(SugarElement.fromDom(editor.getBody()));\n const offscreenDiv = SugarElement.fromTag('div', doc);\n set$2(offscreenDiv, 'data-mce-bogus', 'all');\n setAll(offscreenDiv, {\n position: 'fixed',\n left: '-9999999px',\n top: '0',\n overflow: 'hidden',\n opacity: '0'\n });\n const root = getContentContainer(dos);\n append(offscreenDiv, replicaElements);\n append$1(root, offscreenDiv);\n const textContent = offscreenDiv.dom.innerText;\n remove$6(offscreenDiv);\n return textContent;\n };\n const registerEvents = (editor, actions) => {\n editor.on('BeforeGetContent', e => {\n const multiCellContext = cells => {\n e.preventDefault();\n extractSelected(cells).each(replicaElements => {\n const content = e.format === 'text' ? getTextContent(editor, replicaElements) : serializeElements(editor, replicaElements);\n e.content = content;\n });\n };\n if (e.selection === true) {\n const cells = getCellsFromFakeSelection(editor);\n if (cells.length >= 1) {\n multiCellContext(cells);\n }\n }\n });\n editor.on('BeforeSetContent', e => {\n if (e.selection === true && e.paste === true) {\n const selectedCells = getCellsFromSelection(editor);\n head(selectedCells).each(cell => {\n table(cell).each(table => {\n const elements = filter$2(fromHtml(e.content), content => {\n return name(content) !== 'meta';\n });\n const isTable = isTag('table');\n if (shouldMergeContentOnPaste(editor) && elements.length === 1 && isTable(elements[0])) {\n e.preventDefault();\n const doc = SugarElement.fromDom(editor.getDoc());\n const generators = paste$1(doc);\n const targets = paste(cell, elements[0], generators);\n actions.pasteCells(table, targets).each(() => {\n editor.focus();\n });\n }\n });\n });\n }\n });\n };\n\n const point = (element, offset) => ({\n element,\n offset\n });\n\n const scan$1 = (universe, element, direction) => {\n if (universe.property().isText(element) && universe.property().getText(element).trim().length === 0 || universe.property().isComment(element)) {\n return direction(element).bind(elem => {\n return scan$1(universe, elem, direction).orThunk(() => {\n return Optional.some(elem);\n });\n });\n } else {\n return Optional.none();\n }\n };\n const toEnd = (universe, element) => {\n if (universe.property().isText(element)) {\n return universe.property().getText(element).length;\n }\n const children = universe.property().children(element);\n return children.length;\n };\n const freefallRtl$2 = (universe, element) => {\n const candidate = scan$1(universe, element, universe.query().prevSibling).getOr(element);\n if (universe.property().isText(candidate)) {\n return point(candidate, toEnd(universe, candidate));\n }\n const children = universe.property().children(candidate);\n return children.length > 0 ? freefallRtl$2(universe, children[children.length - 1]) : point(candidate, toEnd(universe, candidate));\n };\n\n const freefallRtl$1 = freefallRtl$2;\n\n const universe$2 = DomUniverse();\n const freefallRtl = element => {\n return freefallRtl$1(universe$2, element);\n };\n\n const halve = (main, other) => {\n if (!hasColspan(main)) {\n const width = getGenericWidth(main);\n width.each(w => {\n const newWidth = w.value / 2;\n setGenericWidth(main, newWidth, w.unit);\n setGenericWidth(other, newWidth, w.unit);\n });\n }\n };\n\n const zero = array => map$1(array, constant(0));\n const surround = (sizes, startIndex, endIndex, results, f) => f(sizes.slice(0, startIndex)).concat(results).concat(f(sizes.slice(endIndex)));\n const clampDeltaHelper = predicate => (sizes, index, delta, minCellSize) => {\n if (!predicate(delta)) {\n return delta;\n } else {\n const newSize = Math.max(minCellSize, sizes[index] - Math.abs(delta));\n const diff = Math.abs(newSize - sizes[index]);\n return delta >= 0 ? diff : -diff;\n }\n };\n const clampNegativeDelta = clampDeltaHelper(delta => delta < 0);\n const clampDelta = clampDeltaHelper(always);\n const resizeTable = () => {\n const calcFixedDeltas = (sizes, index, next, delta, minCellSize) => {\n const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return surround(sizes, index, next + 1, [\n clampedDelta,\n 0\n ], zero);\n };\n const calcRelativeDeltas = (sizes, index, delta, minCellSize) => {\n const ratio = (100 + delta) / 100;\n const newThis = Math.max(minCellSize, (sizes[index] + delta) / ratio);\n return map$1(sizes, (size, idx) => {\n const newSize = idx === index ? newThis : size / ratio;\n return newSize - size;\n });\n };\n const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize, isRelative) => {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n return calcFixedDeltas(sizes, index, next, delta, minCellSize);\n }\n };\n const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize, isRelative) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize, isRelative);\n const resizeTable = (resizer, delta) => resizer(delta);\n const calcRightEdgeDeltas = (sizes, _prev, index, delta, minCellSize, isRelative) => {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return zero(sizes.slice(0, index)).concat([clampedDelta]);\n }\n };\n const calcRedestributedWidths = (sizes, totalWidth, pixelDelta, isRelative) => {\n if (isRelative) {\n const tableWidth = totalWidth + pixelDelta;\n const ratio = tableWidth / totalWidth;\n const newSizes = map$1(sizes, size => size / ratio);\n return {\n delta: ratio * 100 - 100,\n newSizes\n };\n } else {\n return {\n delta: pixelDelta,\n newSizes: sizes\n };\n }\n };\n return {\n resizeTable,\n clampTableDelta: clampNegativeDelta,\n calcLeftEdgeDeltas,\n calcMiddleDeltas,\n calcRightEdgeDeltas,\n calcRedestributedWidths\n };\n };\n const preserveTable = () => {\n const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize) => {\n const idx = delta >= 0 ? next : index;\n const clampedDelta = clampDelta(sizes, idx, delta, minCellSize);\n return surround(sizes, index, next + 1, [\n clampedDelta,\n -clampedDelta\n ], zero);\n };\n const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize);\n const resizeTable = (resizer, delta, isLastColumn) => {\n if (isLastColumn) {\n resizer(delta);\n }\n };\n const calcRightEdgeDeltas = (sizes, _prev, _index, delta, _minCellSize, isRelative) => {\n if (isRelative) {\n return zero(sizes);\n } else {\n const diff = delta / sizes.length;\n return map$1(sizes, constant(diff));\n }\n };\n const clampTableDelta = (sizes, index, delta, minCellSize, isLastColumn) => {\n if (isLastColumn) {\n if (delta >= 0) {\n return delta;\n } else {\n const maxDelta = foldl(sizes, (a, b) => a + b - minCellSize, 0);\n return Math.max(-maxDelta, delta);\n }\n } else {\n return clampNegativeDelta(sizes, index, delta, minCellSize);\n }\n };\n const calcRedestributedWidths = (sizes, _totalWidth, _pixelDelta, _isRelative) => ({\n delta: 0,\n newSizes: sizes\n });\n return {\n resizeTable,\n clampTableDelta,\n calcLeftEdgeDeltas,\n calcMiddleDeltas,\n calcRightEdgeDeltas,\n calcRedestributedWidths\n };\n };\n\n const getGridSize = table => {\n const warehouse = Warehouse.fromTable(table);\n return warehouse.grid;\n };\n\n const isHeaderCell = isTag('th');\n const isHeaderCells = cells => forall(cells, cell => isHeaderCell(cell.element));\n const getRowHeaderType = (isHeaderRow, isHeaderCells) => {\n if (isHeaderRow && isHeaderCells) {\n return 'sectionCells';\n } else if (isHeaderRow) {\n return 'section';\n } else {\n return 'cells';\n }\n };\n const getRowType = row => {\n const isHeaderRow = row.section === 'thead';\n const isHeaderCells = is(findCommonCellType(row.cells), 'th');\n if (row.section === 'tfoot') {\n return { type: 'footer' };\n } else if (isHeaderRow || isHeaderCells) {\n return {\n type: 'header',\n subType: getRowHeaderType(isHeaderRow, isHeaderCells)\n };\n } else {\n return { type: 'body' };\n }\n };\n const findCommonCellType = cells => {\n const headerCells = filter$2(cells, cell => isHeaderCell(cell.element));\n if (headerCells.length === 0) {\n return Optional.some('td');\n } else if (headerCells.length === cells.length) {\n return Optional.some('th');\n } else {\n return Optional.none();\n }\n };\n const findCommonRowType = rows => {\n const rowTypes = map$1(rows, row => getRowType(row).type);\n const hasHeader = contains$2(rowTypes, 'header');\n const hasFooter = contains$2(rowTypes, 'footer');\n if (!hasHeader && !hasFooter) {\n return Optional.some('body');\n } else {\n const hasBody = contains$2(rowTypes, 'body');\n if (hasHeader && !hasBody && !hasFooter) {\n return Optional.some('header');\n } else if (!hasHeader && !hasBody && hasFooter) {\n return Optional.some('footer');\n } else {\n return Optional.none();\n }\n }\n };\n const findTableRowHeaderType = warehouse => findMap(warehouse.all, row => {\n const rowType = getRowType(row);\n return rowType.type === 'header' ? Optional.from(rowType.subType) : Optional.none();\n });\n\n const transformCell = (cell, comparator, substitution) => elementnew(substitution(cell.element, comparator), true, cell.isLocked);\n const transformRow = (row, section) => row.section !== section ? rowcells(row.element, row.cells, section, row.isNew) : row;\n const section = () => ({\n transformRow,\n transformCell: (cell, comparator, substitution) => {\n const newCell = substitution(cell.element, comparator);\n const fixedCell = name(newCell) !== 'td' ? mutate$1(newCell, 'td') : newCell;\n return elementnew(fixedCell, cell.isNew, cell.isLocked);\n }\n });\n const sectionCells = () => ({\n transformRow,\n transformCell\n });\n const cells = () => ({\n transformRow: (row, section) => {\n const newSection = section === 'thead' ? 'tbody' : section;\n return transformRow(row, newSection);\n },\n transformCell\n });\n const fallback = () => ({\n transformRow: identity,\n transformCell\n });\n const getTableSectionType = (table, fallback) => {\n const warehouse = Warehouse.fromTable(table);\n const type = findTableRowHeaderType(warehouse).getOr(fallback);\n switch (type) {\n case 'section':\n return section();\n case 'sectionCells':\n return sectionCells();\n case 'cells':\n return cells();\n }\n };\n const TableSection = {\n getTableSectionType,\n section,\n sectionCells,\n cells,\n fallback\n };\n\n const setIfNot = (element, property, value, ignore) => {\n if (value === ignore) {\n remove$7(element, property);\n } else {\n set$2(element, property, value);\n }\n };\n const insert$1 = (table, selector, element) => {\n last$2(children(table, selector)).fold(() => prepend(table, element), child => after$5(child, element));\n };\n const generateSection = (table, sectionName) => {\n const section = child(table, sectionName).getOrThunk(() => {\n const newSection = SugarElement.fromTag(sectionName, owner(table).dom);\n if (sectionName === 'thead') {\n insert$1(table, 'caption,colgroup', newSection);\n } else if (sectionName === 'colgroup') {\n insert$1(table, 'caption', newSection);\n } else {\n append$1(table, newSection);\n }\n return newSection;\n });\n empty(section);\n return section;\n };\n const render$1 = (table, grid) => {\n const newRows = [];\n const newCells = [];\n const syncRows = gridSection => map$1(gridSection, row => {\n if (row.isNew) {\n newRows.push(row.element);\n }\n const tr = row.element;\n empty(tr);\n each$2(row.cells, cell => {\n if (cell.isNew) {\n newCells.push(cell.element);\n }\n setIfNot(cell.element, 'colspan', cell.colspan, 1);\n setIfNot(cell.element, 'rowspan', cell.rowspan, 1);\n append$1(tr, cell.element);\n });\n return tr;\n });\n const syncColGroup = gridSection => bind$2(gridSection, colGroup => map$1(colGroup.cells, col => {\n setIfNot(col.element, 'span', col.colspan, 1);\n return col.element;\n }));\n const renderSection = (gridSection, sectionName) => {\n const section = generateSection(table, sectionName);\n const sync = sectionName === 'colgroup' ? syncColGroup : syncRows;\n const sectionElems = sync(gridSection);\n append(section, sectionElems);\n };\n const removeSection = sectionName => {\n child(table, sectionName).each(remove$6);\n };\n const renderOrRemoveSection = (gridSection, sectionName) => {\n if (gridSection.length > 0) {\n renderSection(gridSection, sectionName);\n } else {\n removeSection(sectionName);\n }\n };\n const headSection = [];\n const bodySection = [];\n const footSection = [];\n const columnGroupsSection = [];\n each$2(grid, row => {\n switch (row.section) {\n case 'thead':\n headSection.push(row);\n break;\n case 'tbody':\n bodySection.push(row);\n break;\n case 'tfoot':\n footSection.push(row);\n break;\n case 'colgroup':\n columnGroupsSection.push(row);\n break;\n }\n });\n renderOrRemoveSection(columnGroupsSection, 'colgroup');\n renderOrRemoveSection(headSection, 'thead');\n renderOrRemoveSection(bodySection, 'tbody');\n renderOrRemoveSection(footSection, 'tfoot');\n return {\n newRows,\n newCells\n };\n };\n const copy = grid => map$1(grid, row => {\n const tr = shallow(row.element);\n each$2(row.cells, cell => {\n const clonedCell = deep(cell.element);\n setIfNot(clonedCell, 'colspan', cell.colspan, 1);\n setIfNot(clonedCell, 'rowspan', cell.rowspan, 1);\n append$1(tr, clonedCell);\n });\n return tr;\n });\n\n const getColumn = (grid, index) => {\n return map$1(grid, row => {\n return getCell(row, index);\n });\n };\n const getRow = (grid, index) => {\n return grid[index];\n };\n const findDiff = (xs, comp) => {\n if (xs.length === 0) {\n return 0;\n }\n const first = xs[0];\n const index = findIndex(xs, x => {\n return !comp(first.element, x.element);\n });\n return index.getOr(xs.length);\n };\n const subgrid = (grid, row, column, comparator) => {\n const gridRow = getRow(grid, row);\n const isColRow = gridRow.section === 'colgroup';\n const colspan = findDiff(gridRow.cells.slice(column), comparator);\n const rowspan = isColRow ? 1 : findDiff(getColumn(grid.slice(row), column), comparator);\n return {\n colspan,\n rowspan\n };\n };\n\n const toDetails = (grid, comparator) => {\n const seen = map$1(grid, row => map$1(row.cells, never));\n const updateSeen = (rowIndex, columnIndex, rowspan, colspan) => {\n for (let row = rowIndex; row < rowIndex + rowspan; row++) {\n for (let column = columnIndex; column < columnIndex + colspan; column++) {\n seen[row][column] = true;\n }\n }\n };\n return map$1(grid, (row, rowIndex) => {\n const details = bind$2(row.cells, (cell, columnIndex) => {\n if (seen[rowIndex][columnIndex] === false) {\n const result = subgrid(grid, rowIndex, columnIndex, comparator);\n updateSeen(rowIndex, columnIndex, result.rowspan, result.colspan);\n return [detailnew(cell.element, result.rowspan, result.colspan, cell.isNew)];\n } else {\n return [];\n }\n });\n return rowdetailnew(row.element, details, row.section, row.isNew);\n });\n };\n const toGrid = (warehouse, generators, isNew) => {\n const grid = [];\n each$2(warehouse.colgroups, colgroup => {\n const colgroupCols = [];\n for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n const element = Warehouse.getColumnAt(warehouse, columnIndex).map(column => elementnew(column.element, isNew, false)).getOrThunk(() => elementnew(generators.colGap(), true, false));\n colgroupCols.push(element);\n }\n grid.push(rowcells(colgroup.element, colgroupCols, 'colgroup', isNew));\n });\n for (let rowIndex = 0; rowIndex < warehouse.grid.rows; rowIndex++) {\n const rowCells = [];\n for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n const element = Warehouse.getAt(warehouse, rowIndex, columnIndex).map(item => elementnew(item.element, isNew, item.isLocked)).getOrThunk(() => elementnew(generators.gap(), true, false));\n rowCells.push(element);\n }\n const rowDetail = warehouse.all[rowIndex];\n const row = rowcells(rowDetail.element, rowCells, rowDetail.section, isNew);\n grid.push(row);\n }\n return grid;\n };\n\n const fromWarehouse = (warehouse, generators) => toGrid(warehouse, generators, false);\n const toDetailList = grid => toDetails(grid, eq$1);\n const findInWarehouse = (warehouse, element) => findMap(warehouse.all, r => find$1(r.cells, e => eq$1(element, e.element)));\n const extractCells = (warehouse, target, predicate) => {\n const details = map$1(target.selection, cell$1 => {\n return cell(cell$1).bind(lc => findInWarehouse(warehouse, lc)).filter(predicate);\n });\n const cells = cat(details);\n return someIf(cells.length > 0, cells);\n };\n const run = (operation, extract, adjustment, postAction, genWrappers) => (table, target, generators, behaviours) => {\n const warehouse = Warehouse.fromTable(table);\n const tableSection = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.section).getOrThunk(TableSection.fallback);\n const output = extract(warehouse, target).map(info => {\n const model = fromWarehouse(warehouse, generators);\n const result = operation(model, info, eq$1, genWrappers(generators), tableSection);\n const lockedColumns = getLockedColumnsFromGrid(result.grid);\n const grid = toDetailList(result.grid);\n return {\n info,\n grid,\n cursor: result.cursor,\n lockedColumns\n };\n });\n return output.bind(out => {\n const newElements = render$1(table, out.grid);\n const tableSizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.sizing).getOrThunk(() => TableSize.getTableSize(table));\n const resizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.resize).getOrThunk(preserveTable);\n adjustment(table, out.grid, out.info, {\n sizing: tableSizing,\n resize: resizing,\n section: tableSection\n });\n postAction(table);\n remove$7(table, LOCKED_COL_ATTR);\n if (out.lockedColumns.length > 0) {\n set$2(table, LOCKED_COL_ATTR, out.lockedColumns.join(','));\n }\n return Optional.some({\n cursor: out.cursor,\n newRows: newElements.newRows,\n newCells: newElements.newCells\n });\n });\n };\n const onPaste = (warehouse, target) => cell(target.element).bind(cell => findInWarehouse(warehouse, cell).map(details => {\n const value = {\n ...details,\n generators: target.generators,\n clipboard: target.clipboard\n };\n return value;\n }));\n const onPasteByEditor = (warehouse, target) => extractCells(warehouse, target, always).map(cells => ({\n cells,\n generators: target.generators,\n clipboard: target.clipboard\n }));\n const onMergable = (_warehouse, target) => target.mergable;\n const onUnmergable = (_warehouse, target) => target.unmergable;\n const onCells = (warehouse, target) => extractCells(warehouse, target, always);\n const onUnlockedCells = (warehouse, target) => extractCells(warehouse, target, detail => !detail.isLocked);\n const isUnlockedTableCell = (warehouse, cell) => findInWarehouse(warehouse, cell).exists(detail => !detail.isLocked);\n const allUnlocked = (warehouse, cells) => forall(cells, cell => isUnlockedTableCell(warehouse, cell));\n const onUnlockedMergable = (warehouse, target) => onMergable(warehouse, target).filter(mergeable => allUnlocked(warehouse, mergeable.cells));\n const onUnlockedUnmergable = (warehouse, target) => onUnmergable(warehouse, target).filter(cells => allUnlocked(warehouse, cells));\n\n const merge$2 = (grid, bounds, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n if (rows.length === 0) {\n return grid;\n }\n for (let i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (let j = bounds.startCol; j <= bounds.finishCol; j++) {\n const row = rows[i];\n const isLocked = getCell(row, j).isLocked;\n mutateCell(row, j, elementnew(substitution(), false, isLocked));\n }\n }\n return grid;\n };\n const unmerge = (grid, target, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n let first = true;\n for (let i = 0; i < rows.length; i++) {\n for (let j = 0; j < cellLength(rows[0]); j++) {\n const row = rows[i];\n const currentCell = getCell(row, j);\n const currentCellElm = currentCell.element;\n const isToReplace = comparator(currentCellElm, target);\n if (isToReplace && !first) {\n mutateCell(row, j, elementnew(substitution(), true, currentCell.isLocked));\n } else if (isToReplace) {\n first = false;\n }\n }\n }\n return grid;\n };\n const uniqueCells = (row, comparator) => {\n return foldl(row, (rest, cell) => {\n return exists(rest, currentCell => {\n return comparator(currentCell.element, cell.element);\n }) ? rest : rest.concat([cell]);\n }, []);\n };\n const splitCols = (grid, index, comparator, substitution) => {\n if (index > 0 && index < grid[0].cells.length) {\n each$2(grid, row => {\n const prevCell = row.cells[index - 1];\n let offset = 0;\n const substitute = substitution();\n while (row.cells.length > index + offset && comparator(prevCell.element, row.cells[index + offset].element)) {\n mutateCell(row, index + offset, elementnew(substitute, true, row.cells[index + offset].isLocked));\n offset++;\n }\n });\n }\n return grid;\n };\n const splitRows = (grid, index, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n if (index > 0 && index < rows.length) {\n const rowPrevCells = rows[index - 1].cells;\n const cells = uniqueCells(rowPrevCells, comparator);\n each$2(cells, cell => {\n let replacement = Optional.none();\n for (let i = index; i < rows.length; i++) {\n for (let j = 0; j < cellLength(rows[0]); j++) {\n const row = rows[i];\n const current = getCell(row, j);\n const isToReplace = comparator(current.element, cell.element);\n if (isToReplace) {\n if (replacement.isNone()) {\n replacement = Optional.some(substitution());\n }\n replacement.each(sub => {\n mutateCell(row, j, elementnew(sub, true, current.isLocked));\n });\n }\n }\n }\n });\n }\n return grid;\n };\n\n const value$1 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply,\n orThunk: apply,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error(err), value$1);\n const Result = {\n value: value$1,\n error,\n fromOption\n };\n\n const measure = (startAddress, gridA, gridB) => {\n if (startAddress.row >= gridA.length || startAddress.column > cellLength(gridA[0])) {\n return Result.error('invalid start address out of table bounds, row: ' + startAddress.row + ', column: ' + startAddress.column);\n }\n const rowRemainder = gridA.slice(startAddress.row);\n const colRemainder = rowRemainder[0].cells.slice(startAddress.column);\n const colRequired = cellLength(gridB[0]);\n const rowRequired = gridB.length;\n return Result.value({\n rowDelta: rowRemainder.length - rowRequired,\n colDelta: colRemainder.length - colRequired\n });\n };\n const measureWidth = (gridA, gridB) => {\n const colLengthA = cellLength(gridA[0]);\n const colLengthB = cellLength(gridB[0]);\n return {\n rowDelta: 0,\n colDelta: colLengthA - colLengthB\n };\n };\n const measureHeight = (gridA, gridB) => {\n const rowLengthA = gridA.length;\n const rowLengthB = gridB.length;\n return {\n rowDelta: rowLengthA - rowLengthB,\n colDelta: 0\n };\n };\n const generateElements = (amount, row, generators, isLocked) => {\n const generator = row.section === 'colgroup' ? generators.col : generators.cell;\n return range$1(amount, idx => elementnew(generator(), true, isLocked(idx)));\n };\n const rowFill = (grid, amount, generators, lockedColumns) => {\n const exampleRow = grid[grid.length - 1];\n return grid.concat(range$1(amount, () => {\n const generator = exampleRow.section === 'colgroup' ? generators.colgroup : generators.row;\n const row = clone(exampleRow, generator, identity);\n const elements = generateElements(row.cells.length, row, generators, idx => has$1(lockedColumns, idx.toString()));\n return setCells(row, elements);\n }));\n };\n const colFill = (grid, amount, generators, startIndex) => map$1(grid, row => {\n const newChildren = generateElements(amount, row, generators, never);\n return addCells(row, startIndex, newChildren);\n });\n const lockedColFill = (grid, generators, lockedColumns) => map$1(grid, row => {\n return foldl(lockedColumns, (acc, colNum) => {\n const newChild = generateElements(1, row, generators, always)[0];\n return addCell(acc, colNum, newChild);\n }, row);\n });\n const tailor = (gridA, delta, generators) => {\n const fillCols = delta.colDelta < 0 ? colFill : identity;\n const fillRows = delta.rowDelta < 0 ? rowFill : identity;\n const lockedColumns = getLockedColumnsFromGrid(gridA);\n const gridWidth = cellLength(gridA[0]);\n const isLastColLocked = exists(lockedColumns, locked => locked === gridWidth - 1);\n const modifiedCols = fillCols(gridA, Math.abs(delta.colDelta), generators, isLastColLocked ? gridWidth - 1 : gridWidth);\n const newLockedColumns = getLockedColumnsFromGrid(modifiedCols);\n return fillRows(modifiedCols, Math.abs(delta.rowDelta), generators, mapToObject(newLockedColumns, always));\n };\n\n const isSpanning = (grid, row, col, comparator) => {\n const candidate = getCell(grid[row], col);\n const matching = curry(comparator, candidate.element);\n const currentRow = grid[row];\n return grid.length > 1 && cellLength(currentRow) > 1 && (col > 0 && matching(getCellElement(currentRow, col - 1)) || col < currentRow.cells.length - 1 && matching(getCellElement(currentRow, col + 1)) || row > 0 && matching(getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(getCellElement(grid[row + 1], col)));\n };\n const mergeTables = (startAddress, gridA, gridBRows, generator, comparator, lockedColumns) => {\n const startRow = startAddress.row;\n const startCol = startAddress.column;\n const mergeHeight = gridBRows.length;\n const mergeWidth = cellLength(gridBRows[0]);\n const endRow = startRow + mergeHeight;\n const endCol = startCol + mergeWidth + lockedColumns.length;\n const lockedColumnObj = mapToObject(lockedColumns, always);\n for (let r = startRow; r < endRow; r++) {\n let skippedCol = 0;\n for (let c = startCol; c < endCol; c++) {\n if (lockedColumnObj[c]) {\n skippedCol++;\n continue;\n }\n if (isSpanning(gridA, r, c, comparator)) {\n unmerge(gridA, getCellElement(gridA[r], c), comparator, generator.cell);\n }\n const gridBColIndex = c - startCol - skippedCol;\n const newCell = getCell(gridBRows[r - startRow], gridBColIndex);\n const newCellElm = newCell.element;\n const replacement = generator.replace(newCellElm);\n mutateCell(gridA[r], c, elementnew(replacement, true, newCell.isLocked));\n }\n }\n return gridA;\n };\n const getValidStartAddress = (currentStartAddress, grid, lockedColumns) => {\n const gridColLength = cellLength(grid[0]);\n const adjustedRowAddress = extractGridDetails(grid).cols.length + currentStartAddress.row;\n const possibleColAddresses = range$1(gridColLength - currentStartAddress.column, num => num + currentStartAddress.column);\n const validColAddress = find$1(possibleColAddresses, num => forall(lockedColumns, col => col !== num)).getOr(gridColLength - 1);\n return {\n row: adjustedRowAddress,\n column: validColAddress\n };\n };\n const getLockedColumnsWithinBounds = (startAddress, rows, lockedColumns) => filter$2(lockedColumns, colNum => colNum >= startAddress.column && colNum <= cellLength(rows[0]) + startAddress.column);\n const merge$1 = (startAddress, gridA, gridB, generator, comparator) => {\n const lockedColumns = getLockedColumnsFromGrid(gridA);\n const validStartAddress = getValidStartAddress(startAddress, gridA, lockedColumns);\n const gridBRows = extractGridDetails(gridB).rows;\n const lockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, lockedColumns);\n const result = measure(validStartAddress, gridA, gridBRows);\n return result.map(diff => {\n const delta = {\n ...diff,\n colDelta: diff.colDelta - lockedColumnsWithinBounds.length\n };\n const fittedGrid = tailor(gridA, delta, generator);\n const newLockedColumns = getLockedColumnsFromGrid(fittedGrid);\n const newLockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, newLockedColumns);\n return mergeTables(validStartAddress, fittedGrid, gridBRows, generator, comparator, newLockedColumnsWithinBounds);\n });\n };\n const insertCols = (index, gridA, gridB, generator, comparator) => {\n splitCols(gridA, index, comparator, generator.cell);\n const delta = measureHeight(gridB, gridA);\n const fittedNewGrid = tailor(gridB, delta, generator);\n const secondDelta = measureHeight(gridA, fittedNewGrid);\n const fittedOldGrid = tailor(gridA, secondDelta, generator);\n return map$1(fittedOldGrid, (gridRow, i) => {\n return addCells(gridRow, index, fittedNewGrid[i].cells);\n });\n };\n const insertRows = (index, gridA, gridB, generator, comparator) => {\n splitRows(gridA, index, comparator, generator.cell);\n const locked = getLockedColumnsFromGrid(gridA);\n const diff = measureWidth(gridA, gridB);\n const delta = {\n ...diff,\n colDelta: diff.colDelta - locked.length\n };\n const fittedOldGrid = tailor(gridA, delta, generator);\n const {\n cols: oldCols,\n rows: oldRows\n } = extractGridDetails(fittedOldGrid);\n const newLocked = getLockedColumnsFromGrid(fittedOldGrid);\n const secondDiff = measureWidth(gridB, gridA);\n const secondDelta = {\n ...secondDiff,\n colDelta: secondDiff.colDelta + newLocked.length\n };\n const fittedGridB = lockedColFill(gridB, generator, newLocked);\n const fittedNewGrid = tailor(fittedGridB, secondDelta, generator);\n return [\n ...oldCols,\n ...oldRows.slice(0, index),\n ...fittedNewGrid,\n ...oldRows.slice(index, oldRows.length)\n ];\n };\n\n const cloneRow = (row, cloneCell, comparator, substitution) => clone(row, elem => substitution(elem, comparator), cloneCell);\n const insertRowAt = (grid, index, example, comparator, substitution) => {\n const {rows, cols} = extractGridDetails(grid);\n const before = rows.slice(0, index);\n const after = rows.slice(index);\n const newRow = cloneRow(rows[example], (ex, c) => {\n const withinSpan = index > 0 && index < rows.length && comparator(getCellElement(rows[index - 1], c), getCellElement(rows[index], c));\n const ret = withinSpan ? getCell(rows[index], c) : elementnew(substitution(ex.element, comparator), true, ex.isLocked);\n return ret;\n }, comparator, substitution);\n return [\n ...cols,\n ...before,\n newRow,\n ...after\n ];\n };\n const getElementFor = (row, column, section, withinSpan, example, comparator, substitution) => {\n if (section === 'colgroup' || !withinSpan) {\n const cell = getCell(row, example);\n return elementnew(substitution(cell.element, comparator), true, false);\n } else {\n return getCell(row, column);\n }\n };\n const insertColumnAt = (grid, index, example, comparator, substitution) => map$1(grid, row => {\n const withinSpan = index > 0 && index < cellLength(row) && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n const sub = getElementFor(row, index, row.section, withinSpan, example, comparator, substitution);\n return addCell(row, index, sub);\n });\n const deleteColumnsAt = (grid, columns) => bind$2(grid, row => {\n const existingCells = row.cells;\n const cells = foldr(columns, (acc, column) => column >= 0 && column < acc.length ? acc.slice(0, column).concat(acc.slice(column + 1)) : acc, existingCells);\n return cells.length > 0 ? [rowcells(row.element, cells, row.section, row.isNew)] : [];\n });\n const deleteRowsAt = (grid, start, finish) => {\n const {rows, cols} = extractGridDetails(grid);\n return [\n ...cols,\n ...rows.slice(0, start),\n ...rows.slice(finish + 1)\n ];\n };\n\n const notInStartRow = (grid, rowIndex, colIndex, comparator) => getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator(getCellElement(grid[rowIndex - 1], colIndex), getCellElement(grid[rowIndex], colIndex)));\n const notInStartColumn = (row, index, comparator) => index > 0 && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n const isDuplicatedCell = (grid, rowIndex, colIndex, comparator) => notInStartRow(grid, rowIndex, colIndex, comparator) || notInStartColumn(grid[rowIndex], colIndex, comparator);\n const rowReplacerPredicate = (targetRow, columnHeaders) => {\n const entireTableIsHeader = forall(columnHeaders, identity) && isHeaderCells(targetRow.cells);\n return entireTableIsHeader ? always : (cell, _rowIndex, colIndex) => {\n const type = name(cell.element);\n return !(type === 'th' && columnHeaders[colIndex]);\n };\n };\n const columnReplacePredicate = (targetColumn, rowHeaders) => {\n const entireTableIsHeader = forall(rowHeaders, identity) && isHeaderCells(targetColumn);\n return entireTableIsHeader ? always : (cell, rowIndex, _colIndex) => {\n const type = name(cell.element);\n return !(type === 'th' && rowHeaders[rowIndex]);\n };\n };\n const determineScope = (applyScope, cell, newScope, isInHeader) => {\n const hasSpan = scope => scope === 'row' ? hasRowspan(cell) : hasColspan(cell);\n const getScope = scope => hasSpan(scope) ? `${ scope }group` : scope;\n if (applyScope) {\n return isHeaderCell(cell) ? getScope(newScope) : null;\n } else if (isInHeader && isHeaderCell(cell)) {\n const oppositeScope = newScope === 'row' ? 'col' : 'row';\n return getScope(oppositeScope);\n } else {\n return null;\n }\n };\n const rowScopeGenerator = (applyScope, columnHeaders) => (cell, rowIndex, columnIndex) => Optional.some(determineScope(applyScope, cell.element, 'col', columnHeaders[columnIndex]));\n const columnScopeGenerator = (applyScope, rowHeaders) => (cell, rowIndex) => Optional.some(determineScope(applyScope, cell.element, 'row', rowHeaders[rowIndex]));\n const replace = (cell, comparator, substitute) => elementnew(substitute(cell.element, comparator), true, cell.isLocked);\n const replaceIn = (grid, targets, comparator, substitute, replacer, genScope, shouldReplace) => {\n const isTarget = cell => {\n return exists(targets, target => {\n return comparator(cell.element, target.element);\n });\n };\n return map$1(grid, (row, rowIndex) => {\n return mapCells(row, (cell, colIndex) => {\n if (isTarget(cell)) {\n const newCell = shouldReplace(cell, rowIndex, colIndex) ? replacer(cell, comparator, substitute) : cell;\n genScope(newCell, rowIndex, colIndex).each(scope => {\n setOptions(newCell.element, { scope: Optional.from(scope) });\n });\n return newCell;\n } else {\n return cell;\n }\n });\n });\n };\n const getColumnCells = (rows, columnIndex, comparator) => bind$2(rows, (row, i) => {\n return isDuplicatedCell(rows, i, columnIndex, comparator) ? [] : [getCell(row, columnIndex)];\n });\n const getRowCells = (rows, rowIndex, comparator) => {\n const targetRow = rows[rowIndex];\n return bind$2(targetRow.cells, (item, i) => {\n return isDuplicatedCell(rows, rowIndex, i, comparator) ? [] : [item];\n });\n };\n const replaceColumns = (grid, indexes, applyScope, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n const targets = bind$2(indexes, index => getColumnCells(rows, index, comparator));\n const rowHeaders = map$1(rows, row => isHeaderCells(row.cells));\n const shouldReplaceCell = columnReplacePredicate(targets, rowHeaders);\n const scopeGenerator = columnScopeGenerator(applyScope, rowHeaders);\n return replaceIn(grid, targets, comparator, substitution, replace, scopeGenerator, shouldReplaceCell);\n };\n const replaceRows = (grid, indexes, section, applyScope, comparator, substitution, tableSection) => {\n const {cols, rows} = extractGridDetails(grid);\n const targetRow = rows[indexes[0]];\n const targets = bind$2(indexes, index => getRowCells(rows, index, comparator));\n const columnHeaders = map$1(targetRow.cells, (_cell, index) => isHeaderCells(getColumnCells(rows, index, comparator)));\n const newRows = [...rows];\n each$2(indexes, index => {\n newRows[index] = tableSection.transformRow(rows[index], section);\n });\n const newGrid = [\n ...cols,\n ...newRows\n ];\n const shouldReplaceCell = rowReplacerPredicate(targetRow, columnHeaders);\n const scopeGenerator = rowScopeGenerator(applyScope, columnHeaders);\n return replaceIn(newGrid, targets, comparator, substitution, tableSection.transformCell, scopeGenerator, shouldReplaceCell);\n };\n const replaceCells = (grid, details, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n const targetCells = map$1(details, detail => getCell(rows[detail.row], detail.column));\n return replaceIn(grid, targetCells, comparator, substitution, replace, Optional.none, always);\n };\n\n const generate = cases => {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$2(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate };\n\n const adt$6 = Adt.generate([\n { none: [] },\n { only: ['index'] },\n {\n left: [\n 'index',\n 'next'\n ]\n },\n {\n middle: [\n 'prev',\n 'index',\n 'next'\n ]\n },\n {\n right: [\n 'prev',\n 'index'\n ]\n }\n ]);\n const ColumnContext = { ...adt$6 };\n\n const neighbours = (input, index) => {\n if (input.length === 0) {\n return ColumnContext.none();\n }\n if (input.length === 1) {\n return ColumnContext.only(0);\n }\n if (index === 0) {\n return ColumnContext.left(0, 1);\n }\n if (index === input.length - 1) {\n return ColumnContext.right(index - 1, index);\n }\n if (index > 0 && index < input.length - 1) {\n return ColumnContext.middle(index - 1, index, index + 1);\n }\n return ColumnContext.none();\n };\n const determine = (input, column, step, tableSize, resize) => {\n const result = input.slice(0);\n const context = neighbours(input, column);\n const onNone = constant(map$1(result, constant(0)));\n const onOnly = index => tableSize.singleColumnWidth(result[index], step);\n const onLeft = (index, next) => resize.calcLeftEdgeDeltas(result, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n const onMiddle = (prev, index, next) => resize.calcMiddleDeltas(result, prev, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n const onRight = (prev, index) => resize.calcRightEdgeDeltas(result, prev, index, step, tableSize.minCellWidth(), tableSize.isRelative);\n return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);\n };\n\n const total = (start, end, measures) => {\n let r = 0;\n for (let i = start; i < end; i++) {\n r += measures[i] !== undefined ? measures[i] : 0;\n }\n return r;\n };\n const recalculateWidthForCells = (warehouse, widths) => {\n const all = Warehouse.justCells(warehouse);\n return map$1(all, cell => {\n const width = total(cell.column, cell.column + cell.colspan, widths);\n return {\n element: cell.element,\n width,\n colspan: cell.colspan\n };\n });\n };\n const recalculateWidthForColumns = (warehouse, widths) => {\n const groups = Warehouse.justColumns(warehouse);\n return map$1(groups, (column, index) => ({\n element: column.element,\n width: widths[index],\n colspan: column.colspan\n }));\n };\n const matchRowHeight = (warehouse, heights) => {\n return map$1(warehouse.all, (row, i) => {\n return {\n element: row.element,\n height: heights[i]\n };\n });\n };\n\n const sumUp = newSize => foldr(newSize, (b, a) => b + a, 0);\n const recalculate = (warehouse, widths) => {\n if (Warehouse.hasColumns(warehouse)) {\n return recalculateWidthForColumns(warehouse, widths);\n } else {\n return recalculateWidthForCells(warehouse, widths);\n }\n };\n const recalculateAndApply = (warehouse, widths, tableSize) => {\n const newSizes = recalculate(warehouse, widths);\n each$2(newSizes, cell => {\n tableSize.setElementWidth(cell.element, cell.width);\n });\n };\n const adjustWidth = (table, delta, index, resizing, tableSize) => {\n const warehouse = Warehouse.fromTable(table);\n const step = tableSize.getCellDelta(delta);\n const widths = tableSize.getWidths(warehouse, tableSize);\n const isLastColumn = index === warehouse.grid.columns - 1;\n const clampedStep = resizing.clampTableDelta(widths, index, step, tableSize.minCellWidth(), isLastColumn);\n const deltas = determine(widths, index, clampedStep, tableSize, resizing);\n const newWidths = map$1(deltas, (dx, i) => dx + widths[i]);\n recalculateAndApply(warehouse, newWidths, tableSize);\n resizing.resizeTable(tableSize.adjustTableWidth, clampedStep, isLastColumn);\n };\n const adjustHeight = (table, delta, index) => {\n const warehouse = Warehouse.fromTable(table);\n const heights = getPixelHeights(warehouse, table);\n const newHeights = map$1(heights, (dy, i) => index === i ? Math.max(delta + dy, minHeight()) : dy);\n const newRowSizes = matchRowHeight(warehouse, newHeights);\n each$2(newRowSizes, row => {\n setHeight(row.element, row.height);\n });\n each$2(Warehouse.justCells(warehouse), cell => {\n removeHeight(cell.element);\n });\n const total = sumUp(newHeights);\n setHeight(table, total);\n };\n const adjustAndRedistributeWidths$1 = (_table, list, details, tableSize, resizeBehaviour) => {\n const warehouse = Warehouse.generate(list);\n const sizes = tableSize.getWidths(warehouse, tableSize);\n const tablePixelWidth = tableSize.pixelWidth();\n const {newSizes, delta} = resizeBehaviour.calcRedestributedWidths(sizes, tablePixelWidth, details.pixelDelta, tableSize.isRelative);\n recalculateAndApply(warehouse, newSizes, tableSize);\n tableSize.adjustTableWidth(delta);\n };\n const adjustWidthTo = (_table, list, _info, tableSize) => {\n const warehouse = Warehouse.generate(list);\n const widths = tableSize.getWidths(warehouse, tableSize);\n recalculateAndApply(warehouse, widths, tableSize);\n };\n\n const uniqueColumns = details => {\n const uniqueCheck = (rest, detail) => {\n const columnExists = exists(rest, currentDetail => currentDetail.column === detail.column);\n return columnExists ? rest : rest.concat([detail]);\n };\n return foldl(details, uniqueCheck, []).sort((detailA, detailB) => detailA.column - detailB.column);\n };\n\n const isCol = isTag('col');\n const isColgroup = isTag('colgroup');\n const isRow$1 = element => name(element) === 'tr' || isColgroup(element);\n const elementToData = element => {\n const colspan = getAttrValue(element, 'colspan', 1);\n const rowspan = getAttrValue(element, 'rowspan', 1);\n return {\n element,\n colspan,\n rowspan\n };\n };\n const modification = (generators, toData = elementToData) => {\n const nuCell = data => isCol(data.element) ? generators.col(data) : generators.cell(data);\n const nuRow = data => isColgroup(data.element) ? generators.colgroup(data) : generators.row(data);\n const add = element => {\n if (isRow$1(element)) {\n return nuRow({ element });\n } else {\n const cell = element;\n const replacement = nuCell(toData(cell));\n recent = Optional.some({\n item: cell,\n replacement\n });\n return replacement;\n }\n };\n let recent = Optional.none();\n const getOrInit = (element, comparator) => {\n return recent.fold(() => {\n return add(element);\n }, p => {\n return comparator(element, p.item) ? p.replacement : add(element);\n });\n };\n return { getOrInit };\n };\n const transform$1 = tag => {\n return generators => {\n const list = [];\n const find = (element, comparator) => {\n return find$1(list, x => {\n return comparator(x.item, element);\n });\n };\n const makeNew = element => {\n const attrs = tag === 'td' ? { scope: null } : {};\n const cell = generators.replace(element, tag, attrs);\n list.push({\n item: element,\n sub: cell\n });\n return cell;\n };\n const replaceOrInit = (element, comparator) => {\n if (isRow$1(element) || isCol(element)) {\n return element;\n } else {\n const cell = element;\n return find(cell, comparator).fold(() => {\n return makeNew(cell);\n }, p => {\n return comparator(element, p.item) ? p.sub : makeNew(cell);\n });\n }\n };\n return { replaceOrInit };\n };\n };\n const getScopeAttribute = cell => getOpt(cell, 'scope').map(attribute => attribute.substr(0, 3));\n const merging = generators => {\n const unmerge = cell => {\n const scope = getScopeAttribute(cell);\n scope.each(attribute => set$2(cell, 'scope', attribute));\n return () => {\n const raw = generators.cell({\n element: cell,\n colspan: 1,\n rowspan: 1\n });\n remove$5(raw, 'width');\n remove$5(cell, 'width');\n scope.each(attribute => set$2(raw, 'scope', attribute));\n return raw;\n };\n };\n const merge = cells => {\n const getScopeProperty = () => {\n const stringAttributes = cat(map$1(cells, getScopeAttribute));\n if (stringAttributes.length === 0) {\n return Optional.none();\n } else {\n const baseScope = stringAttributes[0];\n const scopes = [\n 'row',\n 'col'\n ];\n const isMixed = exists(stringAttributes, attribute => {\n return attribute !== baseScope && contains$2(scopes, attribute);\n });\n return isMixed ? Optional.none() : Optional.from(baseScope);\n }\n };\n remove$5(cells[0], 'width');\n getScopeProperty().fold(() => remove$7(cells[0], 'scope'), attribute => set$2(cells[0], 'scope', attribute + 'group'));\n return constant(cells[0]);\n };\n return {\n unmerge,\n merge\n };\n };\n const Generators = {\n modification,\n transform: transform$1,\n merging\n };\n\n const blockList = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'table',\n 'thead',\n 'tfoot',\n 'tbody',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n const isList$1 = (universe, item) => {\n const tagName = universe.property().name(item);\n return contains$2([\n 'ol',\n 'ul'\n ], tagName);\n };\n const isBlock$1 = (universe, item) => {\n const tagName = universe.property().name(item);\n return contains$2(blockList, tagName);\n };\n const isEmptyTag$1 = (universe, item) => {\n return contains$2([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], universe.property().name(item));\n };\n\n const universe$1 = DomUniverse();\n const isBlock = element => {\n return isBlock$1(universe$1, element);\n };\n const isList = element => {\n return isList$1(universe$1, element);\n };\n const isEmptyTag = element => {\n return isEmptyTag$1(universe$1, element);\n };\n\n const merge = cells => {\n const isBr = isTag('br');\n const advancedBr = children => {\n return forall(children, c => {\n return isBr(c) || isText(c) && get$6(c).trim().length === 0;\n });\n };\n const isListItem = el => {\n return name(el) === 'li' || ancestor$2(el, isList).isSome();\n };\n const siblingIsBlock = el => {\n return nextSibling(el).map(rightSibling => {\n if (isBlock(rightSibling)) {\n return true;\n }\n if (isEmptyTag(rightSibling)) {\n return name(rightSibling) === 'img' ? false : true;\n }\n return false;\n }).getOr(false);\n };\n const markCell = cell => {\n return last$1(cell).bind(rightEdge => {\n const rightSiblingIsBlock = siblingIsBlock(rightEdge);\n return parent(rightEdge).map(parent => {\n return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || isBlock(parent) && !eq$1(cell, parent) ? [] : [SugarElement.fromTag('br')];\n });\n }).getOr([]);\n };\n const markContent = () => {\n const content = bind$2(cells, cell => {\n const children = children$2(cell);\n return advancedBr(children) ? [] : children.concat(markCell(cell));\n });\n return content.length === 0 ? [SugarElement.fromTag('br')] : content;\n };\n const contents = markContent();\n empty(cells[0]);\n append(cells[0], contents);\n };\n\n const isEditable = elem => isEditable$1(elem, true);\n const prune = table => {\n const cells = cells$1(table);\n if (cells.length === 0) {\n remove$6(table);\n }\n };\n const outcome = (grid, cursor) => ({\n grid,\n cursor\n });\n const findEditableCursorPosition = rows => findMap(rows, row => findMap(row.cells, cell => {\n const elem = cell.element;\n return someIf(isEditable(elem), elem);\n }));\n const elementFromGrid = (grid, row, column) => {\n var _a, _b;\n const rows = extractGridDetails(grid).rows;\n return Optional.from((_b = (_a = rows[row]) === null || _a === void 0 ? void 0 : _a.cells[column]) === null || _b === void 0 ? void 0 : _b.element).filter(isEditable).orThunk(() => findEditableCursorPosition(rows));\n };\n const bundle = (grid, row, column) => {\n const cursorElement = elementFromGrid(grid, row, column);\n return outcome(grid, cursorElement);\n };\n const uniqueRows = details => {\n const rowCompilation = (rest, detail) => {\n const rowExists = exists(rest, currentDetail => currentDetail.row === detail.row);\n return rowExists ? rest : rest.concat([detail]);\n };\n return foldl(details, rowCompilation, []).sort((detailA, detailB) => detailA.row - detailB.row);\n };\n const opInsertRowsBefore = (grid, details, comparator, genWrappers) => {\n const targetIndex = details[0].row;\n const rows = uniqueRows(details);\n const newGrid = foldr(rows, (acc, row) => {\n const newG = insertRowAt(acc.grid, targetIndex, row.row + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid,\n delta: 0\n }).grid;\n return bundle(newGrid, targetIndex, details[0].column);\n };\n const opInsertRowsAfter = (grid, details, comparator, genWrappers) => {\n const rows = uniqueRows(details);\n const target = rows[rows.length - 1];\n const targetIndex = target.row + target.rowspan;\n const newGrid = foldr(rows, (newG, row) => {\n return insertRowAt(newG, targetIndex, row.row, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column);\n };\n const opInsertColumnsBefore = (grid, extractDetail, comparator, genWrappers) => {\n const details = extractDetail.details;\n const columns = uniqueColumns(details);\n const targetIndex = columns[0].column;\n const newGrid = foldr(columns, (acc, col) => {\n const newG = insertColumnAt(acc.grid, targetIndex, col.column + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid,\n delta: 0\n }).grid;\n return bundle(newGrid, details[0].row, targetIndex);\n };\n const opInsertColumnsAfter = (grid, extractDetail, comparator, genWrappers) => {\n const details = extractDetail.details;\n const target = details[details.length - 1];\n const targetIndex = target.column + target.colspan;\n const columns = uniqueColumns(details);\n const newGrid = foldr(columns, (newG, col) => {\n return insertColumnAt(newG, targetIndex, col.column, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row, targetIndex);\n };\n const opMakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => {\n const columns = uniqueColumns(details);\n const columnIndexes = map$1(columns, detail => detail.column);\n const newGrid = replaceColumns(initialGrid, columnIndexes, true, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opMakeCellsHeader = (initialGrid, details, comparator, genWrappers) => {\n const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opUnmakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => {\n const columns = uniqueColumns(details);\n const columnIndexes = map$1(columns, detail => detail.column);\n const newGrid = replaceColumns(initialGrid, columnIndexes, false, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opUnmakeCellsHeader = (initialGrid, details, comparator, genWrappers) => {\n const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const makeRowsSection = (section, applyScope) => (initialGrid, details, comparator, genWrappers, tableSection) => {\n const rows = uniqueRows(details);\n const rowIndexes = map$1(rows, detail => detail.row);\n const newGrid = replaceRows(initialGrid, rowIndexes, section, applyScope, comparator, genWrappers.replaceOrInit, tableSection);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opMakeRowsHeader = makeRowsSection('thead', true);\n const opMakeRowsBody = makeRowsSection('tbody', false);\n const opMakeRowsFooter = makeRowsSection('tfoot', false);\n const opEraseColumns = (grid, extractDetail, _comparator, _genWrappers) => {\n const columns = uniqueColumns(extractDetail.details);\n const newGrid = deleteColumnsAt(grid, map$1(columns, column => column.column));\n const maxColIndex = newGrid.length > 0 ? newGrid[0].cells.length - 1 : 0;\n return bundle(newGrid, columns[0].row, Math.min(columns[0].column, maxColIndex));\n };\n const opEraseRows = (grid, details, _comparator, _genWrappers) => {\n const rows = uniqueRows(details);\n const newGrid = deleteRowsAt(grid, rows[0].row, rows[rows.length - 1].row);\n const maxRowIndex = Math.max(extractGridDetails(newGrid).rows.length - 1, 0);\n return bundle(newGrid, Math.min(details[0].row, maxRowIndex), details[0].column);\n };\n const opMergeCells = (grid, mergable, comparator, genWrappers) => {\n const cells = mergable.cells;\n merge(cells);\n const newGrid = merge$2(grid, mergable.bounds, comparator, genWrappers.merge(cells));\n return outcome(newGrid, Optional.from(cells[0]));\n };\n const opUnmergeCells = (grid, unmergable, comparator, genWrappers) => {\n const unmerge$1 = (b, cell) => unmerge(b, cell, comparator, genWrappers.unmerge(cell));\n const newGrid = foldr(unmergable, unmerge$1, grid);\n return outcome(newGrid, Optional.from(unmergable[0]));\n };\n const opPasteCells = (grid, pasteDetails, comparator, _genWrappers) => {\n const gridify = (table, generators) => {\n const wh = Warehouse.fromTable(table);\n return toGrid(wh, generators, true);\n };\n const gridB = gridify(pasteDetails.clipboard, pasteDetails.generators);\n const startAddress = address(pasteDetails.row, pasteDetails.column);\n const mergedGrid = merge$1(startAddress, grid, gridB, pasteDetails.generators, comparator);\n return mergedGrid.fold(() => outcome(grid, Optional.some(pasteDetails.element)), newGrid => {\n return bundle(newGrid, pasteDetails.row, pasteDetails.column);\n });\n };\n const gridifyRows = (rows, generators, context) => {\n const pasteDetails = fromPastedRows(rows, context.section);\n const wh = Warehouse.generate(pasteDetails);\n return toGrid(wh, generators, true);\n };\n const opPasteColsBefore = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[0].column;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n const opPasteColsAfter = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[pasteDetails.cells.length - 1].column + pasteDetails.cells[pasteDetails.cells.length - 1].colspan;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, index);\n };\n const opPasteRowsBefore = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[0].row;\n const context = rows[index];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n const opPasteRowsAfter = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[pasteDetails.cells.length - 1].row + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, index, pasteDetails.cells[0].column);\n };\n const opGetColumnsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minColRange = selectedCells[0].column;\n const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n const selectedColumnCells = flatten(map$1(house.all, row => filter$2(row.cells, cell => cell.column >= minColRange && cell.column < maxColRange)));\n return findCommonCellType(selectedColumnCells);\n }).getOr('');\n };\n const opGetCellsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(findCommonCellType).getOr('');\n };\n const opGetRowsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minRowRange = selectedCells[0].row;\n const maxRowRange = lastSelectedCell.row + lastSelectedCell.rowspan;\n const selectedRows = house.all.slice(minRowRange, maxRowRange);\n return findCommonRowType(selectedRows);\n }).getOr('');\n };\n const resize = (table, list, details, behaviours) => adjustWidthTo(table, list, details, behaviours.sizing);\n const adjustAndRedistributeWidths = (table, list, details, behaviours) => adjustAndRedistributeWidths$1(table, list, details, behaviours.sizing, behaviours.resize);\n const firstColumnIsLocked = (_warehouse, details) => exists(details, detail => detail.column === 0 && detail.isLocked);\n const lastColumnIsLocked = (warehouse, details) => exists(details, detail => detail.column + detail.colspan >= warehouse.grid.columns && detail.isLocked);\n const getColumnsWidth = (warehouse, details) => {\n const columns$1 = columns(warehouse);\n const uniqueCols = uniqueColumns(details);\n return foldl(uniqueCols, (acc, detail) => {\n const column = columns$1[detail.column];\n const colWidth = column.map(getOuter$2).getOr(0);\n return acc + colWidth;\n }, 0);\n };\n const insertColumnsExtractor = before => (warehouse, target) => onCells(warehouse, target).filter(details => {\n const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details);\n }).map(details => ({\n details,\n pixelDelta: getColumnsWidth(warehouse, details)\n }));\n const eraseColumnsExtractor = (warehouse, target) => onUnlockedCells(warehouse, target).map(details => ({\n details,\n pixelDelta: -getColumnsWidth(warehouse, details)\n }));\n const pasteColumnsExtractor = before => (warehouse, target) => onPasteByEditor(warehouse, target).filter(details => {\n const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details.cells);\n });\n const headerCellGenerator = Generators.transform('th');\n const bodyCellGenerator = Generators.transform('td');\n const insertRowsBefore = run(opInsertRowsBefore, onCells, noop, noop, Generators.modification);\n const insertRowsAfter = run(opInsertRowsAfter, onCells, noop, noop, Generators.modification);\n const insertColumnsBefore = run(opInsertColumnsBefore, insertColumnsExtractor(true), adjustAndRedistributeWidths, noop, Generators.modification);\n const insertColumnsAfter = run(opInsertColumnsAfter, insertColumnsExtractor(false), adjustAndRedistributeWidths, noop, Generators.modification);\n const eraseColumns = run(opEraseColumns, eraseColumnsExtractor, adjustAndRedistributeWidths, prune, Generators.modification);\n const eraseRows = run(opEraseRows, onCells, noop, prune, Generators.modification);\n const makeColumnsHeader = run(opMakeColumnsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const unmakeColumnsHeader = run(opUnmakeColumnsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n const makeRowsHeader = run(opMakeRowsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const makeRowsBody = run(opMakeRowsBody, onUnlockedCells, noop, noop, bodyCellGenerator);\n const makeRowsFooter = run(opMakeRowsFooter, onUnlockedCells, noop, noop, bodyCellGenerator);\n const makeCellsHeader = run(opMakeCellsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const unmakeCellsHeader = run(opUnmakeCellsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n const mergeCells = run(opMergeCells, onUnlockedMergable, resize, noop, Generators.merging);\n const unmergeCells = run(opUnmergeCells, onUnlockedUnmergable, resize, noop, Generators.merging);\n const pasteCells = run(opPasteCells, onPaste, resize, noop, Generators.modification);\n const pasteColsBefore = run(opPasteColsBefore, pasteColumnsExtractor(true), noop, noop, Generators.modification);\n const pasteColsAfter = run(opPasteColsAfter, pasteColumnsExtractor(false), noop, noop, Generators.modification);\n const pasteRowsBefore = run(opPasteRowsBefore, onPasteByEditor, noop, noop, Generators.modification);\n const pasteRowsAfter = run(opPasteRowsAfter, onPasteByEditor, noop, noop, Generators.modification);\n const getColumnsType = opGetColumnsType;\n const getCellsType = opGetCellsType;\n const getRowsType = opGetRowsType;\n\n const fireNewRow = (editor, row) => editor.dispatch('NewRow', { node: row });\n const fireNewCell = (editor, cell) => editor.dispatch('NewCell', { node: cell });\n const fireTableModified = (editor, table, data) => {\n editor.dispatch('TableModified', {\n ...data,\n table\n });\n };\n const fireTableSelectionChange = (editor, cells, start, finish, otherCells) => {\n editor.dispatch('TableSelectionChange', {\n cells,\n start,\n finish,\n otherCells\n });\n };\n const fireTableSelectionClear = editor => {\n editor.dispatch('TableSelectionClear');\n };\n const fireObjectResizeStart = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResizeStart', {\n target,\n width,\n height,\n origin\n });\n };\n const fireObjectResized = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResized', {\n target,\n width,\n height,\n origin\n });\n };\n const styleModified = {\n structure: false,\n style: true\n };\n const structureModified = {\n structure: true,\n style: false\n };\n const styleAndStructureModified = {\n structure: true,\n style: true\n };\n\n const get$5 = (editor, table) => {\n if (isTablePercentagesForced(editor)) {\n return TableSize.percentageSize(table);\n } else if (isTablePixelsForced(editor)) {\n return TableSize.pixelSize(table);\n } else {\n return TableSize.getTableSize(table);\n }\n };\n\n const TableActions = (editor, resizeHandler, cellSelectionHandler) => {\n const isTableBody = editor => name(getBody(editor)) === 'table';\n const lastRowGuard = table => !isTableBody(editor) || getGridSize(table).rows > 1;\n const lastColumnGuard = table => !isTableBody(editor) || getGridSize(table).columns > 1;\n const cloneFormats = getTableCloneElements(editor);\n const colMutationOp = isResizeTableColumnResizing(editor) ? noop : halve;\n const getTableSectionType = table => {\n switch (getTableHeaderType(editor)) {\n case 'section':\n return TableSection.section();\n case 'sectionCells':\n return TableSection.sectionCells();\n case 'cells':\n return TableSection.cells();\n default:\n return TableSection.getTableSectionType(table, 'section');\n }\n };\n const setSelectionFromAction = (table, result) => result.cursor.fold(() => {\n const cells = cells$1(table);\n return head(cells).filter(inBody).map(firstCell => {\n cellSelectionHandler.clearSelectedCells(table.dom);\n const rng = editor.dom.createRng();\n rng.selectNode(firstCell.dom);\n editor.selection.setRng(rng);\n set$2(firstCell, 'data-mce-selected', '1');\n return rng;\n });\n }, cell => {\n const des = freefallRtl(cell);\n const rng = editor.dom.createRng();\n rng.setStart(des.element.dom, des.offset);\n rng.setEnd(des.element.dom, des.offset);\n editor.selection.setRng(rng);\n cellSelectionHandler.clearSelectedCells(table.dom);\n return Optional.some(rng);\n });\n const execute = (operation, guard, mutate, effect) => (table, target, noEvents = false) => {\n removeDataStyle(table);\n const doc = SugarElement.fromDom(editor.getDoc());\n const generators = cellOperations(mutate, doc, cloneFormats);\n const behaviours = {\n sizing: get$5(editor, table),\n resize: isResizeTableColumnResizing(editor) ? resizeTable() : preserveTable(),\n section: getTableSectionType(table)\n };\n return guard(table) ? operation(table, target, generators, behaviours).bind(result => {\n resizeHandler.refresh(table.dom);\n each$2(result.newRows, row => {\n fireNewRow(editor, row.dom);\n });\n each$2(result.newCells, cell => {\n fireNewCell(editor, cell.dom);\n });\n const range = setSelectionFromAction(table, result);\n if (inBody(table)) {\n removeDataStyle(table);\n if (!noEvents) {\n fireTableModified(editor, table.dom, effect);\n }\n }\n return range.map(rng => ({\n rng,\n effect\n }));\n }) : Optional.none();\n };\n const deleteRow = execute(eraseRows, lastRowGuard, noop, structureModified);\n const deleteColumn = execute(eraseColumns, lastColumnGuard, noop, structureModified);\n const insertRowsBefore$1 = execute(insertRowsBefore, always, noop, structureModified);\n const insertRowsAfter$1 = execute(insertRowsAfter, always, noop, structureModified);\n const insertColumnsBefore$1 = execute(insertColumnsBefore, always, colMutationOp, structureModified);\n const insertColumnsAfter$1 = execute(insertColumnsAfter, always, colMutationOp, structureModified);\n const mergeCells$1 = execute(mergeCells, always, noop, structureModified);\n const unmergeCells$1 = execute(unmergeCells, always, noop, structureModified);\n const pasteColsBefore$1 = execute(pasteColsBefore, always, noop, structureModified);\n const pasteColsAfter$1 = execute(pasteColsAfter, always, noop, structureModified);\n const pasteRowsBefore$1 = execute(pasteRowsBefore, always, noop, structureModified);\n const pasteRowsAfter$1 = execute(pasteRowsAfter, always, noop, structureModified);\n const pasteCells$1 = execute(pasteCells, always, noop, styleAndStructureModified);\n const makeCellsHeader$1 = execute(makeCellsHeader, always, noop, structureModified);\n const unmakeCellsHeader$1 = execute(unmakeCellsHeader, always, noop, structureModified);\n const makeColumnsHeader$1 = execute(makeColumnsHeader, always, noop, structureModified);\n const unmakeColumnsHeader$1 = execute(unmakeColumnsHeader, always, noop, structureModified);\n const makeRowsHeader$1 = execute(makeRowsHeader, always, noop, structureModified);\n const makeRowsBody$1 = execute(makeRowsBody, always, noop, structureModified);\n const makeRowsFooter$1 = execute(makeRowsFooter, always, noop, structureModified);\n const getTableCellType = getCellsType;\n const getTableColType = getColumnsType;\n const getTableRowType = getRowsType;\n return {\n deleteRow,\n deleteColumn,\n insertRowsBefore: insertRowsBefore$1,\n insertRowsAfter: insertRowsAfter$1,\n insertColumnsBefore: insertColumnsBefore$1,\n insertColumnsAfter: insertColumnsAfter$1,\n mergeCells: mergeCells$1,\n unmergeCells: unmergeCells$1,\n pasteColsBefore: pasteColsBefore$1,\n pasteColsAfter: pasteColsAfter$1,\n pasteRowsBefore: pasteRowsBefore$1,\n pasteRowsAfter: pasteRowsAfter$1,\n pasteCells: pasteCells$1,\n makeCellsHeader: makeCellsHeader$1,\n unmakeCellsHeader: unmakeCellsHeader$1,\n makeColumnsHeader: makeColumnsHeader$1,\n unmakeColumnsHeader: unmakeColumnsHeader$1,\n makeRowsHeader: makeRowsHeader$1,\n makeRowsBody: makeRowsBody$1,\n makeRowsFooter: makeRowsFooter$1,\n getTableRowType,\n getTableCellType,\n getTableColType\n };\n };\n\n const constrainSpan = (element, property, value) => {\n const currentColspan = getAttrValue(element, property, 1);\n if (value === 1 || currentColspan <= 1) {\n remove$7(element, property);\n } else {\n set$2(element, property, Math.min(value, currentColspan));\n }\n };\n const isColInRange = (minColRange, maxColRange) => cell => {\n const endCol = cell.column + cell.colspan - 1;\n const startCol = cell.column;\n return endCol >= minColRange && startCol < maxColRange;\n };\n const generateColGroup = (house, minColRange, maxColRange) => {\n if (Warehouse.hasColumns(house)) {\n const colsToCopy = filter$2(Warehouse.justColumns(house), isColInRange(minColRange, maxColRange));\n const copiedCols = map$1(colsToCopy, c => {\n const clonedCol = deep(c.element);\n constrainSpan(clonedCol, 'span', maxColRange - minColRange);\n return clonedCol;\n });\n const fakeColgroup = SugarElement.fromTag('colgroup');\n append(fakeColgroup, copiedCols);\n return [fakeColgroup];\n } else {\n return [];\n }\n };\n const generateRows = (house, minColRange, maxColRange) => map$1(house.all, row => {\n const cellsToCopy = filter$2(row.cells, isColInRange(minColRange, maxColRange));\n const copiedCells = map$1(cellsToCopy, cell => {\n const clonedCell = deep(cell.element);\n constrainSpan(clonedCell, 'colspan', maxColRange - minColRange);\n return clonedCell;\n });\n const fakeTR = SugarElement.fromTag('tr');\n append(fakeTR, copiedCells);\n return fakeTR;\n });\n const copyCols = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onUnlockedCells(house, target);\n return details.map(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minColRange = selectedCells[0].column;\n const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n const fakeColGroups = generateColGroup(house, minColRange, maxColRange);\n const fakeRows = generateRows(house, minColRange, maxColRange);\n return [\n ...fakeColGroups,\n ...fakeRows\n ];\n });\n };\n\n const copyRows = (table, target, generators) => {\n const warehouse = Warehouse.fromTable(table);\n const details = onCells(warehouse, target);\n return details.bind(selectedCells => {\n const grid = toGrid(warehouse, generators, false);\n const rows = extractGridDetails(grid).rows;\n const slicedGrid = rows.slice(selectedCells[0].row, selectedCells[selectedCells.length - 1].row + selectedCells[selectedCells.length - 1].rowspan);\n const filteredGrid = bind$2(slicedGrid, row => {\n const newCells = filter$2(row.cells, cell => !cell.isLocked);\n return newCells.length > 0 ? [{\n ...row,\n cells: newCells\n }] : [];\n });\n const slicedDetails = toDetailList(filteredGrid);\n return someIf(slicedDetails.length > 0, slicedDetails);\n }).map(slicedDetails => copy(slicedDetails));\n };\n\n const adt$5 = Adt.generate([\n { invalid: ['raw'] },\n { pixels: ['value'] },\n { percent: ['value'] }\n ]);\n const validateFor = (suffix, type, value) => {\n const rawAmount = value.substring(0, value.length - suffix.length);\n const amount = parseFloat(rawAmount);\n return rawAmount === amount.toString() ? type(amount) : adt$5.invalid(value);\n };\n const from = value => {\n if (endsWith(value, '%')) {\n return validateFor('%', adt$5.percent, value);\n }\n if (endsWith(value, 'px')) {\n return validateFor('px', adt$5.pixels, value);\n }\n return adt$5.invalid(value);\n };\n const Size = {\n ...adt$5,\n from\n };\n\n const redistributeToPercent = (widths, totalWidth) => {\n return map$1(widths, w => {\n const colType = Size.from(w);\n return colType.fold(() => {\n return w;\n }, px => {\n const ratio = px / totalWidth * 100;\n return ratio + '%';\n }, pc => {\n return pc + '%';\n });\n });\n };\n const redistributeToPx = (widths, totalWidth, newTotalWidth) => {\n const scale = newTotalWidth / totalWidth;\n return map$1(widths, w => {\n const colType = Size.from(w);\n return colType.fold(() => {\n return w;\n }, px => {\n return px * scale + 'px';\n }, pc => {\n return pc / 100 * newTotalWidth + 'px';\n });\n });\n };\n const redistributeEmpty = (newWidthType, columns) => {\n const f = newWidthType.fold(() => constant(''), pixels => {\n const num = pixels / columns;\n return constant(num + 'px');\n }, () => {\n const num = 100 / columns;\n return constant(num + '%');\n });\n return range$1(columns, f);\n };\n const redistributeValues = (newWidthType, widths, totalWidth) => {\n return newWidthType.fold(() => {\n return widths;\n }, px => {\n return redistributeToPx(widths, totalWidth, px);\n }, _pc => {\n return redistributeToPercent(widths, totalWidth);\n });\n };\n const redistribute$1 = (widths, totalWidth, newWidth) => {\n const newType = Size.from(newWidth);\n const floats = forall(widths, s => {\n return s === '0px';\n }) ? redistributeEmpty(newType, widths.length) : redistributeValues(newType, widths, totalWidth);\n return normalize(floats);\n };\n const sum = (values, fallback) => {\n if (values.length === 0) {\n return fallback;\n }\n return foldr(values, (rest, v) => {\n return Size.from(v).fold(constant(0), identity, identity) + rest;\n }, 0);\n };\n const roundDown = (num, unit) => {\n const floored = Math.floor(num);\n return {\n value: floored + unit,\n remainder: num - floored\n };\n };\n const add$3 = (value, amount) => {\n return Size.from(value).fold(constant(value), px => {\n return px + amount + 'px';\n }, pc => {\n return pc + amount + '%';\n });\n };\n const normalize = values => {\n if (values.length === 0) {\n return values;\n }\n const scan = foldr(values, (rest, value) => {\n const info = Size.from(value).fold(() => ({\n value,\n remainder: 0\n }), num => roundDown(num, 'px'), num => ({\n value: num + '%',\n remainder: 0\n }));\n return {\n output: [info.value].concat(rest.output),\n remainder: rest.remainder + info.remainder\n };\n }, {\n output: [],\n remainder: 0\n });\n const r = scan.output;\n return r.slice(0, r.length - 1).concat([add$3(r[r.length - 1], Math.round(scan.remainder))]);\n };\n const validate = Size.from;\n\n const redistributeToW = (newWidths, cells, unit) => {\n each$2(cells, cell => {\n const widths = newWidths.slice(cell.column, cell.colspan + cell.column);\n const w = sum(widths, minWidth());\n set$1(cell.element, 'width', w + unit);\n });\n };\n const redistributeToColumns = (newWidths, columns, unit) => {\n each$2(columns, (column, index) => {\n const width = sum([newWidths[index]], minWidth());\n set$1(column.element, 'width', width + unit);\n });\n };\n const redistributeToH = (newHeights, rows, cells) => {\n each$2(cells, cell => {\n remove$5(cell.element, 'height');\n });\n each$2(rows, (row, i) => {\n set$1(row.element, 'height', newHeights[i]);\n });\n };\n const getUnit = newSize => {\n return validate(newSize).fold(constant('px'), constant('px'), constant('%'));\n };\n const redistribute = (table, optWidth, optHeight) => {\n const warehouse = Warehouse.fromTable(table);\n const rows = warehouse.all;\n const cells = Warehouse.justCells(warehouse);\n const columns = Warehouse.justColumns(warehouse);\n optWidth.each(newWidth => {\n const widthUnit = getUnit(newWidth);\n const totalWidth = get$9(table);\n const oldWidths = getRawWidths(warehouse, table);\n const nuWidths = redistribute$1(oldWidths, totalWidth, newWidth);\n if (Warehouse.hasColumns(warehouse)) {\n redistributeToColumns(nuWidths, columns, widthUnit);\n } else {\n redistributeToW(nuWidths, cells, widthUnit);\n }\n set$1(table, 'width', newWidth);\n });\n optHeight.each(newHeight => {\n const totalHeight = get$8(table);\n const oldHeights = getRawHeights(warehouse, table);\n const nuHeights = redistribute$1(oldHeights, totalHeight, newHeight);\n redistributeToH(nuHeights, rows, cells);\n set$1(table, 'height', newHeight);\n });\n };\n const isPercentSizing = isPercentSizing$1;\n const isPixelSizing = isPixelSizing$1;\n const isNoneSizing = isNoneSizing$1;\n\n const cleanupLegacyAttributes = element => {\n remove$7(element, 'width');\n remove$7(element, 'height');\n };\n const convertToPercentSizeWidth = table => {\n const newWidth = getPercentTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n const convertToPixelSizeWidth = table => {\n const newWidth = getPixelTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n const convertToPixelSizeHeight = table => {\n const newHeight = getPixelTableHeight(table);\n redistribute(table, Optional.none(), Optional.some(newHeight));\n cleanupLegacyAttributes(table);\n };\n const convertToNoneSizeWidth = table => {\n remove$5(table, 'width');\n const columns = columns$1(table);\n const rowElements = columns.length > 0 ? columns : cells$1(table);\n each$2(rowElements, cell => {\n remove$5(cell, 'width');\n cleanupLegacyAttributes(cell);\n });\n cleanupLegacyAttributes(table);\n };\n\n const DefaultRenderOptions = {\n styles: {\n 'border-collapse': 'collapse',\n 'width': '100%'\n },\n attributes: { border: '1' },\n colGroups: false\n };\n const tableHeaderCell = () => SugarElement.fromTag('th');\n const tableCell = () => SugarElement.fromTag('td');\n const tableColumn = () => SugarElement.fromTag('col');\n const createRow = (columns, rowHeaders, columnHeaders, rowIndex) => {\n const tr = SugarElement.fromTag('tr');\n for (let j = 0; j < columns; j++) {\n const td = rowIndex < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();\n if (j < columnHeaders) {\n set$2(td, 'scope', 'row');\n }\n if (rowIndex < rowHeaders) {\n set$2(td, 'scope', 'col');\n }\n append$1(td, SugarElement.fromTag('br'));\n append$1(tr, td);\n }\n return tr;\n };\n const createGroupRow = columns => {\n const columnGroup = SugarElement.fromTag('colgroup');\n range$1(columns, () => append$1(columnGroup, tableColumn()));\n return columnGroup;\n };\n const createRows = (rows, columns, rowHeaders, columnHeaders) => range$1(rows, r => createRow(columns, rowHeaders, columnHeaders, r));\n const render = (rows, columns, rowHeaders, columnHeaders, headerType, renderOpts = DefaultRenderOptions) => {\n const table = SugarElement.fromTag('table');\n const rowHeadersGoInThead = headerType !== 'cells';\n setAll(table, renderOpts.styles);\n setAll$1(table, renderOpts.attributes);\n if (renderOpts.colGroups) {\n append$1(table, createGroupRow(columns));\n }\n const actualRowHeaders = Math.min(rows, rowHeaders);\n if (rowHeadersGoInThead && rowHeaders > 0) {\n const thead = SugarElement.fromTag('thead');\n append$1(table, thead);\n const theadRowHeaders = headerType === 'sectionCells' ? actualRowHeaders : 0;\n const theadRows = createRows(rowHeaders, columns, theadRowHeaders, columnHeaders);\n append(thead, theadRows);\n }\n const tbody = SugarElement.fromTag('tbody');\n append$1(table, tbody);\n const numRows = rowHeadersGoInThead ? rows - actualRowHeaders : rows;\n const numRowHeaders = rowHeadersGoInThead ? 0 : rowHeaders;\n const tbodyRows = createRows(numRows, columns, numRowHeaders, columnHeaders);\n append(tbody, tbodyRows);\n return table;\n };\n\n const get$4 = element => element.dom.innerHTML;\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$1(container, clone);\n return get$4(container);\n };\n\n const placeCaretInCell = (editor, cell) => {\n editor.selection.select(cell.dom, true);\n editor.selection.collapse(true);\n };\n const selectFirstCellInTable = (editor, tableElm) => {\n descendant(tableElm, 'td,th').each(curry(placeCaretInCell, editor));\n };\n const fireEvents = (editor, table) => {\n each$2(descendants(table, 'tr'), row => {\n fireNewRow(editor, row.dom);\n each$2(descendants(row, 'th,td'), cell => {\n fireNewCell(editor, cell.dom);\n });\n });\n };\n const isPercentage = width => isString(width) && width.indexOf('%') !== -1;\n const insert = (editor, columns, rows, colHeaders, rowHeaders) => {\n const defaultStyles = getTableDefaultStyles(editor);\n const options = {\n styles: defaultStyles,\n attributes: getTableDefaultAttributes(editor),\n colGroups: tableUseColumnGroup(editor)\n };\n editor.undoManager.ignore(() => {\n const table = render(rows, columns, rowHeaders, colHeaders, getTableHeaderType(editor), options);\n set$2(table, 'data-mce-id', '__mce');\n const html = getOuter(table);\n editor.insertContent(html);\n editor.addVisual();\n });\n return descendant(getBody(editor), 'table[data-mce-id=\"__mce\"]').map(table => {\n if (isTablePixelsForced(editor)) {\n convertToPixelSizeWidth(table);\n } else if (isTableResponsiveForced(editor)) {\n convertToNoneSizeWidth(table);\n } else if (isTablePercentagesForced(editor) || isPercentage(defaultStyles.width)) {\n convertToPercentSizeWidth(table);\n }\n removeDataStyle(table);\n remove$7(table, 'data-mce-id');\n fireEvents(editor, table);\n selectFirstCellInTable(editor, table);\n return table.dom;\n }).getOrNull();\n };\n const insertTable = (editor, rows, columns, options = {}) => {\n const checkInput = val => isNumber(val) && val > 0;\n if (checkInput(rows) && checkInput(columns)) {\n const headerRows = options.headerRows || 0;\n const headerColumns = options.headerColumns || 0;\n return insert(editor, columns, rows, headerColumns, headerRows);\n } else {\n console.error('Invalid values for mceInsertTable - rows and columns values are required to insert a table.');\n return null;\n }\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.FakeClipboard');\n\n const tableTypeBase = 'x-tinymce/dom-table-';\n const tableTypeRow = tableTypeBase + 'rows';\n const tableTypeColumn = tableTypeBase + 'columns';\n const setData = items => {\n const fakeClipboardItem = global.FakeClipboardItem(items);\n global.write([fakeClipboardItem]);\n };\n const getData = type => {\n var _a;\n const items = (_a = global.read()) !== null && _a !== void 0 ? _a : [];\n return findMap(items, item => Optional.from(item.getType(type)));\n };\n const clearData = type => {\n if (getData(type).isSome()) {\n global.clear();\n }\n };\n const setRows = rowsOpt => {\n rowsOpt.fold(clearRows, rows => setData({ [tableTypeRow]: rows }));\n };\n const getRows = () => getData(tableTypeRow);\n const clearRows = () => clearData(tableTypeRow);\n const setColumns = columnsOpt => {\n columnsOpt.fold(clearColumns, columns => setData({ [tableTypeColumn]: columns }));\n };\n const getColumns = () => getData(tableTypeColumn);\n const clearColumns = () => clearData(tableTypeColumn);\n\n const getSelectionStartCellOrCaption = editor => getSelectionCellOrCaption(getSelectionStart(editor), getIsRoot(editor)).filter(isInEditableContext$1);\n const getSelectionStartCell = editor => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)).filter(isInEditableContext$1);\n const registerCommands = (editor, actions) => {\n const isRoot = getIsRoot(editor);\n const eraseTable = () => getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n table(cellOrCaption, isRoot).filter(not(isRoot)).each(table => {\n const cursor = SugarElement.fromText('');\n after$5(table, cursor);\n remove$6(table);\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n const rng = editor.dom.createRng();\n rng.setStart(cursor.dom, 0);\n rng.setEnd(cursor.dom, 0);\n editor.selection.setRng(rng);\n editor.nodeChanged();\n }\n });\n });\n const setSizingMode = sizing => getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n const isForcedSizing = isTableResponsiveForced(editor) || isTablePixelsForced(editor) || isTablePercentagesForced(editor);\n if (!isForcedSizing) {\n table(cellOrCaption, isRoot).each(table => {\n if (sizing === 'relative' && !isPercentSizing(table)) {\n convertToPercentSizeWidth(table);\n } else if (sizing === 'fixed' && !isPixelSizing(table)) {\n convertToPixelSizeWidth(table);\n } else if (sizing === 'responsive' && !isNoneSizing(table)) {\n convertToNoneSizeWidth(table);\n }\n removeDataStyle(table);\n fireTableModified(editor, table.dom, structureModified);\n });\n }\n });\n const getTableFromCell = cell => table(cell, isRoot);\n const performActionOnSelection = action => getSelectionStartCell(editor).bind(cell => getTableFromCell(cell).map(table => action(table, cell)));\n const toggleTableClass = (_ui, clazz) => {\n performActionOnSelection(table => {\n editor.formatter.toggle('tableclass', { value: clazz }, table.dom);\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n const toggleTableCellClass = (_ui, clazz) => {\n performActionOnSelection(table => {\n const selectedCells = getCellsFromSelection(editor);\n const allHaveClass = forall(selectedCells, cell => editor.formatter.match('tablecellclass', { value: clazz }, cell.dom));\n const formatterAction = allHaveClass ? editor.formatter.remove : editor.formatter.apply;\n each$2(selectedCells, cell => formatterAction('tablecellclass', { value: clazz }, cell.dom));\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n const toggleCaption = () => {\n getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n table(cellOrCaption, isRoot).each(table => {\n child(table, 'caption').fold(() => {\n const caption = SugarElement.fromTag('caption');\n append$1(caption, SugarElement.fromText('Caption'));\n appendAt(table, caption, 0);\n editor.selection.setCursorLocation(caption.dom, 0);\n }, caption => {\n if (isTag('caption')(cellOrCaption)) {\n one('td', table).each(td => editor.selection.setCursorLocation(td.dom, 0));\n }\n remove$6(caption);\n });\n fireTableModified(editor, table.dom, structureModified);\n });\n });\n };\n const postExecute = _data => {\n editor.focus();\n };\n const actOnSelection = (execute, noEvents = false) => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n execute(table, targets, noEvents).each(postExecute);\n });\n const copyRowSelection = () => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), Optional.none());\n return copyRows(table, targets, generators);\n });\n const copyColSelection = () => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n return copyCols(table, targets);\n });\n const pasteOnSelection = (execute, getRows) => getRows().each(rows => {\n const clonedRows = map$1(rows, row => deep(row));\n performActionOnSelection((table, startCell) => {\n const generators = paste$1(SugarElement.fromDom(editor.getDoc()));\n const targets = pasteRows(getCellsFromSelection(editor), startCell, clonedRows, generators);\n execute(table, targets).each(postExecute);\n });\n });\n const actOnType = getAction => (_ui, args) => get$c(args, 'type').each(type => {\n actOnSelection(getAction(type), args.no_events);\n });\n each$1({\n mceTableSplitCells: () => actOnSelection(actions.unmergeCells),\n mceTableMergeCells: () => actOnSelection(actions.mergeCells),\n mceTableInsertRowBefore: () => actOnSelection(actions.insertRowsBefore),\n mceTableInsertRowAfter: () => actOnSelection(actions.insertRowsAfter),\n mceTableInsertColBefore: () => actOnSelection(actions.insertColumnsBefore),\n mceTableInsertColAfter: () => actOnSelection(actions.insertColumnsAfter),\n mceTableDeleteCol: () => actOnSelection(actions.deleteColumn),\n mceTableDeleteRow: () => actOnSelection(actions.deleteRow),\n mceTableCutCol: () => copyColSelection().each(selection => {\n setColumns(selection);\n actOnSelection(actions.deleteColumn);\n }),\n mceTableCutRow: () => copyRowSelection().each(selection => {\n setRows(selection);\n actOnSelection(actions.deleteRow);\n }),\n mceTableCopyCol: () => copyColSelection().each(selection => setColumns(selection)),\n mceTableCopyRow: () => copyRowSelection().each(selection => setRows(selection)),\n mceTablePasteColBefore: () => pasteOnSelection(actions.pasteColsBefore, getColumns),\n mceTablePasteColAfter: () => pasteOnSelection(actions.pasteColsAfter, getColumns),\n mceTablePasteRowBefore: () => pasteOnSelection(actions.pasteRowsBefore, getRows),\n mceTablePasteRowAfter: () => pasteOnSelection(actions.pasteRowsAfter, getRows),\n mceTableDelete: eraseTable,\n mceTableCellToggleClass: toggleTableCellClass,\n mceTableToggleClass: toggleTableClass,\n mceTableToggleCaption: toggleCaption,\n mceTableSizingMode: (_ui, sizing) => setSizingMode(sizing),\n mceTableCellType: actOnType(type => type === 'th' ? actions.makeCellsHeader : actions.unmakeCellsHeader),\n mceTableColType: actOnType(type => type === 'th' ? actions.makeColumnsHeader : actions.unmakeColumnsHeader),\n mceTableRowType: actOnType(type => {\n switch (type) {\n case 'header':\n return actions.makeRowsHeader;\n case 'footer':\n return actions.makeRowsFooter;\n default:\n return actions.makeRowsBody;\n }\n })\n }, (func, name) => editor.addCommand(name, func));\n editor.addCommand('mceInsertTable', (_ui, args) => {\n insertTable(editor, args.rows, args.columns, args.options);\n });\n editor.addCommand('mceTableApplyCellStyle', (_ui, args) => {\n const getFormatName = style => 'tablecell' + style.toLowerCase().replace('-', '');\n if (!isObject(args)) {\n return;\n }\n const cells = filter$2(getCellsFromSelection(editor), isInEditableContext$1);\n if (cells.length === 0) {\n return;\n }\n const validArgs = filter$1(args, (value, style) => editor.formatter.has(getFormatName(style)) && isString(value));\n if (isEmpty(validArgs)) {\n return;\n }\n each$1(validArgs, (value, style) => {\n const formatName = getFormatName(style);\n each$2(cells, cell => {\n if (value === '') {\n editor.formatter.remove(formatName, { value: null }, cell.dom, true);\n } else {\n editor.formatter.apply(formatName, { value }, cell.dom);\n }\n });\n });\n getTableFromCell(cells[0]).each(table => fireTableModified(editor, table.dom, styleModified));\n });\n };\n\n const registerQueryCommands = (editor, actions) => {\n const isRoot = getIsRoot(editor);\n const lookupOnSelection = action => getSelectionCell(getSelectionStart(editor)).bind(cell => table(cell, isRoot).map(table => {\n const targets = forMenu(getCellsFromSelection(editor), table, cell);\n return action(table, targets);\n })).getOr('');\n each$1({\n mceTableRowType: () => lookupOnSelection(actions.getTableRowType),\n mceTableCellType: () => lookupOnSelection(actions.getTableCellType),\n mceTableColType: () => lookupOnSelection(actions.getTableColType)\n }, (func, name) => editor.addQueryValueHandler(name, func));\n };\n\n const adt$4 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata$1 = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$1 = situ => situ.fold(identity, identity, identity);\n const before$2 = adt$4.before;\n const on = adt$4.on;\n const after$3 = adt$4.after;\n const Situ = {\n before: before$2,\n on,\n after: after$3,\n cata: cata$1,\n getStart: getStart$1\n };\n\n const create$4 = (selection, kill) => ({\n selection,\n kill\n });\n const Response = { create: create$4 };\n\n const selectNode = (win, element) => {\n const rng = win.document.createRange();\n rng.selectNode(element.dom);\n return rng;\n };\n const selectNodeContents = (win, element) => {\n const rng = win.document.createRange();\n selectNodeContentsUsing(rng, element);\n return rng;\n };\n const selectNodeContentsUsing = (rng, element) => rng.selectNodeContents(element.dom);\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const toRect = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n });\n const getFirstRect$1 = rng => {\n const rects = rng.getClientRects();\n const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n const adt$3 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$3.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$3.ltr, rng));\n } else {\n return fromRange(win, adt$3.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n const asLtrRange = (win, selection) => {\n const diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n adt$3.ltr;\n adt$3.rtl;\n\n const create$3 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$3 };\n\n const create$2 = (start, soffset, finish, foffset) => {\n return {\n start: Situ.on(start, soffset),\n finish: Situ.on(finish, foffset)\n };\n };\n const Situs = { create: create$2 };\n\n const convertToRange = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset);\n };\n const makeSitus = Situs.create;\n\n const sync = (container, isRoot, start, soffset, finish, foffset, selectRange) => {\n if (!(eq$1(start, finish) && soffset === foffset)) {\n return closest$1(start, 'td,th', isRoot).bind(s => {\n return closest$1(finish, 'td,th', isRoot).bind(f => {\n return detect(container, isRoot, s, f, selectRange);\n });\n });\n } else {\n return Optional.none();\n }\n };\n const detect = (container, isRoot, start, finish, selectRange) => {\n if (!eq$1(start, finish)) {\n return identify(start, finish, isRoot).bind(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n if (boxes.length > 1) {\n selectRange(container, boxes, cellSel.start, cellSel.finish);\n return Optional.some(Response.create(Optional.some(makeSitus(start, 0, start, getEnd(start))), true));\n } else {\n return Optional.none();\n }\n });\n } else {\n return Optional.none();\n }\n };\n const update = (rows, columns, container, selected, annotations) => {\n const updateSelection = newSels => {\n annotations.clearBeforeUpdate(container);\n annotations.selectRange(container, newSels.boxes, newSels.start, newSels.finish);\n return newSels.boxes;\n };\n return shiftSelection(selected, rows, columns, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(updateSelection);\n };\n\n const traverse = (item, mode) => ({\n item,\n mode\n });\n const backtrack = (universe, item, _direction, transition = sidestep) => {\n return universe.property().parent(item).map(p => {\n return traverse(p, transition);\n });\n };\n const sidestep = (universe, item, direction, transition = advance) => {\n return direction.sibling(universe, item).map(p => {\n return traverse(p, transition);\n });\n };\n const advance = (universe, item, direction, transition = advance) => {\n const children = universe.property().children(item);\n const result = direction.first(children);\n return result.map(r => {\n return traverse(r, transition);\n });\n };\n const successors = [\n {\n current: backtrack,\n next: sidestep,\n fallback: Optional.none()\n },\n {\n current: sidestep,\n next: advance,\n fallback: Optional.some(backtrack)\n },\n {\n current: advance,\n next: advance,\n fallback: Optional.some(sidestep)\n }\n ];\n const go = (universe, item, mode, direction, rules = successors) => {\n const ruleOpt = find$1(rules, succ => {\n return succ.current === mode;\n });\n return ruleOpt.bind(rule => {\n return rule.current(universe, item, direction, rule.next).orThunk(() => {\n return rule.fallback.bind(fb => {\n return go(universe, item, fb, direction);\n });\n });\n });\n };\n\n const left$1 = () => {\n const sibling = (universe, item) => {\n return universe.query().prevSibling(item);\n };\n const first = children => {\n return children.length > 0 ? Optional.some(children[children.length - 1]) : Optional.none();\n };\n return {\n sibling,\n first\n };\n };\n const right$1 = () => {\n const sibling = (universe, item) => {\n return universe.query().nextSibling(item);\n };\n const first = children => {\n return children.length > 0 ? Optional.some(children[0]) : Optional.none();\n };\n return {\n sibling,\n first\n };\n };\n const Walkers = {\n left: left$1,\n right: right$1\n };\n\n const hone = (universe, item, predicate, mode, direction, isRoot) => {\n const next = go(universe, item, mode, direction);\n return next.bind(n => {\n if (isRoot(n.item)) {\n return Optional.none();\n } else {\n return predicate(n.item) ? Optional.some(n.item) : hone(universe, n.item, predicate, n.mode, direction, isRoot);\n }\n });\n };\n const left = (universe, item, predicate, isRoot) => {\n return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);\n };\n const right = (universe, item, predicate, isRoot) => {\n return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);\n };\n\n const isLeaf = universe => element => universe.property().children(element).length === 0;\n const before$1 = (universe, item, isRoot) => {\n return seekLeft$1(universe, item, isLeaf(universe), isRoot);\n };\n const after$2 = (universe, item, isRoot) => {\n return seekRight$1(universe, item, isLeaf(universe), isRoot);\n };\n const seekLeft$1 = left;\n const seekRight$1 = right;\n\n const universe = DomUniverse();\n const before = (element, isRoot) => {\n return before$1(universe, element, isRoot);\n };\n const after$1 = (element, isRoot) => {\n return after$2(universe, element, isRoot);\n };\n const seekLeft = (element, predicate, isRoot) => {\n return seekLeft$1(universe, element, predicate, isRoot);\n };\n const seekRight = (element, predicate, isRoot) => {\n return seekRight$1(universe, element, predicate, isRoot);\n };\n\n const ancestor = (scope, predicate, isRoot) => ancestor$2(scope, predicate, isRoot).isSome();\n\n const adt$2 = Adt.generate([\n { none: ['message'] },\n { success: [] },\n { failedUp: ['cell'] },\n { failedDown: ['cell'] }\n ]);\n const isOverlapping = (bridge, before, after) => {\n const beforeBounds = bridge.getRect(before);\n const afterBounds = bridge.getRect(after);\n return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;\n };\n const isRow = elem => {\n return closest$1(elem, 'tr');\n };\n const verify = (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) => {\n return closest$1(after, 'td,th', isRoot).bind(afterCell => {\n return closest$1(before, 'td,th', isRoot).map(beforeCell => {\n if (!eq$1(afterCell, beforeCell)) {\n return sharedOne(isRow, [\n afterCell,\n beforeCell\n ]).fold(() => {\n return isOverlapping(bridge, beforeCell, afterCell) ? adt$2.success() : failure(beforeCell);\n }, _sharedRow => {\n return failure(beforeCell);\n });\n } else {\n return eq$1(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$2.none('in same cell');\n }\n });\n }).getOr(adt$2.none('default'));\n };\n const cata = (subject, onNone, onSuccess, onFailedUp, onFailedDown) => {\n return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);\n };\n const BeforeAfter = {\n ...adt$2,\n verify,\n cata\n };\n\n const inParent = (parent, children, element, index) => ({\n parent,\n children,\n element,\n index\n });\n const indexInParent = element => parent(element).bind(parent => {\n const children = children$2(parent);\n return indexOf(children, element).map(index => inParent(parent, children, element, index));\n });\n const indexOf = (elements, element) => findIndex(elements, curry(eq$1, element));\n\n const isBr = isTag('br');\n const gatherer = (cand, gather, isRoot) => {\n return gather(cand, isRoot).bind(target => {\n return isText(target) && get$6(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Optional.some(target);\n });\n };\n const handleBr = (isRoot, element, direction) => {\n return direction.traverse(element).orThunk(() => {\n return gatherer(element, direction.gather, isRoot);\n }).map(direction.relative);\n };\n const findBr = (element, offset) => {\n return child$2(element, offset).filter(isBr).orThunk(() => {\n return child$2(element, offset - 1).filter(isBr);\n });\n };\n const handleParent = (isRoot, element, offset, direction) => {\n return findBr(element, offset).bind(br => {\n return direction.traverse(br).fold(() => {\n return gatherer(br, direction.gather, isRoot).map(direction.relative);\n }, adjacent => {\n return indexInParent(adjacent).map(info => {\n return Situ.on(info.parent, info.index);\n });\n });\n });\n };\n const tryBr = (isRoot, element, offset, direction) => {\n const target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);\n return target.map(tgt => {\n return {\n start: tgt,\n finish: tgt\n };\n });\n };\n const process = analysis => {\n return BeforeAfter.cata(analysis, _message => {\n return Optional.none();\n }, () => {\n return Optional.none();\n }, cell => {\n return Optional.some(point(cell, 0));\n }, cell => {\n return Optional.some(point(cell, getEnd(cell)));\n });\n };\n\n const moveDown = (caret, amount) => {\n return {\n left: caret.left,\n top: caret.top + amount,\n right: caret.right,\n bottom: caret.bottom + amount\n };\n };\n const moveUp = (caret, amount) => {\n return {\n left: caret.left,\n top: caret.top - amount,\n right: caret.right,\n bottom: caret.bottom - amount\n };\n };\n const translate = (caret, xDelta, yDelta) => {\n return {\n left: caret.left + xDelta,\n top: caret.top + yDelta,\n right: caret.right + xDelta,\n bottom: caret.bottom + yDelta\n };\n };\n const getTop = caret => {\n return caret.top;\n };\n const getBottom = caret => {\n return caret.bottom;\n };\n\n const getPartialBox = (bridge, element, offset) => {\n if (offset >= 0 && offset < getEnd(element)) {\n return bridge.getRangedRect(element, offset, element, offset + 1);\n } else if (offset > 0) {\n return bridge.getRangedRect(element, offset - 1, element, offset);\n }\n return Optional.none();\n };\n const toCaret = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom\n });\n const getElemBox = (bridge, element) => {\n return Optional.some(bridge.getRect(element));\n };\n const getBoxAt = (bridge, element, offset) => {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return getPartialBox(bridge, element, offset).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n const getEntireBox = (bridge, element) => {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n\n const JUMP_SIZE = 5;\n const NUM_RETRIES = 100;\n const adt$1 = Adt.generate([\n { none: [] },\n { retry: ['caret'] }\n ]);\n const isOutside = (caret, box) => {\n return caret.left < box.left || Math.abs(box.right - caret.left) < 1 || caret.left > box.right;\n };\n const inOutsideBlock = (bridge, element, caret) => {\n return closest$2(element, isBlock).fold(never, cell => {\n return getEntireBox(bridge, cell).exists(box => {\n return isOutside(caret, box);\n });\n });\n };\n const adjustDown = (bridge, element, guessBox, original, caret) => {\n const lowerCaret = moveDown(caret, JUMP_SIZE);\n if (Math.abs(guessBox.bottom - original.bottom) < 1) {\n return adt$1.retry(lowerCaret);\n } else if (guessBox.top > caret.bottom) {\n return adt$1.retry(lowerCaret);\n } else if (guessBox.top === caret.bottom) {\n return adt$1.retry(moveDown(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(lowerCaret, JUMP_SIZE, 0)) : adt$1.none();\n }\n };\n const adjustUp = (bridge, element, guessBox, original, caret) => {\n const higherCaret = moveUp(caret, JUMP_SIZE);\n if (Math.abs(guessBox.top - original.top) < 1) {\n return adt$1.retry(higherCaret);\n } else if (guessBox.bottom < caret.top) {\n return adt$1.retry(higherCaret);\n } else if (guessBox.bottom === caret.top) {\n return adt$1.retry(moveUp(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(higherCaret, JUMP_SIZE, 0)) : adt$1.none();\n }\n };\n const upMovement = {\n point: getTop,\n adjuster: adjustUp,\n move: moveUp,\n gather: before\n };\n const downMovement = {\n point: getBottom,\n adjuster: adjustDown,\n move: moveDown,\n gather: after$1\n };\n const isAtTable = (bridge, x, y) => {\n return bridge.elementFromPoint(x, y).filter(elm => {\n return name(elm) === 'table';\n }).isSome();\n };\n const adjustForTable = (bridge, movement, original, caret, numRetries) => {\n return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);\n };\n const adjustTil = (bridge, movement, original, caret, numRetries) => {\n if (numRetries === 0) {\n return Optional.some(caret);\n }\n if (isAtTable(bridge, caret.left, movement.point(caret))) {\n return adjustForTable(bridge, movement, original, caret, numRetries - 1);\n }\n return bridge.situsFromPoint(caret.left, movement.point(caret)).bind(guess => {\n return guess.start.fold(Optional.none, element => {\n return getEntireBox(bridge, element).bind(guessBox => {\n return movement.adjuster(bridge, element, guessBox, original, caret).fold(Optional.none, newCaret => {\n return adjustTil(bridge, movement, original, newCaret, numRetries - 1);\n });\n }).orThunk(() => {\n return Optional.some(caret);\n });\n }, Optional.none);\n });\n };\n const checkScroll = (movement, adjusted, bridge) => {\n if (movement.point(adjusted) > bridge.getInnerHeight()) {\n return Optional.some(movement.point(adjusted) - bridge.getInnerHeight());\n } else if (movement.point(adjusted) < 0) {\n return Optional.some(-movement.point(adjusted));\n } else {\n return Optional.none();\n }\n };\n const retry = (movement, bridge, caret) => {\n const moved = movement.move(caret, JUMP_SIZE);\n const adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved);\n return checkScroll(movement, adjusted, bridge).fold(() => {\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted));\n }, delta => {\n bridge.scrollBy(0, delta);\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted) - delta);\n });\n };\n const Retries = {\n tryUp: curry(retry, upMovement),\n tryDown: curry(retry, downMovement),\n getJumpSize: constant(JUMP_SIZE)\n };\n\n const MAX_RETRIES = 20;\n const findSpot = (bridge, isRoot, direction) => {\n return bridge.getSelection().bind(sel => {\n return tryBr(isRoot, sel.finish, sel.foffset, direction).fold(() => {\n return Optional.some(point(sel.finish, sel.foffset));\n }, brNeighbour => {\n const range = bridge.fromSitus(brNeighbour);\n const analysis = BeforeAfter.verify(bridge, sel.finish, sel.foffset, range.finish, range.foffset, direction.failure, isRoot);\n return process(analysis);\n });\n });\n };\n const scan = (bridge, isRoot, element, offset, direction, numRetries) => {\n if (numRetries === 0) {\n return Optional.none();\n }\n return tryCursor(bridge, isRoot, element, offset, direction).bind(situs => {\n const range = bridge.fromSitus(situs);\n const analysis = BeforeAfter.verify(bridge, element, offset, range.finish, range.foffset, direction.failure, isRoot);\n return BeforeAfter.cata(analysis, () => {\n return Optional.none();\n }, () => {\n return Optional.some(situs);\n }, cell => {\n if (eq$1(element, cell) && offset === 0) {\n return tryAgain(bridge, element, offset, moveUp, direction);\n } else {\n return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);\n }\n }, cell => {\n if (eq$1(element, cell) && offset === getEnd(cell)) {\n return tryAgain(bridge, element, offset, moveDown, direction);\n } else {\n return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);\n }\n });\n });\n };\n const tryAgain = (bridge, element, offset, move, direction) => {\n return getBoxAt(bridge, element, offset).bind(box => {\n return tryAt(bridge, direction, move(box, Retries.getJumpSize()));\n });\n };\n const tryAt = (bridge, direction, box) => {\n const browser = detect$2().browser;\n if (browser.isChromium() || browser.isSafari() || browser.isFirefox()) {\n return direction.retry(bridge, box);\n } else {\n return Optional.none();\n }\n };\n const tryCursor = (bridge, isRoot, element, offset, direction) => {\n return getBoxAt(bridge, element, offset).bind(box => {\n return tryAt(bridge, direction, box);\n });\n };\n const handle$1 = (bridge, isRoot, direction) => {\n return findSpot(bridge, isRoot, direction).bind(spot => {\n return scan(bridge, isRoot, spot.element, spot.offset, direction, MAX_RETRIES).map(bridge.fromSitus);\n });\n };\n\n const inSameTable = (elem, table) => {\n return ancestor(elem, e => {\n return parent(e).exists(p => {\n return eq$1(p, table);\n });\n });\n };\n const simulate = (bridge, isRoot, direction, initial, anchor) => {\n return closest$1(initial, 'td,th', isRoot).bind(start => {\n return closest$1(start, 'table', isRoot).bind(table => {\n if (!inSameTable(anchor, table)) {\n return Optional.none();\n }\n return handle$1(bridge, isRoot, direction).bind(range => {\n return closest$1(range.finish, 'td,th', isRoot).map(finish => {\n return {\n start,\n finish,\n range\n };\n });\n });\n });\n });\n };\n const navigate = (bridge, isRoot, direction, initial, anchor, precheck) => {\n return precheck(initial, isRoot).orThunk(() => {\n return simulate(bridge, isRoot, direction, initial, anchor).map(info => {\n const range = info.range;\n return Response.create(Optional.some(makeSitus(range.start, range.soffset, range.finish, range.foffset)), true);\n });\n });\n };\n const firstUpCheck = (initial, isRoot) => {\n return closest$1(initial, 'tr', isRoot).bind(startRow => {\n return closest$1(startRow, 'table', isRoot).bind(table => {\n const rows = descendants(table, 'tr');\n if (eq$1(startRow, rows[0])) {\n return seekLeft(table, element => {\n return last$1(element).isSome();\n }, isRoot).map(last => {\n const lastOffset = getEnd(last);\n return Response.create(Optional.some(makeSitus(last, lastOffset, last, lastOffset)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n const lastDownCheck = (initial, isRoot) => {\n return closest$1(initial, 'tr', isRoot).bind(startRow => {\n return closest$1(startRow, 'table', isRoot).bind(table => {\n const rows = descendants(table, 'tr');\n if (eq$1(startRow, rows[rows.length - 1])) {\n return seekRight(table, element => {\n return first(element).isSome();\n }, isRoot).map(first => {\n return Response.create(Optional.some(makeSitus(first, 0, first, 0)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n const select = (bridge, container, isRoot, direction, initial, anchor, selectRange) => {\n return simulate(bridge, isRoot, direction, initial, anchor).bind(info => {\n return detect(container, isRoot, info.start, info.finish, selectRange);\n });\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const value = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const findCell = (target, isRoot) => closest$1(target, 'td,th', isRoot);\n const isInEditableContext = cell => parentElement(cell).exists(isEditable$1);\n const MouseSelection = (bridge, container, isRoot, annotations) => {\n const cursor = value();\n const clearstate = cursor.clear;\n const applySelection = event => {\n cursor.on(start => {\n annotations.clearBeforeUpdate(container);\n findCell(event.target, isRoot).each(finish => {\n identify(start, finish, isRoot).each(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n if (boxes.length === 1) {\n const singleCell = boxes[0];\n const isNonEditableCell = getRaw(singleCell) === 'false';\n const isCellClosestContentEditable = is(closest(event.target), singleCell, eq$1);\n if (isNonEditableCell && isCellClosestContentEditable) {\n annotations.selectRange(container, boxes, singleCell, singleCell);\n }\n } else if (boxes.length > 1) {\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n }\n });\n });\n });\n };\n const mousedown = event => {\n annotations.clear(container);\n findCell(event.target, isRoot).filter(isInEditableContext).each(cursor.set);\n };\n const mouseover = event => {\n applySelection(event);\n };\n const mouseup = event => {\n applySelection(event);\n clearstate();\n };\n return {\n clearstate,\n mousedown,\n mouseover,\n mouseup\n };\n };\n\n const down = {\n traverse: nextSibling,\n gather: after$1,\n relative: Situ.before,\n retry: Retries.tryDown,\n failure: BeforeAfter.failedDown\n };\n const up = {\n traverse: prevSibling,\n gather: before,\n relative: Situ.before,\n retry: Retries.tryUp,\n failure: BeforeAfter.failedUp\n };\n\n const isKey = key => {\n return keycode => {\n return keycode === key;\n };\n };\n const isUp = isKey(38);\n const isDown = isKey(40);\n const isNavigation = keycode => {\n return keycode >= 37 && keycode <= 40;\n };\n const ltr = {\n isBackward: isKey(37),\n isForward: isKey(39)\n };\n const rtl = {\n isBackward: isKey(39),\n isForward: isKey(37)\n };\n\n const get$3 = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const by = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollBy(x, y);\n }\n };\n\n const adt = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt.domRange;\n const relative = adt.relative;\n const exact = adt.exact;\n const getWin = selection => {\n const start = getStart(selection);\n return defaultView(start);\n };\n const range = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range\n };\n\n const caretPositionFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretPositionFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y)).bind(pos => {\n if (pos.offsetNode === null) {\n return Optional.none();\n }\n const r = doc.createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Optional.some(r);\n });\n };\n const caretRangeFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretRangeFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y));\n };\n const availableSearch = (doc, x, y) => {\n if (doc.caretPositionFromPoint) {\n return caretPositionFromPoint(doc, x, y);\n } else if (doc.caretRangeFromPoint) {\n return caretRangeFromPoint(doc, x, y);\n } else {\n return Optional.none();\n }\n };\n const fromPoint = (win, x, y) => {\n const doc = win.document;\n return availableSearch(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n };\n\n const beforeSpecial = (element, offset) => {\n const name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains$2([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n const preprocessRelative = (startSitu, finishSitu) => {\n const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return SimSelection.relative(start, finish);\n };\n const preprocessExact = (start, soffset, finish, foffset) => {\n const startSitu = beforeSpecial(start, soffset);\n const finishSitu = beforeSpecial(finish, foffset);\n return SimSelection.relative(startSitu, finishSitu);\n };\n\n const makeRange = (start, soffset, finish, foffset) => {\n const doc = owner(start);\n const rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const after = (start, soffset, finish, foffset) => {\n const r = makeRange(start, soffset, finish, foffset);\n const same = eq$1(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n const getNativeSelection = win => Optional.from(win.getSelection());\n const doSetNativeRange = (win, rng) => {\n getNativeSelection(win).each(selection => {\n selection.removeAllRanges();\n selection.addRange(rng);\n });\n };\n const doSetRange = (win, start, soffset, finish, foffset) => {\n const rng = exactToNative(win, start, soffset, finish, foffset);\n doSetNativeRange(win, rng);\n };\n const setLegacyRtlRange = (win, selection, start, soffset, finish, foffset) => {\n selection.collapse(start.dom, soffset);\n selection.extend(finish.dom, foffset);\n };\n const setRangeFromRelative = (win, relative) => diagnose(win, relative).match({\n ltr: (start, soffset, finish, foffset) => {\n doSetRange(win, start, soffset, finish, foffset);\n },\n rtl: (start, soffset, finish, foffset) => {\n getNativeSelection(win).each(selection => {\n if (selection.setBaseAndExtent) {\n selection.setBaseAndExtent(start.dom, soffset, finish.dom, foffset);\n } else if (selection.extend) {\n try {\n setLegacyRtlRange(win, selection, start, soffset, finish, foffset);\n } catch (e) {\n doSetRange(win, finish, foffset, start, soffset);\n }\n } else {\n doSetRange(win, finish, foffset, start, soffset);\n }\n });\n }\n });\n const setExact = (win, start, soffset, finish, foffset) => {\n const relative = preprocessExact(start, soffset, finish, foffset);\n setRangeFromRelative(win, relative);\n };\n const setRelative = (win, startSitu, finishSitu) => {\n const relative = preprocessRelative(startSitu, finishSitu);\n setRangeFromRelative(win, relative);\n };\n const readRange = selection => {\n if (selection.rangeCount > 0) {\n const firstRng = selection.getRangeAt(0);\n const lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n const doGetExact = selection => {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n const anchor = SugarElement.fromDom(selection.anchorNode);\n const focus = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n }\n };\n const setToElement = (win, element, selectNodeContents$1 = true) => {\n const rngGetter = selectNodeContents$1 ? selectNodeContents : selectNode;\n const rng = rngGetter(win, element);\n doSetNativeRange(win, rng);\n };\n const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact);\n const get$2 = win => getExact(win).map(range => SimSelection.exact(range.start, range.soffset, range.finish, range.foffset));\n const getFirstRect = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n const getAtPoint = (win, x, y) => fromPoint(win, x, y);\n const clear = win => {\n getNativeSelection(win).each(selection => selection.removeAllRanges());\n };\n\n const WindowBridge = win => {\n const elementFromPoint = (x, y) => {\n return SugarElement.fromPoint(SugarElement.fromDom(win.document), x, y);\n };\n const getRect = element => {\n return element.dom.getBoundingClientRect();\n };\n const getRangedRect = (start, soffset, finish, foffset) => {\n const sel = SimSelection.exact(start, soffset, finish, foffset);\n return getFirstRect(win, sel);\n };\n const getSelection = () => {\n return get$2(win).map(exactAdt => {\n return convertToRange(win, exactAdt);\n });\n };\n const fromSitus = situs => {\n const relative = SimSelection.relative(situs.start, situs.finish);\n return convertToRange(win, relative);\n };\n const situsFromPoint = (x, y) => {\n return getAtPoint(win, x, y).map(exact => {\n return Situs.create(exact.start, exact.soffset, exact.finish, exact.foffset);\n });\n };\n const clearSelection = () => {\n clear(win);\n };\n const collapseSelection = (toStart = false) => {\n get$2(win).each(sel => sel.fold(rng => rng.collapse(toStart), (startSitu, finishSitu) => {\n const situ = toStart ? startSitu : finishSitu;\n setRelative(win, situ, situ);\n }, (start, soffset, finish, foffset) => {\n const node = toStart ? start : finish;\n const offset = toStart ? soffset : foffset;\n setExact(win, node, offset, node, offset);\n }));\n };\n const selectNode = element => {\n setToElement(win, element, false);\n };\n const selectContents = element => {\n setToElement(win, element);\n };\n const setSelection = sel => {\n setExact(win, sel.start, sel.soffset, sel.finish, sel.foffset);\n };\n const setRelativeSelection = (start, finish) => {\n setRelative(win, start, finish);\n };\n const getInnerHeight = () => {\n return win.innerHeight;\n };\n const getScrollY = () => {\n const pos = get$3(SugarElement.fromDom(win.document));\n return pos.top;\n };\n const scrollBy = (x, y) => {\n by(x, y, SugarElement.fromDom(win.document));\n };\n return {\n elementFromPoint,\n getRect,\n getRangedRect,\n getSelection,\n fromSitus,\n situsFromPoint,\n clearSelection,\n collapseSelection,\n setSelection,\n setRelativeSelection,\n selectNode,\n selectContents,\n getInnerHeight,\n getScrollY,\n scrollBy\n };\n };\n\n const rc = (rows, cols) => ({\n rows,\n cols\n });\n const mouse = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n const handlers = MouseSelection(bridge, container, isRoot, annotations);\n return {\n clearstate: handlers.clearstate,\n mousedown: handlers.mousedown,\n mouseover: handlers.mouseover,\n mouseup: handlers.mouseup\n };\n };\n const isEditableNode = node => closest$2(node, isHTMLElement).exists(isEditable$1);\n const isEditableSelection = (start, finish) => isEditableNode(start) || isEditableNode(finish);\n const keyboard = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n const clearToNavigate = () => {\n annotations.clear(container);\n return Optional.none();\n };\n const keydown = (event, start, soffset, finish, foffset, direction) => {\n const realEvent = event.raw;\n const keycode = realEvent.which;\n const shiftKey = realEvent.shiftKey === true;\n const handler = retrieve$1(container, annotations.selectedSelector).fold(() => {\n if (isNavigation(keycode) && !shiftKey) {\n annotations.clearBeforeUpdate(container);\n }\n if (isNavigation(keycode) && shiftKey && !isEditableSelection(start, finish)) {\n return Optional.none;\n } else if (isDown(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, down, finish, start, annotations.selectRange);\n } else if (isUp(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, up, finish, start, annotations.selectRange);\n } else if (isDown(keycode)) {\n return curry(navigate, bridge, isRoot, down, finish, start, lastDownCheck);\n } else if (isUp(keycode)) {\n return curry(navigate, bridge, isRoot, up, finish, start, firstUpCheck);\n } else {\n return Optional.none;\n }\n }, selected => {\n const update$1 = attempts => {\n return () => {\n const navigation = findMap(attempts, delta => {\n return update(delta.rows, delta.cols, container, selected, annotations);\n });\n return navigation.fold(() => {\n return getEdges(container, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(edges => {\n const relative = isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;\n bridge.setRelativeSelection(Situ.on(edges.first, 0), relative(edges.table));\n annotations.clear(container);\n return Response.create(Optional.none(), true);\n });\n }, _ => {\n return Optional.some(Response.create(Optional.none(), true));\n });\n };\n };\n if (isNavigation(keycode) && shiftKey && !isEditableSelection(start, finish)) {\n return Optional.none;\n } else if (isDown(keycode) && shiftKey) {\n return update$1([rc(+1, 0)]);\n } else if (isUp(keycode) && shiftKey) {\n return update$1([rc(-1, 0)]);\n } else if (direction.isBackward(keycode) && shiftKey) {\n return update$1([\n rc(0, -1),\n rc(-1, 0)\n ]);\n } else if (direction.isForward(keycode) && shiftKey) {\n return update$1([\n rc(0, +1),\n rc(+1, 0)\n ]);\n } else if (isNavigation(keycode) && !shiftKey) {\n return clearToNavigate;\n } else {\n return Optional.none;\n }\n });\n return handler();\n };\n const keyup = (event, start, soffset, finish, foffset) => {\n return retrieve$1(container, annotations.selectedSelector).fold(() => {\n const realEvent = event.raw;\n const keycode = realEvent.which;\n const shiftKey = realEvent.shiftKey === true;\n if (!shiftKey) {\n return Optional.none();\n }\n if (isNavigation(keycode) && isEditableSelection(start, finish)) {\n return sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);\n } else {\n return Optional.none();\n }\n }, Optional.none);\n };\n return {\n keydown,\n keyup\n };\n };\n const external = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n return (start, finish) => {\n annotations.clearBeforeUpdate(container);\n identify(start, finish, isRoot).each(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n bridge.collapseSelection();\n });\n };\n };\n\n const read = (element, attr) => {\n const value = get$b(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$2 = (element, attr, id) => {\n const old = read(element, attr);\n const nu = old.concat([id]);\n set$2(element, attr, nu.join(' '));\n return true;\n };\n const remove$4 = (element, attr, id) => {\n const nu = filter$2(read(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$2(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$1 = element => read(element, 'class');\n const add$1 = (element, clazz) => add$2(element, 'class', clazz);\n const remove$3 = (element, clazz) => remove$4(element, 'class', clazz);\n\n const add = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$1(element);\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n const remove$2 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const remove$1 = (element, classes) => {\n each$2(classes, x => {\n remove$2(element, x);\n });\n };\n\n const addClass = clazz => element => {\n add(element, clazz);\n };\n const removeClasses = classes => element => {\n remove$1(element, classes);\n };\n\n const byClass = ephemera => {\n const addSelectionClass = addClass(ephemera.selected);\n const removeSelectionClasses = removeClasses([\n ephemera.selected,\n ephemera.lastSelected,\n ephemera.firstSelected\n ]);\n const clear = container => {\n const sels = descendants(container, ephemera.selectedSelector);\n each$2(sels, removeSelectionClasses);\n };\n const selectRange = (container, cells, start, finish) => {\n clear(container);\n each$2(cells, addSelectionClass);\n add(start, ephemera.firstSelected);\n add(finish, ephemera.lastSelected);\n };\n return {\n clearBeforeUpdate: clear,\n clear,\n selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n const byAttr = (ephemera, onSelection, onClear) => {\n const removeSelectionAttributes = element => {\n remove$7(element, ephemera.selected);\n remove$7(element, ephemera.firstSelected);\n remove$7(element, ephemera.lastSelected);\n };\n const addSelectionAttribute = element => {\n set$2(element, ephemera.selected, '1');\n };\n const clear = container => {\n clearBeforeUpdate(container);\n onClear();\n };\n const clearBeforeUpdate = container => {\n const sels = descendants(container, `${ ephemera.selectedSelector },${ ephemera.firstSelectedSelector },${ ephemera.lastSelectedSelector }`);\n each$2(sels, removeSelectionAttributes);\n };\n const selectRange = (container, cells, start, finish) => {\n clear(container);\n each$2(cells, addSelectionAttribute);\n set$2(start, ephemera.firstSelected, '1');\n set$2(finish, ephemera.lastSelected, '1');\n onSelection(cells, start, finish);\n };\n return {\n clearBeforeUpdate,\n clear,\n selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n const SelectionAnnotation = {\n byClass,\n byAttr\n };\n\n const fold = (subject, onNone, onMultiple, onSingle) => {\n switch (subject.tag) {\n case 'none':\n return onNone();\n case 'single':\n return onSingle(subject.element);\n case 'multiple':\n return onMultiple(subject.elements);\n }\n };\n const none = () => ({ tag: 'none' });\n const multiple = elements => ({\n tag: 'multiple',\n elements\n });\n const single = element => ({\n tag: 'single',\n element\n });\n\n const Selections = (lazyRoot, getStart, selectedSelector) => {\n const get = () => retrieve(lazyRoot(), selectedSelector).fold(() => getStart().fold(none, single), multiple);\n return { get };\n };\n\n const getUpOrLeftCells = (grid, selectedCells) => {\n const upGrid = grid.slice(0, selectedCells[selectedCells.length - 1].row + 1);\n const upDetails = toDetailList(upGrid);\n return bind$2(upDetails, detail => {\n const slicedCells = detail.cells.slice(0, selectedCells[selectedCells.length - 1].column + 1);\n return map$1(slicedCells, cell => cell.element);\n });\n };\n const getDownOrRightCells = (grid, selectedCells) => {\n const downGrid = grid.slice(selectedCells[0].row + selectedCells[0].rowspan - 1, grid.length);\n const downDetails = toDetailList(downGrid);\n return bind$2(downDetails, detail => {\n const slicedCells = detail.cells.slice(selectedCells[0].column + selectedCells[0].colspan - 1, detail.cells.length);\n return map$1(slicedCells, cell => cell.element);\n });\n };\n const getOtherCells = (table, target, generators) => {\n const warehouse = Warehouse.fromTable(table);\n const details = onCells(warehouse, target);\n return details.map(selectedCells => {\n const grid = toGrid(warehouse, generators, false);\n const {rows} = extractGridDetails(grid);\n const upOrLeftCells = getUpOrLeftCells(rows, selectedCells);\n const downOrRightCells = getDownOrRightCells(rows, selectedCells);\n return {\n upOrLeftCells,\n downOrRightCells\n };\n });\n };\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent$1 = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$1 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$1(element, event, filter, handler);\n const fromRawEvent = fromRawEvent$1;\n\n const hasInternalTarget = e => !has(SugarElement.fromDom(e.target), 'ephox-snooker-resizer-bar');\n const TableCellSelectionHandler = (editor, resizeHandler) => {\n const cellSelection = Selections(() => SugarElement.fromDom(editor.getBody()), () => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)), ephemera.selectedSelector);\n const onSelection = (cells, start, finish) => {\n const tableOpt = table(start);\n tableOpt.each(table => {\n const cellsDom = map$1(cells, cell => cell.dom);\n const cloneFormats = getTableCloneElements(editor);\n const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), cloneFormats);\n const selectedCells = getCellsFromSelection(editor);\n const otherCellsDom = getOtherCells(table, { selection: selectedCells }, generators).map(otherCells => map(otherCells, cellArr => map$1(cellArr, cell => cell.dom))).getOrUndefined();\n fireTableSelectionChange(editor, cellsDom, start.dom, finish.dom, otherCellsDom);\n });\n };\n const onClear = () => fireTableSelectionClear(editor);\n const annotations = SelectionAnnotation.byAttr(ephemera, onSelection, onClear);\n editor.on('init', _e => {\n const win = editor.getWin();\n const body = getBody(editor);\n const isRoot = getIsRoot(editor);\n const syncSelection = () => {\n const sel = editor.selection;\n const start = SugarElement.fromDom(sel.getStart());\n const end = SugarElement.fromDom(sel.getEnd());\n const shared = sharedOne(table, [\n start,\n end\n ]);\n shared.fold(() => annotations.clear(body), noop);\n };\n const mouseHandlers = mouse(win, body, isRoot, annotations);\n const keyHandlers = keyboard(win, body, isRoot, annotations);\n const external$1 = external(win, body, isRoot, annotations);\n const hasShiftKey = event => event.raw.shiftKey === true;\n editor.on('TableSelectorChange', e => external$1(e.start, e.finish));\n const handleResponse = (event, response) => {\n if (!hasShiftKey(event)) {\n return;\n }\n if (response.kill) {\n event.kill();\n }\n response.selection.each(ns => {\n const relative = SimSelection.relative(ns.start, ns.finish);\n const rng = asLtrRange(win, relative);\n editor.selection.setRng(rng);\n });\n };\n const keyup = event => {\n const wrappedEvent = fromRawEvent(event);\n if (wrappedEvent.raw.shiftKey && isNavigation(wrappedEvent.raw.which)) {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const end = SugarElement.fromDom(rng.endContainer);\n keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(response => {\n handleResponse(wrappedEvent, response);\n });\n }\n };\n const keydown = event => {\n const wrappedEvent = fromRawEvent(event);\n resizeHandler.hide();\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const end = SugarElement.fromDom(rng.endContainer);\n const direction = onDirection(ltr, rtl)(SugarElement.fromDom(editor.selection.getStart()));\n keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(response => {\n handleResponse(wrappedEvent, response);\n });\n resizeHandler.show();\n };\n const isLeftMouse = raw => raw.button === 0;\n const isLeftButtonPressed = raw => {\n if (raw.buttons === undefined) {\n return true;\n }\n return (raw.buttons & 1) !== 0;\n };\n const dragStart = _e => {\n mouseHandlers.clearstate();\n };\n const mouseDown = e => {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mousedown(fromRawEvent(e));\n }\n };\n const mouseOver = e => {\n if (isLeftButtonPressed(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseover(fromRawEvent(e));\n }\n };\n const mouseUp = e => {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseup(fromRawEvent(e));\n }\n };\n const getDoubleTap = () => {\n const lastTarget = Cell(SugarElement.fromDom(body));\n const lastTimeStamp = Cell(0);\n const touchEnd = t => {\n const target = SugarElement.fromDom(t.target);\n if (isTag('td')(target) || isTag('th')(target)) {\n const lT = lastTarget.get();\n const lTS = lastTimeStamp.get();\n if (eq$1(lT, target) && t.timeStamp - lTS < 300) {\n t.preventDefault();\n external$1(target, target);\n }\n }\n lastTarget.set(target);\n lastTimeStamp.set(t.timeStamp);\n };\n return { touchEnd };\n };\n const doubleTap = getDoubleTap();\n editor.on('dragstart', dragStart);\n editor.on('mousedown', mouseDown);\n editor.on('mouseover', mouseOver);\n editor.on('mouseup', mouseUp);\n editor.on('touchend', doubleTap.touchEnd);\n editor.on('keyup', keyup);\n editor.on('keydown', keydown);\n editor.on('NodeChange', syncSelection);\n });\n editor.on('PreInit', () => {\n editor.serializer.addTempAttr(ephemera.firstSelected);\n editor.serializer.addTempAttr(ephemera.lastSelected);\n });\n const clearSelectedCells = container => annotations.clear(SugarElement.fromDom(container));\n const getSelectedCells = () => fold(cellSelection.get(), constant([]), cells => {\n return map$1(cells, cell => cell.dom);\n }, cell => [cell.dom]);\n return {\n getSelectedCells,\n clearSelectedCells\n };\n };\n\n const Event = fields => {\n let handlers = [];\n const bind = handler => {\n if (handler === undefined) {\n throw new Error('Event bind error: undefined handler');\n }\n handlers.push(handler);\n };\n const unbind = handler => {\n handlers = filter$2(handlers, h => {\n return h !== handler;\n });\n };\n const trigger = (...args) => {\n const event = {};\n each$2(fields, (name, i) => {\n event[name] = args[i];\n });\n each$2(handlers, handler => {\n handler(event);\n });\n };\n return {\n bind,\n unbind,\n trigger\n };\n };\n\n const create$1 = typeDefs => {\n const registry = map(typeDefs, event => {\n return {\n bind: event.bind,\n unbind: event.unbind\n };\n });\n const trigger = map(typeDefs, event => {\n return event.trigger;\n });\n return {\n registry,\n trigger\n };\n };\n\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const sort = arr => {\n return arr.slice(0).sort();\n };\n const reqMessage = (required, keys) => {\n throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.');\n };\n const unsuppMessage = unsupported => {\n throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', '));\n };\n const validateStrArr = (label, array) => {\n if (!isArray(array)) {\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n }\n each$2(array, a => {\n if (!isString(a)) {\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n }\n });\n };\n const invalidTypeMessage = (incorrect, type) => {\n throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.');\n };\n const checkDupes = everything => {\n const sorted = sort(everything);\n const dupe = find$1(sorted, (s, i) => {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(d => {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n const base = (handleUnsupported, required) => {\n return baseWith(handleUnsupported, required, {\n validate: isFunction,\n label: 'function'\n });\n };\n const baseWith = (handleUnsupported, required, pred) => {\n if (required.length === 0) {\n throw new Error('You must specify at least one required field.');\n }\n validateStrArr('required', required);\n checkDupes(required);\n return obj => {\n const keys$1 = keys(obj);\n const allReqd = forall(required, req => {\n return contains$2(keys$1, req);\n });\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n handleUnsupported(required, keys$1);\n const invalidKeys = filter$2(required, key => {\n return !pred.validate(obj[key], key);\n });\n if (invalidKeys.length > 0) {\n invalidTypeMessage(invalidKeys, pred.label);\n }\n return obj;\n };\n };\n const handleExact = (required, keys) => {\n const unsupported = filter$2(keys, key => {\n return !contains$2(required, key);\n });\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n };\n const exactly = required => base(handleExact, required);\n\n const DragMode = exactly([\n 'compare',\n 'extract',\n 'mutate',\n 'sink'\n ]);\n const DragSink = exactly([\n 'element',\n 'start',\n 'stop',\n 'destroy'\n ]);\n const DragApi = exactly([\n 'forceDrop',\n 'drop',\n 'move',\n 'delayDrop'\n ]);\n\n const InDrag = () => {\n let previous = Optional.none();\n const reset = () => {\n previous = Optional.none();\n };\n const update = (mode, nu) => {\n const result = previous.map(old => {\n return mode.compare(old, nu);\n });\n previous = Optional.some(nu);\n return result;\n };\n const onEvent = (event, mode) => {\n const dataOption = mode.extract(event);\n dataOption.each(data => {\n const offset = update(mode, data);\n offset.each(d => {\n events.trigger.move(d);\n });\n });\n };\n const events = create$1({ move: Event(['info']) });\n return {\n onEvent,\n reset,\n events: events.registry\n };\n };\n\n const NoDrag = () => {\n const events = create$1({ move: Event(['info']) });\n return {\n onEvent: noop,\n reset: noop,\n events: events.registry\n };\n };\n\n const Movement = () => {\n const noDragState = NoDrag();\n const inDragState = InDrag();\n let dragState = noDragState;\n const on = () => {\n dragState.reset();\n dragState = inDragState;\n };\n const off = () => {\n dragState.reset();\n dragState = noDragState;\n };\n const onEvent = (event, mode) => {\n dragState.onEvent(event, mode);\n };\n const isOn = () => {\n return dragState === inDragState;\n };\n return {\n on,\n off,\n isOn,\n onEvent,\n events: inDragState.events\n };\n };\n\n const setup = (mutation, mode, settings) => {\n let active = false;\n const events = create$1({\n start: Event([]),\n stop: Event([])\n });\n const movement = Movement();\n const drop = () => {\n sink.stop();\n if (movement.isOn()) {\n movement.off();\n events.trigger.stop();\n }\n };\n const throttledDrop = last(drop, 200);\n const go = parent => {\n sink.start(parent);\n movement.on();\n events.trigger.start();\n };\n const mousemove = event => {\n throttledDrop.cancel();\n movement.onEvent(event, mode);\n };\n movement.events.move.bind(event => {\n mode.mutate(mutation, event.info);\n });\n const on = () => {\n active = true;\n };\n const off = () => {\n active = false;\n };\n const isActive = () => active;\n const runIfActive = f => {\n return (...args) => {\n if (active) {\n f.apply(null, args);\n }\n };\n };\n const sink = mode.sink(DragApi({\n forceDrop: drop,\n drop: runIfActive(drop),\n move: runIfActive(mousemove),\n delayDrop: runIfActive(throttledDrop.throttle)\n }), settings);\n const destroy = () => {\n sink.destroy();\n };\n return {\n element: sink.element,\n go,\n on,\n off,\n isActive,\n destroy,\n events: events.registry\n };\n };\n\n const css = namespace => {\n const dashNamespace = namespace.replace(/\\./g, '-');\n const resolve = str => {\n return dashNamespace + '-' + str;\n };\n return { resolve };\n };\n\n const styles$1 = css('ephox-dragster');\n const resolve$1 = styles$1.resolve;\n\n const Blocker = options => {\n const settings = {\n layerClass: resolve$1('blocker'),\n ...options\n };\n const div = SugarElement.fromTag('div');\n set$2(div, 'role', 'presentation');\n setAll(div, {\n position: 'fixed',\n left: '0px',\n top: '0px',\n width: '100%',\n height: '100%'\n });\n add(div, resolve$1('blocker'));\n add(div, settings.layerClass);\n const element = constant(div);\n const destroy = () => {\n remove$6(div);\n };\n return {\n element,\n destroy\n };\n };\n\n const compare = (old, nu) => {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n const extract = event => {\n return Optional.some(SugarPosition(event.x, event.y));\n };\n const mutate = (mutation, info) => {\n mutation.mutate(info.left, info.top);\n };\n const sink = (dragApi, settings) => {\n const blocker = Blocker(settings);\n const mdown = bind(blocker.element(), 'mousedown', dragApi.forceDrop);\n const mup = bind(blocker.element(), 'mouseup', dragApi.drop);\n const mmove = bind(blocker.element(), 'mousemove', dragApi.move);\n const mout = bind(blocker.element(), 'mouseout', dragApi.delayDrop);\n const destroy = () => {\n blocker.destroy();\n mup.unbind();\n mmove.unbind();\n mout.unbind();\n mdown.unbind();\n };\n const start = parent => {\n append$1(parent, blocker.element());\n };\n const stop = () => {\n remove$6(blocker.element());\n };\n return DragSink({\n element: blocker.element,\n start,\n stop,\n destroy\n });\n };\n var MouseDrag = DragMode({\n compare,\n extract,\n sink,\n mutate\n });\n\n const transform = (mutation, settings = {}) => {\n var _a;\n const mode = (_a = settings.mode) !== null && _a !== void 0 ? _a : MouseDrag;\n return setup(mutation, mode, settings);\n };\n\n const styles = css('ephox-snooker');\n const resolve = styles.resolve;\n\n const Mutation = () => {\n const events = create$1({\n drag: Event([\n 'xDelta',\n 'yDelta'\n ])\n });\n const mutate = (x, y) => {\n events.trigger.drag(x, y);\n };\n return {\n mutate,\n events: events.registry\n };\n };\n\n const BarMutation = () => {\n const events = create$1({\n drag: Event([\n 'xDelta',\n 'yDelta',\n 'target'\n ])\n });\n let target = Optional.none();\n const delegate = Mutation();\n delegate.events.drag.bind(event => {\n target.each(t => {\n events.trigger.drag(event.xDelta, event.yDelta, t);\n });\n });\n const assign = t => {\n target = Optional.some(t);\n };\n const get = () => {\n return target;\n };\n return {\n assign,\n get,\n mutate: delegate.mutate,\n events: events.registry\n };\n };\n\n const col = (column, x, y, w, h) => {\n const bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x - w / 2 + 'px',\n top: y + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-column': column,\n 'role': 'presentation'\n });\n return bar;\n };\n const row = (r, x, y, w, h) => {\n const bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x + 'px',\n top: y - h / 2 + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-row': r,\n 'role': 'presentation'\n });\n return bar;\n };\n\n const resizeBar = resolve('resizer-bar');\n const resizeRowBar = resolve('resizer-rows');\n const resizeColBar = resolve('resizer-cols');\n const BAR_THICKNESS = 7;\n const resizableRows = (warehouse, isResizable) => bind$2(warehouse.all, (row, i) => isResizable(row.element) ? [i] : []);\n const resizableColumns = (warehouse, isResizable) => {\n const resizableCols = [];\n range$1(warehouse.grid.columns, index => {\n const colElmOpt = Warehouse.getColumnAt(warehouse, index).map(col => col.element);\n if (colElmOpt.forall(isResizable)) {\n resizableCols.push(index);\n }\n });\n return filter$2(resizableCols, colIndex => {\n const columnCells = Warehouse.filterItems(warehouse, cell => cell.column === colIndex);\n return forall(columnCells, cell => isResizable(cell.element));\n });\n };\n const destroy = wire => {\n const previous = descendants(wire.parent(), '.' + resizeBar);\n each$2(previous, remove$6);\n };\n const drawBar = (wire, positions, create) => {\n const origin = wire.origin();\n each$2(positions, cpOption => {\n cpOption.each(cp => {\n const bar = create(origin, cp);\n add(bar, resizeBar);\n append$1(wire.parent(), bar);\n });\n });\n };\n const refreshCol = (wire, colPositions, position, tableHeight) => {\n drawBar(wire, colPositions, (origin, cp) => {\n const colBar = col(cp.col, cp.x - origin.left, position.top - origin.top, BAR_THICKNESS, tableHeight);\n add(colBar, resizeColBar);\n return colBar;\n });\n };\n const refreshRow = (wire, rowPositions, position, tableWidth) => {\n drawBar(wire, rowPositions, (origin, cp) => {\n const rowBar = row(cp.row, position.left - origin.left, cp.y - origin.top, tableWidth, BAR_THICKNESS);\n add(rowBar, resizeRowBar);\n return rowBar;\n });\n };\n const refreshGrid = (warhouse, wire, table, rows, cols) => {\n const position = absolute(table);\n const isResizable = wire.isResizable;\n const rowPositions = rows.length > 0 ? height.positions(rows, table) : [];\n const resizableRowBars = rowPositions.length > 0 ? resizableRows(warhouse, isResizable) : [];\n const resizableRowPositions = filter$2(rowPositions, (_pos, i) => exists(resizableRowBars, barIndex => i === barIndex));\n refreshRow(wire, resizableRowPositions, position, getOuter$2(table));\n const colPositions = cols.length > 0 ? width.positions(cols, table) : [];\n const resizableColBars = colPositions.length > 0 ? resizableColumns(warhouse, isResizable) : [];\n const resizableColPositions = filter$2(colPositions, (_pos, i) => exists(resizableColBars, barIndex => i === barIndex));\n refreshCol(wire, resizableColPositions, position, getOuter$1(table));\n };\n const refresh = (wire, table) => {\n destroy(wire);\n if (wire.isResizable(table)) {\n const warehouse = Warehouse.fromTable(table);\n const rows$1 = rows(warehouse);\n const cols = columns(warehouse);\n refreshGrid(warehouse, wire, table, rows$1, cols);\n }\n };\n const each = (wire, f) => {\n const bars = descendants(wire.parent(), '.' + resizeBar);\n each$2(bars, f);\n };\n const hide = wire => {\n each(wire, bar => {\n set$1(bar, 'display', 'none');\n });\n };\n const show = wire => {\n each(wire, bar => {\n set$1(bar, 'display', 'block');\n });\n };\n const isRowBar = element => {\n return has(element, resizeRowBar);\n };\n const isColBar = element => {\n return has(element, resizeColBar);\n };\n\n const resizeBarDragging = resolve('resizer-bar-dragging');\n const BarManager = wire => {\n const mutation = BarMutation();\n const resizing = transform(mutation, {});\n let hoverTable = Optional.none();\n const getResizer = (element, type) => {\n return Optional.from(get$b(element, type));\n };\n mutation.events.drag.bind(event => {\n getResizer(event.target, 'data-row').each(_dataRow => {\n const currentRow = getCssValue(event.target, 'top');\n set$1(event.target, 'top', currentRow + event.yDelta + 'px');\n });\n getResizer(event.target, 'data-column').each(_dataCol => {\n const currentCol = getCssValue(event.target, 'left');\n set$1(event.target, 'left', currentCol + event.xDelta + 'px');\n });\n });\n const getDelta = (target, dir) => {\n const newX = getCssValue(target, dir);\n const oldX = getAttrValue(target, 'data-initial-' + dir, 0);\n return newX - oldX;\n };\n resizing.events.stop.bind(() => {\n mutation.get().each(target => {\n hoverTable.each(table => {\n getResizer(target, 'data-row').each(row => {\n const delta = getDelta(target, 'top');\n remove$7(target, 'data-initial-top');\n events.trigger.adjustHeight(table, delta, parseInt(row, 10));\n });\n getResizer(target, 'data-column').each(column => {\n const delta = getDelta(target, 'left');\n remove$7(target, 'data-initial-left');\n events.trigger.adjustWidth(table, delta, parseInt(column, 10));\n });\n refresh(wire, table);\n });\n });\n });\n const handler = (target, dir) => {\n events.trigger.startAdjust();\n mutation.assign(target);\n set$2(target, 'data-initial-' + dir, getCssValue(target, dir));\n add(target, resizeBarDragging);\n set$1(target, 'opacity', '0.2');\n resizing.go(wire.parent());\n };\n const mousedown = bind(wire.parent(), 'mousedown', event => {\n if (isRowBar(event.target)) {\n handler(event.target, 'top');\n }\n if (isColBar(event.target)) {\n handler(event.target, 'left');\n }\n });\n const isRoot = e => {\n return eq$1(e, wire.view());\n };\n const findClosestEditableTable = target => closest$1(target, 'table', isRoot).filter(isEditable$1);\n const mouseover = bind(wire.view(), 'mouseover', event => {\n findClosestEditableTable(event.target).fold(() => {\n if (inBody(event.target)) {\n destroy(wire);\n }\n }, table => {\n if (resizing.isActive()) {\n hoverTable = Optional.some(table);\n refresh(wire, table);\n }\n });\n });\n const destroy$1 = () => {\n mousedown.unbind();\n mouseover.unbind();\n resizing.destroy();\n destroy(wire);\n };\n const refresh$1 = tbl => {\n refresh(wire, tbl);\n };\n const events = create$1({\n adjustHeight: Event([\n 'table',\n 'delta',\n 'row'\n ]),\n adjustWidth: Event([\n 'table',\n 'delta',\n 'column'\n ]),\n startAdjust: Event([])\n });\n return {\n destroy: destroy$1,\n refresh: refresh$1,\n on: resizing.on,\n off: resizing.off,\n hideBars: curry(hide, wire),\n showBars: curry(show, wire),\n events: events.registry\n };\n };\n\n const create = (wire, resizing, lazySizing) => {\n const hdirection = height;\n const vdirection = width;\n const manager = BarManager(wire);\n const events = create$1({\n beforeResize: Event([\n 'table',\n 'type'\n ]),\n afterResize: Event([\n 'table',\n 'type'\n ]),\n startDrag: Event([])\n });\n manager.events.adjustHeight.bind(event => {\n const table = event.table;\n events.trigger.beforeResize(table, 'row');\n const delta = hdirection.delta(event.delta, table);\n adjustHeight(table, delta, event.row);\n events.trigger.afterResize(table, 'row');\n });\n manager.events.startAdjust.bind(_event => {\n events.trigger.startDrag();\n });\n manager.events.adjustWidth.bind(event => {\n const table = event.table;\n events.trigger.beforeResize(table, 'col');\n const delta = vdirection.delta(event.delta, table);\n const tableSize = lazySizing(table);\n adjustWidth(table, delta, event.column, resizing, tableSize);\n events.trigger.afterResize(table, 'col');\n });\n return {\n on: manager.on,\n off: manager.off,\n refreshBars: manager.refresh,\n hideBars: manager.hideBars,\n showBars: manager.showBars,\n destroy: manager.destroy,\n events: events.registry\n };\n };\n const TableResize = { create };\n\n const only = (element, isResizable) => {\n const parent = isDocument(element) ? documentElement(element) : element;\n return {\n parent: constant(parent),\n view: constant(element),\n origin: constant(SugarPosition(0, 0)),\n isResizable\n };\n };\n const detached = (editable, chrome, isResizable) => {\n const origin = () => absolute(chrome);\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin,\n isResizable\n };\n };\n const body = (editable, chrome, isResizable) => {\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: constant(SugarPosition(0, 0)),\n isResizable\n };\n };\n const ResizeWire = {\n only,\n detached,\n body\n };\n\n const createContainer = () => {\n const container = SugarElement.fromTag('div');\n setAll(container, {\n position: 'static',\n height: '0',\n width: '0',\n padding: '0',\n margin: '0',\n border: '0'\n });\n append$1(body$1(), container);\n return container;\n };\n const get = (editor, isResizable) => {\n return editor.inline ? ResizeWire.body(SugarElement.fromDom(editor.getBody()), createContainer(), isResizable) : ResizeWire.only(SugarElement.fromDom(editor.getDoc()), isResizable);\n };\n const remove = (editor, wire) => {\n if (editor.inline) {\n remove$6(wire.parent());\n }\n };\n\n const isTable = node => isNonNullable(node) && node.nodeName === 'TABLE';\n const barResizerPrefix = 'bar-';\n const isResizable = elm => get$b(elm, 'data-mce-resize') !== 'false';\n const syncTableCellPixels = table => {\n const warehouse = Warehouse.fromTable(table);\n if (!Warehouse.hasColumns(warehouse)) {\n each$2(cells$1(table), cell => {\n const computedWidth = get$a(cell, 'width');\n set$1(cell, 'width', computedWidth);\n remove$7(cell, 'width');\n });\n }\n };\n const isCornerResize = origin => startsWith(origin, 'corner-');\n const getCornerLocation = origin => removeLeading(origin, 'corner-');\n const TableResizeHandler = editor => {\n const selectionRng = value();\n const tableResize = value();\n const resizeWire = value();\n let startW;\n let startRawW;\n let startH;\n let startRawH;\n const lazySizing = table => get$5(editor, table);\n const lazyResizingBehaviour = () => isPreserveTableColumnResizing(editor) ? preserveTable() : resizeTable();\n const getNumColumns = table => getGridSize(table).columns;\n const getNumRows = table => getGridSize(table).rows;\n const afterCornerResize = (table, origin, width, height) => {\n const location = getCornerLocation(origin);\n const isRightEdgeResize = endsWith(location, 'e');\n const isNorthEdgeResize = startsWith(location, 'n');\n if (startRawW === '') {\n convertToPercentSizeWidth(table);\n }\n if (startRawH === '') {\n convertToPixelSizeHeight(table);\n }\n if (width !== startW && startRawW !== '') {\n set$1(table, 'width', startRawW);\n const resizing = lazyResizingBehaviour();\n const tableSize = lazySizing(table);\n const col = isPreserveTableColumnResizing(editor) || isRightEdgeResize ? getNumColumns(table) - 1 : 0;\n adjustWidth(table, width - startW, col, resizing, tableSize);\n } else if (isPercentage$1(startRawW)) {\n const percentW = parseFloat(startRawW.replace('%', ''));\n const targetPercentW = width * percentW / startW;\n set$1(table, 'width', targetPercentW + '%');\n }\n if (isPixel(startRawW)) {\n syncTableCellPixels(table);\n }\n if (height !== startH && startRawH !== '') {\n set$1(table, 'height', startRawH);\n const idx = isNorthEdgeResize ? 0 : getNumRows(table) - 1;\n adjustHeight(table, height - startH, idx);\n }\n };\n const destroy = () => {\n tableResize.on(sz => {\n sz.destroy();\n });\n resizeWire.on(w => {\n remove(editor, w);\n });\n };\n editor.on('init', () => {\n const rawWire = get(editor, isResizable);\n resizeWire.set(rawWire);\n if (hasTableObjectResizing(editor) && hasTableResizeBars(editor)) {\n const resizing = lazyResizingBehaviour();\n const sz = TableResize.create(rawWire, resizing, lazySizing);\n if (!editor.mode.isReadOnly()) {\n sz.on();\n }\n sz.events.startDrag.bind(_event => {\n selectionRng.set(editor.selection.getRng());\n });\n sz.events.beforeResize.bind(event => {\n const rawTable = event.table.dom;\n fireObjectResizeStart(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n });\n sz.events.afterResize.bind(event => {\n const table = event.table;\n const rawTable = table.dom;\n removeDataStyle(table);\n selectionRng.on(rng => {\n editor.selection.setRng(rng);\n editor.focus();\n });\n fireObjectResized(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n editor.undoManager.add();\n });\n tableResize.set(sz);\n }\n });\n editor.on('ObjectResizeStart', e => {\n const targetElm = e.target;\n if (isTable(targetElm) && !editor.mode.isReadOnly()) {\n const table = SugarElement.fromDom(targetElm);\n each$2(editor.dom.select('.mce-clonedresizable'), clone => {\n editor.dom.addClass(clone, 'mce-' + getTableColumnResizingBehaviour(editor) + '-columns');\n });\n if (!isPixelSizing(table) && isTablePixelsForced(editor)) {\n convertToPixelSizeWidth(table);\n } else if (!isPercentSizing(table) && isTablePercentagesForced(editor)) {\n convertToPercentSizeWidth(table);\n }\n if (isNoneSizing(table) && startsWith(e.origin, barResizerPrefix)) {\n convertToPercentSizeWidth(table);\n }\n startW = e.width;\n startRawW = isTableResponsiveForced(editor) ? '' : getRawWidth(editor, targetElm).getOr('');\n startH = e.height;\n startRawH = getRawHeight(editor, targetElm).getOr('');\n }\n });\n editor.on('ObjectResized', e => {\n const targetElm = e.target;\n if (isTable(targetElm)) {\n const table = SugarElement.fromDom(targetElm);\n const origin = e.origin;\n if (isCornerResize(origin)) {\n afterCornerResize(table, origin, e.width, e.height);\n }\n removeDataStyle(table);\n fireTableModified(editor, table.dom, styleModified);\n }\n });\n editor.on('SwitchMode', () => {\n tableResize.on(resize => {\n if (editor.mode.isReadOnly()) {\n resize.off();\n resize.hideBars();\n } else {\n resize.on();\n resize.showBars();\n }\n });\n });\n editor.on('dragstart dragend', e => {\n tableResize.on(resize => {\n if (e.type === 'dragstart') {\n resize.hideBars();\n resize.off();\n } else {\n resize.on();\n resize.showBars();\n }\n });\n });\n editor.on('remove', () => {\n destroy();\n });\n const refresh = table => {\n tableResize.on(resize => resize.refreshBars(SugarElement.fromDom(table)));\n };\n const hide = () => {\n tableResize.on(resize => resize.hideBars());\n };\n const show = () => {\n tableResize.on(resize => resize.showBars());\n };\n return {\n refresh,\n hide,\n show\n };\n };\n\n const setupTable = editor => {\n register(editor);\n const resizeHandler = TableResizeHandler(editor);\n const cellSelectionHandler = TableCellSelectionHandler(editor, resizeHandler);\n const actions = TableActions(editor, resizeHandler, cellSelectionHandler);\n registerCommands(editor, actions);\n registerQueryCommands(editor, actions);\n registerEvents(editor, actions);\n return {\n getSelectedCells: cellSelectionHandler.getSelectedCells,\n clearSelectedCells: cellSelectionHandler.clearSelectedCells\n };\n };\n\n const DomModel = editor => {\n const table = setupTable(editor);\n return { table };\n };\n var Model = () => {\n global$1.add('dom', DomModel);\n };\n\n Model();\n\n})();\n","// Exports the \"autolink\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/autolink')\n// ES2015:\n// import 'tinymce/plugins/autolink'\nrequire('./plugin.js');","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const link = () => /(?:[A-Za-z][A-Za-z\\d.+-]{0,14}:\\/\\/(?:[-.~*+=!&;:'%@?^${}(),\\w]+@)?|www\\.|[-;:&=+$,.\\w]+@)[A-Za-z\\d-]+(?:\\.[A-Za-z\\d-]+)*(?::\\d+)?(?:\\/(?:[-.~*+=!;:'%@$(),\\/\\w]*[-~*+=%@$()\\/\\w])?)?(?:\\?(?:[-.~*+=!&;:'%@?^${}(),\\/\\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\\/\\w]+))?/g;\n\n const option = name => editor => editor.options.get(name);\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('autolink_pattern', {\n processor: 'regexp',\n default: new RegExp('^' + link().source + '$', 'i')\n });\n registerOption('link_default_target', { processor: 'string' });\n registerOption('link_default_protocol', {\n processor: 'string',\n default: 'https'\n });\n };\n const getAutoLinkPattern = option('autolink_pattern');\n const getDefaultLinkTarget = option('link_default_target');\n const getDefaultLinkProtocol = option('link_default_protocol');\n const allowUnsafeLinkTarget = option('allow_unsafe_link_target');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType = type => value => typeOf(value) === type;\n const eq = t => a => t === a;\n const isString = isType('string');\n const isUndefined = eq(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n\n const not = f => t => !f(t);\n\n const hasOwnProperty = Object.hasOwnProperty;\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const contains = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n\n const zeroWidth = '\\uFEFF';\n const isZwsp = char => char === zeroWidth;\n const removeZwsp = s => s.replace(/\\uFEFF/g, '');\n\n var global = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');\n\n const isTextNode = node => node.nodeType === 3;\n const isElement = node => node.nodeType === 1;\n const isBracketOrSpace = char => /^[(\\[{ \\u00a0]$/.test(char);\n const hasProtocol = url => /^([A-Za-z][A-Za-z\\d.+-]*:\\/\\/)|mailto:/.test(url);\n const isPunctuation = char => /[?!,.;:]/.test(char);\n const findChar = (text, index, predicate) => {\n for (let i = index - 1; i >= 0; i--) {\n const char = text.charAt(i);\n if (!isZwsp(char) && predicate(char)) {\n return i;\n }\n }\n return -1;\n };\n const freefallRtl = (container, offset) => {\n let tempNode = container;\n let tempOffset = offset;\n while (isElement(tempNode) && tempNode.childNodes[tempOffset]) {\n tempNode = tempNode.childNodes[tempOffset];\n tempOffset = isTextNode(tempNode) ? tempNode.data.length : tempNode.childNodes.length;\n }\n return {\n container: tempNode,\n offset: tempOffset\n };\n };\n\n const parseCurrentLine = (editor, offset) => {\n var _a;\n const voidElements = editor.schema.getVoidElements();\n const autoLinkPattern = getAutoLinkPattern(editor);\n const {dom, selection} = editor;\n if (dom.getParent(selection.getNode(), 'a[href]') !== null || editor.mode.isReadOnly()) {\n return null;\n }\n const rng = selection.getRng();\n const textSeeker = global(dom, node => {\n return dom.isBlock(node) || has(voidElements, node.nodeName.toLowerCase()) || dom.getContentEditable(node) === 'false';\n });\n const {\n container: endContainer,\n offset: endOffset\n } = freefallRtl(rng.endContainer, rng.endOffset);\n const root = (_a = dom.getParent(endContainer, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();\n const endSpot = textSeeker.backwards(endContainer, endOffset + offset, (node, offset) => {\n const text = node.data;\n const idx = findChar(text, offset, not(isBracketOrSpace));\n return idx === -1 || isPunctuation(text[idx]) ? idx : idx + 1;\n }, root);\n if (!endSpot) {\n return null;\n }\n let lastTextNode = endSpot.container;\n const startSpot = textSeeker.backwards(endSpot.container, endSpot.offset, (node, offset) => {\n lastTextNode = node;\n const idx = findChar(node.data, offset, isBracketOrSpace);\n return idx === -1 ? idx : idx + 1;\n }, root);\n const newRng = dom.createRng();\n if (!startSpot) {\n newRng.setStart(lastTextNode, 0);\n } else {\n newRng.setStart(startSpot.container, startSpot.offset);\n }\n newRng.setEnd(endSpot.container, endSpot.offset);\n const rngText = removeZwsp(newRng.toString());\n const matches = rngText.match(autoLinkPattern);\n if (matches) {\n let url = matches[0];\n if (startsWith(url, 'www.')) {\n const protocol = getDefaultLinkProtocol(editor);\n url = protocol + '://' + url;\n } else if (contains(url, '@') && !hasProtocol(url)) {\n url = 'mailto:' + url;\n }\n return {\n rng: newRng,\n url\n };\n } else {\n return null;\n }\n };\n const convertToLink = (editor, result) => {\n const {dom, selection} = editor;\n const {rng, url} = result;\n const bookmark = selection.getBookmark();\n selection.setRng(rng);\n const command = 'createlink';\n const args = {\n command,\n ui: false,\n value: url\n };\n const beforeExecEvent = editor.dispatch('BeforeExecCommand', args);\n if (!beforeExecEvent.isDefaultPrevented()) {\n editor.getDoc().execCommand(command, false, url);\n editor.dispatch('ExecCommand', args);\n const defaultLinkTarget = getDefaultLinkTarget(editor);\n if (isString(defaultLinkTarget)) {\n const anchor = selection.getNode();\n dom.setAttrib(anchor, 'target', defaultLinkTarget);\n if (defaultLinkTarget === '_blank' && !allowUnsafeLinkTarget(editor)) {\n dom.setAttrib(anchor, 'rel', 'noopener');\n }\n }\n }\n selection.moveToBookmark(bookmark);\n editor.nodeChanged();\n };\n const handleSpacebar = editor => {\n const result = parseCurrentLine(editor, -1);\n if (isNonNullable(result)) {\n convertToLink(editor, result);\n }\n };\n const handleBracket = handleSpacebar;\n const handleEnter = editor => {\n const result = parseCurrentLine(editor, 0);\n if (isNonNullable(result)) {\n convertToLink(editor, result);\n }\n };\n const setup = editor => {\n editor.on('keydown', e => {\n if (e.keyCode === 13 && !e.isDefaultPrevented()) {\n handleEnter(editor);\n }\n });\n editor.on('keyup', e => {\n if (e.keyCode === 32) {\n handleSpacebar(editor);\n } else if (e.keyCode === 48 && e.shiftKey || e.keyCode === 221) {\n handleBracket(editor);\n }\n });\n };\n\n var Plugin = () => {\n global$1.add('autolink', editor => {\n register(editor);\n setup(editor);\n });\n };\n\n Plugin();\n\n})();\n","// Exports the \"autoresize\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/autoresize')\n// ES2015:\n// import 'tinymce/plugins/autoresize'\nrequire('./plugin.js');","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global = tinymce.util.Tools.resolve('tinymce.Env');\n\n const fireResizeEditor = editor => editor.dispatch('ResizeEditor');\n\n const option = name => editor => editor.options.get(name);\n const register$1 = editor => {\n const registerOption = editor.options.register;\n registerOption('autoresize_overflow_padding', {\n processor: 'number',\n default: 1\n });\n registerOption('autoresize_bottom_margin', {\n processor: 'number',\n default: 50\n });\n };\n const getMinHeight = option('min_height');\n const getMaxHeight = option('max_height');\n const getAutoResizeOverflowPadding = option('autoresize_overflow_padding');\n const getAutoResizeBottomMargin = option('autoresize_bottom_margin');\n\n const isFullscreen = editor => editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();\n const toggleScrolling = (editor, state) => {\n const body = editor.getBody();\n if (body) {\n body.style.overflowY = state ? '' : 'hidden';\n if (!state) {\n body.scrollTop = 0;\n }\n }\n };\n const parseCssValueToInt = (dom, elm, name, computed) => {\n var _a;\n const value = parseInt((_a = dom.getStyle(elm, name, computed)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(value) ? 0 : value;\n };\n const shouldScrollIntoView = trigger => {\n if ((trigger === null || trigger === void 0 ? void 0 : trigger.type.toLowerCase()) === 'setcontent') {\n const setContentEvent = trigger;\n return setContentEvent.selection === true || setContentEvent.paste === true;\n } else {\n return false;\n }\n };\n const resize = (editor, oldSize, trigger, getExtraMarginBottom) => {\n var _a;\n const dom = editor.dom;\n const doc = editor.getDoc();\n if (!doc) {\n return;\n }\n if (isFullscreen(editor)) {\n toggleScrolling(editor, true);\n return;\n }\n const docEle = doc.documentElement;\n const resizeBottomMargin = getExtraMarginBottom ? getExtraMarginBottom() : getAutoResizeOverflowPadding(editor);\n const minHeight = (_a = getMinHeight(editor)) !== null && _a !== void 0 ? _a : editor.getElement().offsetHeight;\n let resizeHeight = minHeight;\n const marginTop = parseCssValueToInt(dom, docEle, 'margin-top', true);\n const marginBottom = parseCssValueToInt(dom, docEle, 'margin-bottom', true);\n let contentHeight = docEle.offsetHeight + marginTop + marginBottom + resizeBottomMargin;\n if (contentHeight < 0) {\n contentHeight = 0;\n }\n const containerHeight = editor.getContainer().offsetHeight;\n const contentAreaHeight = editor.getContentAreaContainer().offsetHeight;\n const chromeHeight = containerHeight - contentAreaHeight;\n if (contentHeight + chromeHeight > minHeight) {\n resizeHeight = contentHeight + chromeHeight;\n }\n const maxHeight = getMaxHeight(editor);\n if (maxHeight && resizeHeight > maxHeight) {\n resizeHeight = maxHeight;\n toggleScrolling(editor, true);\n } else {\n toggleScrolling(editor, false);\n }\n const old = oldSize.get();\n if (old.set) {\n editor.dom.setStyles(editor.getDoc().documentElement, { 'min-height': 0 });\n editor.dom.setStyles(editor.getBody(), { 'min-height': 'inherit' });\n }\n if (resizeHeight !== old.totalHeight && (contentHeight - resizeBottomMargin !== old.contentHeight || !old.set)) {\n const deltaSize = resizeHeight - old.totalHeight;\n dom.setStyle(editor.getContainer(), 'height', resizeHeight + 'px');\n oldSize.set({\n totalHeight: resizeHeight,\n contentHeight,\n set: true\n });\n fireResizeEditor(editor);\n if (global.browser.isSafari() && (global.os.isMacOS() || global.os.isiOS())) {\n const win = editor.getWin();\n win.scrollTo(win.pageXOffset, win.pageYOffset);\n }\n if (editor.hasFocus() && shouldScrollIntoView(trigger)) {\n editor.selection.scrollIntoView();\n }\n if ((global.browser.isSafari() || global.browser.isChromium()) && deltaSize < 0) {\n resize(editor, oldSize, trigger, getExtraMarginBottom);\n }\n }\n };\n const setup = (editor, oldSize) => {\n const getExtraMarginBottom = () => getAutoResizeBottomMargin(editor);\n editor.on('init', e => {\n const overflowPadding = getAutoResizeOverflowPadding(editor);\n const dom = editor.dom;\n dom.setStyles(editor.getDoc().documentElement, { height: 'auto' });\n if (global.browser.isEdge() || global.browser.isIE()) {\n dom.setStyles(editor.getBody(), {\n 'paddingLeft': overflowPadding,\n 'paddingRight': overflowPadding,\n 'min-height': 0\n });\n } else {\n dom.setStyles(editor.getBody(), {\n paddingLeft: overflowPadding,\n paddingRight: overflowPadding\n });\n }\n resize(editor, oldSize, e, getExtraMarginBottom);\n });\n editor.on('NodeChange SetContent keyup FullscreenStateChanged ResizeContent', e => {\n resize(editor, oldSize, e, getExtraMarginBottom);\n });\n };\n\n const register = (editor, oldSize) => {\n editor.addCommand('mceAutoResize', () => {\n resize(editor, oldSize);\n });\n };\n\n var Plugin = () => {\n global$1.add('autoresize', editor => {\n register$1(editor);\n if (!editor.options.isSet('resize')) {\n editor.options.set('resize', false);\n }\n if (!editor.inline) {\n const oldSize = Cell({\n totalHeight: 0,\n contentHeight: 0,\n set: false\n });\n register(editor, oldSize);\n setup(editor, oldSize);\n }\n });\n };\n\n Plugin();\n\n})();\n","// Exports the \"emoticons\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/emoticons')\n// ES2015:\n// import 'tinymce/plugins/emoticons'\nrequire('./plugin.js');","window.tinymce.Resource.add(\"tinymce.plugins.emoticons\",{grinning:{keywords:[\"face\",\"smile\",\"happy\",\"joy\",\":D\",\"grin\"],char:\"😀\",fitzpatrick_scale:false,category:\"people\"},grimacing:{keywords:[\"face\",\"grimace\",\"teeth\"],char:\"😬\",fitzpatrick_scale:false,category:\"people\"},grin:{keywords:[\"face\",\"happy\",\"smile\",\"joy\",\"kawaii\"],char:\"😁\",fitzpatrick_scale:false,category:\"people\"},joy:{keywords:[\"face\",\"cry\",\"tears\",\"weep\",\"happy\",\"happytears\",\"haha\"],char:\"😂\",fitzpatrick_scale:false,category:\"people\"},rofl:{keywords:[\"face\",\"rolling\",\"floor\",\"laughing\",\"lol\",\"haha\"],char:\"🤣\",fitzpatrick_scale:false,category:\"people\"},partying:{keywords:[\"face\",\"celebration\",\"woohoo\"],char:\"🥳\",fitzpatrick_scale:false,category:\"people\"},smiley:{keywords:[\"face\",\"happy\",\"joy\",\"haha\",\":D\",\":)\",\"smile\",\"funny\"],char:\"😃\",fitzpatrick_scale:false,category:\"people\"},smile:{keywords:[\"face\",\"happy\",\"joy\",\"funny\",\"haha\",\"laugh\",\"like\",\":D\",\":)\"],char:\"😄\",fitzpatrick_scale:false,category:\"people\"},sweat_smile:{keywords:[\"face\",\"hot\",\"happy\",\"laugh\",\"sweat\",\"smile\",\"relief\"],char:\"😅\",fitzpatrick_scale:false,category:\"people\"},laughing:{keywords:[\"happy\",\"joy\",\"lol\",\"satisfied\",\"haha\",\"face\",\"glad\",\"XD\",\"laugh\"],char:\"😆\",fitzpatrick_scale:false,category:\"people\"},innocent:{keywords:[\"face\",\"angel\",\"heaven\",\"halo\"],char:\"😇\",fitzpatrick_scale:false,category:\"people\"},wink:{keywords:[\"face\",\"happy\",\"mischievous\",\"secret\",\";)\",\"smile\",\"eye\"],char:\"😉\",fitzpatrick_scale:false,category:\"people\"},blush:{keywords:[\"face\",\"smile\",\"happy\",\"flushed\",\"crush\",\"embarrassed\",\"shy\",\"joy\"],char:\"😊\",fitzpatrick_scale:false,category:\"people\"},slightly_smiling_face:{keywords:[\"face\",\"smile\"],char:\"🙂\",fitzpatrick_scale:false,category:\"people\"},upside_down_face:{keywords:[\"face\",\"flipped\",\"silly\",\"smile\"],char:\"🙃\",fitzpatrick_scale:false,category:\"people\"},relaxed:{keywords:[\"face\",\"blush\",\"massage\",\"happiness\"],char:\"☺️\",fitzpatrick_scale:false,category:\"people\"},yum:{keywords:[\"happy\",\"joy\",\"tongue\",\"smile\",\"face\",\"silly\",\"yummy\",\"nom\",\"delicious\",\"savouring\"],char:\"😋\",fitzpatrick_scale:false,category:\"people\"},relieved:{keywords:[\"face\",\"relaxed\",\"phew\",\"massage\",\"happiness\"],char:\"😌\",fitzpatrick_scale:false,category:\"people\"},heart_eyes:{keywords:[\"face\",\"love\",\"like\",\"affection\",\"valentines\",\"infatuation\",\"crush\",\"heart\"],char:\"😍\",fitzpatrick_scale:false,category:\"people\"},smiling_face_with_three_hearts:{keywords:[\"face\",\"love\",\"like\",\"affection\",\"valentines\",\"infatuation\",\"crush\",\"hearts\",\"adore\"],char:\"🥰\",fitzpatrick_scale:false,category:\"people\"},kissing_heart:{keywords:[\"face\",\"love\",\"like\",\"affection\",\"valentines\",\"infatuation\",\"kiss\"],char:\"😘\",fitzpatrick_scale:false,category:\"people\"},kissing:{keywords:[\"love\",\"like\",\"face\",\"3\",\"valentines\",\"infatuation\",\"kiss\"],char:\"😗\",fitzpatrick_scale:false,category:\"people\"},kissing_smiling_eyes:{keywords:[\"face\",\"affection\",\"valentines\",\"infatuation\",\"kiss\"],char:\"😙\",fitzpatrick_scale:false,category:\"people\"},kissing_closed_eyes:{keywords:[\"face\",\"love\",\"like\",\"affection\",\"valentines\",\"infatuation\",\"kiss\"],char:\"😚\",fitzpatrick_scale:false,category:\"people\"},stuck_out_tongue_winking_eye:{keywords:[\"face\",\"prank\",\"childish\",\"playful\",\"mischievous\",\"smile\",\"wink\",\"tongue\"],char:\"😜\",fitzpatrick_scale:false,category:\"people\"},zany:{keywords:[\"face\",\"goofy\",\"crazy\"],char:\"🤪\",fitzpatrick_scale:false,category:\"people\"},raised_eyebrow:{keywords:[\"face\",\"distrust\",\"scepticism\",\"disapproval\",\"disbelief\",\"surprise\"],char:\"🤨\",fitzpatrick_scale:false,category:\"people\"},monocle:{keywords:[\"face\",\"stuffy\",\"wealthy\"],char:\"🧐\",fitzpatrick_scale:false,category:\"people\"},stuck_out_tongue_closed_eyes:{keywords:[\"face\",\"prank\",\"playful\",\"mischievous\",\"smile\",\"tongue\"],char:\"😝\",fitzpatrick_scale:false,category:\"people\"},stuck_out_tongue:{keywords:[\"face\",\"prank\",\"childish\",\"playful\",\"mischievous\",\"smile\",\"tongue\"],char:\"😛\",fitzpatrick_scale:false,category:\"people\"},money_mouth_face:{keywords:[\"face\",\"rich\",\"dollar\",\"money\"],char:\"🤑\",fitzpatrick_scale:false,category:\"people\"},nerd_face:{keywords:[\"face\",\"nerdy\",\"geek\",\"dork\"],char:\"🤓\",fitzpatrick_scale:false,category:\"people\"},sunglasses:{keywords:[\"face\",\"cool\",\"smile\",\"summer\",\"beach\",\"sunglass\"],char:\"😎\",fitzpatrick_scale:false,category:\"people\"},star_struck:{keywords:[\"face\",\"smile\",\"starry\",\"eyes\",\"grinning\"],char:\"🤩\",fitzpatrick_scale:false,category:\"people\"},clown_face:{keywords:[\"face\"],char:\"🤡\",fitzpatrick_scale:false,category:\"people\"},cowboy_hat_face:{keywords:[\"face\",\"cowgirl\",\"hat\"],char:\"🤠\",fitzpatrick_scale:false,category:\"people\"},hugs:{keywords:[\"face\",\"smile\",\"hug\"],char:\"🤗\",fitzpatrick_scale:false,category:\"people\"},smirk:{keywords:[\"face\",\"smile\",\"mean\",\"prank\",\"smug\",\"sarcasm\"],char:\"😏\",fitzpatrick_scale:false,category:\"people\"},no_mouth:{keywords:[\"face\",\"hellokitty\"],char:\"😶\",fitzpatrick_scale:false,category:\"people\"},neutral_face:{keywords:[\"indifference\",\"meh\",\":|\",\"neutral\"],char:\"😐\",fitzpatrick_scale:false,category:\"people\"},expressionless:{keywords:[\"face\",\"indifferent\",\"-_-\",\"meh\",\"deadpan\"],char:\"😑\",fitzpatrick_scale:false,category:\"people\"},unamused:{keywords:[\"indifference\",\"bored\",\"straight face\",\"serious\",\"sarcasm\",\"unimpressed\",\"skeptical\",\"dubious\",\"side_eye\"],char:\"😒\",fitzpatrick_scale:false,category:\"people\"},roll_eyes:{keywords:[\"face\",\"eyeroll\",\"frustrated\"],char:\"🙄\",fitzpatrick_scale:false,category:\"people\"},thinking:{keywords:[\"face\",\"hmmm\",\"think\",\"consider\"],char:\"🤔\",fitzpatrick_scale:false,category:\"people\"},lying_face:{keywords:[\"face\",\"lie\",\"pinocchio\"],char:\"🤥\",fitzpatrick_scale:false,category:\"people\"},hand_over_mouth:{keywords:[\"face\",\"whoops\",\"shock\",\"surprise\"],char:\"🤭\",fitzpatrick_scale:false,category:\"people\"},shushing:{keywords:[\"face\",\"quiet\",\"shhh\"],char:\"🤫\",fitzpatrick_scale:false,category:\"people\"},symbols_over_mouth:{keywords:[\"face\",\"swearing\",\"cursing\",\"cussing\",\"profanity\",\"expletive\"],char:\"🤬\",fitzpatrick_scale:false,category:\"people\"},exploding_head:{keywords:[\"face\",\"shocked\",\"mind\",\"blown\"],char:\"🤯\",fitzpatrick_scale:false,category:\"people\"},flushed:{keywords:[\"face\",\"blush\",\"shy\",\"flattered\"],char:\"😳\",fitzpatrick_scale:false,category:\"people\"},disappointed:{keywords:[\"face\",\"sad\",\"upset\",\"depressed\",\":(\"],char:\"😞\",fitzpatrick_scale:false,category:\"people\"},worried:{keywords:[\"face\",\"concern\",\"nervous\",\":(\"],char:\"😟\",fitzpatrick_scale:false,category:\"people\"},angry:{keywords:[\"mad\",\"face\",\"annoyed\",\"frustrated\"],char:\"😠\",fitzpatrick_scale:false,category:\"people\"},rage:{keywords:[\"angry\",\"mad\",\"hate\",\"despise\"],char:\"😡\",fitzpatrick_scale:false,category:\"people\"},pensive:{keywords:[\"face\",\"sad\",\"depressed\",\"upset\"],char:\"😔\",fitzpatrick_scale:false,category:\"people\"},confused:{keywords:[\"face\",\"indifference\",\"huh\",\"weird\",\"hmmm\",\":/\"],char:\"😕\",fitzpatrick_scale:false,category:\"people\"},slightly_frowning_face:{keywords:[\"face\",\"frowning\",\"disappointed\",\"sad\",\"upset\"],char:\"🙁\",fitzpatrick_scale:false,category:\"people\"},frowning_face:{keywords:[\"face\",\"sad\",\"upset\",\"frown\"],char:\"☹\",fitzpatrick_scale:false,category:\"people\"},persevere:{keywords:[\"face\",\"sick\",\"no\",\"upset\",\"oops\"],char:\"😣\",fitzpatrick_scale:false,category:\"people\"},confounded:{keywords:[\"face\",\"confused\",\"sick\",\"unwell\",\"oops\",\":S\"],char:\"😖\",fitzpatrick_scale:false,category:\"people\"},tired_face:{keywords:[\"sick\",\"whine\",\"upset\",\"frustrated\"],char:\"😫\",fitzpatrick_scale:false,category:\"people\"},weary:{keywords:[\"face\",\"tired\",\"sleepy\",\"sad\",\"frustrated\",\"upset\"],char:\"😩\",fitzpatrick_scale:false,category:\"people\"},pleading:{keywords:[\"face\",\"begging\",\"mercy\"],char:\"🥺\",fitzpatrick_scale:false,category:\"people\"},triumph:{keywords:[\"face\",\"gas\",\"phew\",\"proud\",\"pride\"],char:\"😤\",fitzpatrick_scale:false,category:\"people\"},open_mouth:{keywords:[\"face\",\"surprise\",\"impressed\",\"wow\",\"whoa\",\":O\"],char:\"😮\",fitzpatrick_scale:false,category:\"people\"},scream:{keywords:[\"face\",\"munch\",\"scared\",\"omg\"],char:\"😱\",fitzpatrick_scale:false,category:\"people\"},fearful:{keywords:[\"face\",\"scared\",\"terrified\",\"nervous\",\"oops\",\"huh\"],char:\"😨\",fitzpatrick_scale:false,category:\"people\"},cold_sweat:{keywords:[\"face\",\"nervous\",\"sweat\"],char:\"😰\",fitzpatrick_scale:false,category:\"people\"},hushed:{keywords:[\"face\",\"woo\",\"shh\"],char:\"😯\",fitzpatrick_scale:false,category:\"people\"},frowning:{keywords:[\"face\",\"aw\",\"what\"],char:\"😦\",fitzpatrick_scale:false,category:\"people\"},anguished:{keywords:[\"face\",\"stunned\",\"nervous\"],char:\"😧\",fitzpatrick_scale:false,category:\"people\"},cry:{keywords:[\"face\",\"tears\",\"sad\",\"depressed\",\"upset\",\":'(\"],char:\"😢\",fitzpatrick_scale:false,category:\"people\"},disappointed_relieved:{keywords:[\"face\",\"phew\",\"sweat\",\"nervous\"],char:\"😥\",fitzpatrick_scale:false,category:\"people\"},drooling_face:{keywords:[\"face\"],char:\"🤤\",fitzpatrick_scale:false,category:\"people\"},sleepy:{keywords:[\"face\",\"tired\",\"rest\",\"nap\"],char:\"😪\",fitzpatrick_scale:false,category:\"people\"},sweat:{keywords:[\"face\",\"hot\",\"sad\",\"tired\",\"exercise\"],char:\"😓\",fitzpatrick_scale:false,category:\"people\"},hot:{keywords:[\"face\",\"feverish\",\"heat\",\"red\",\"sweating\"],char:\"🥵\",fitzpatrick_scale:false,category:\"people\"},cold:{keywords:[\"face\",\"blue\",\"freezing\",\"frozen\",\"frostbite\",\"icicles\"],char:\"🥶\",fitzpatrick_scale:false,category:\"people\"},sob:{keywords:[\"face\",\"cry\",\"tears\",\"sad\",\"upset\",\"depressed\"],char:\"😭\",fitzpatrick_scale:false,category:\"people\"},dizzy_face:{keywords:[\"spent\",\"unconscious\",\"xox\",\"dizzy\"],char:\"😵\",fitzpatrick_scale:false,category:\"people\"},astonished:{keywords:[\"face\",\"xox\",\"surprised\",\"poisoned\"],char:\"😲\",fitzpatrick_scale:false,category:\"people\"},zipper_mouth_face:{keywords:[\"face\",\"sealed\",\"zipper\",\"secret\"],char:\"🤐\",fitzpatrick_scale:false,category:\"people\"},nauseated_face:{keywords:[\"face\",\"vomit\",\"gross\",\"green\",\"sick\",\"throw up\",\"ill\"],char:\"🤢\",fitzpatrick_scale:false,category:\"people\"},sneezing_face:{keywords:[\"face\",\"gesundheit\",\"sneeze\",\"sick\",\"allergy\"],char:\"🤧\",fitzpatrick_scale:false,category:\"people\"},vomiting:{keywords:[\"face\",\"sick\"],char:\"🤮\",fitzpatrick_scale:false,category:\"people\"},mask:{keywords:[\"face\",\"sick\",\"ill\",\"disease\"],char:\"😷\",fitzpatrick_scale:false,category:\"people\"},face_with_thermometer:{keywords:[\"sick\",\"temperature\",\"thermometer\",\"cold\",\"fever\"],char:\"🤒\",fitzpatrick_scale:false,category:\"people\"},face_with_head_bandage:{keywords:[\"injured\",\"clumsy\",\"bandage\",\"hurt\"],char:\"🤕\",fitzpatrick_scale:false,category:\"people\"},woozy:{keywords:[\"face\",\"dizzy\",\"intoxicated\",\"tipsy\",\"wavy\"],char:\"🥴\",fitzpatrick_scale:false,category:\"people\"},sleeping:{keywords:[\"face\",\"tired\",\"sleepy\",\"night\",\"zzz\"],char:\"😴\",fitzpatrick_scale:false,category:\"people\"},zzz:{keywords:[\"sleepy\",\"tired\",\"dream\"],char:\"💤\",fitzpatrick_scale:false,category:\"people\"},poop:{keywords:[\"hankey\",\"shitface\",\"fail\",\"turd\",\"shit\"],char:\"💩\",fitzpatrick_scale:false,category:\"people\"},smiling_imp:{keywords:[\"devil\",\"horns\"],char:\"😈\",fitzpatrick_scale:false,category:\"people\"},imp:{keywords:[\"devil\",\"angry\",\"horns\"],char:\"👿\",fitzpatrick_scale:false,category:\"people\"},japanese_ogre:{keywords:[\"monster\",\"red\",\"mask\",\"halloween\",\"scary\",\"creepy\",\"devil\",\"demon\",\"japanese\",\"ogre\"],char:\"👹\",fitzpatrick_scale:false,category:\"people\"},japanese_goblin:{keywords:[\"red\",\"evil\",\"mask\",\"monster\",\"scary\",\"creepy\",\"japanese\",\"goblin\"],char:\"👺\",fitzpatrick_scale:false,category:\"people\"},skull:{keywords:[\"dead\",\"skeleton\",\"creepy\",\"death\"],char:\"💀\",fitzpatrick_scale:false,category:\"people\"},ghost:{keywords:[\"halloween\",\"spooky\",\"scary\"],char:\"👻\",fitzpatrick_scale:false,category:\"people\"},alien:{keywords:[\"UFO\",\"paul\",\"weird\",\"outer_space\"],char:\"👽\",fitzpatrick_scale:false,category:\"people\"},robot:{keywords:[\"computer\",\"machine\",\"bot\"],char:\"🤖\",fitzpatrick_scale:false,category:\"people\"},smiley_cat:{keywords:[\"animal\",\"cats\",\"happy\",\"smile\"],char:\"😺\",fitzpatrick_scale:false,category:\"people\"},smile_cat:{keywords:[\"animal\",\"cats\",\"smile\"],char:\"😸\",fitzpatrick_scale:false,category:\"people\"},joy_cat:{keywords:[\"animal\",\"cats\",\"haha\",\"happy\",\"tears\"],char:\"😹\",fitzpatrick_scale:false,category:\"people\"},heart_eyes_cat:{keywords:[\"animal\",\"love\",\"like\",\"affection\",\"cats\",\"valentines\",\"heart\"],char:\"😻\",fitzpatrick_scale:false,category:\"people\"},smirk_cat:{keywords:[\"animal\",\"cats\",\"smirk\"],char:\"😼\",fitzpatrick_scale:false,category:\"people\"},kissing_cat:{keywords:[\"animal\",\"cats\",\"kiss\"],char:\"😽\",fitzpatrick_scale:false,category:\"people\"},scream_cat:{keywords:[\"animal\",\"cats\",\"munch\",\"scared\",\"scream\"],char:\"🙀\",fitzpatrick_scale:false,category:\"people\"},crying_cat_face:{keywords:[\"animal\",\"tears\",\"weep\",\"sad\",\"cats\",\"upset\",\"cry\"],char:\"😿\",fitzpatrick_scale:false,category:\"people\"},pouting_cat:{keywords:[\"animal\",\"cats\"],char:\"😾\",fitzpatrick_scale:false,category:\"people\"},palms_up:{keywords:[\"hands\",\"gesture\",\"cupped\",\"prayer\"],char:\"🤲\",fitzpatrick_scale:true,category:\"people\"},raised_hands:{keywords:[\"gesture\",\"hooray\",\"yea\",\"celebration\",\"hands\"],char:\"🙌\",fitzpatrick_scale:true,category:\"people\"},clap:{keywords:[\"hands\",\"praise\",\"applause\",\"congrats\",\"yay\"],char:\"👏\",fitzpatrick_scale:true,category:\"people\"},wave:{keywords:[\"hands\",\"gesture\",\"goodbye\",\"solong\",\"farewell\",\"hello\",\"hi\",\"palm\"],char:\"👋\",fitzpatrick_scale:true,category:\"people\"},call_me_hand:{keywords:[\"hands\",\"gesture\"],char:\"🤙\",fitzpatrick_scale:true,category:\"people\"},\"+1\":{keywords:[\"thumbsup\",\"yes\",\"awesome\",\"good\",\"agree\",\"accept\",\"cool\",\"hand\",\"like\"],char:\"👍\",fitzpatrick_scale:true,category:\"people\"},\"-1\":{keywords:[\"thumbsdown\",\"no\",\"dislike\",\"hand\"],char:\"👎\",fitzpatrick_scale:true,category:\"people\"},facepunch:{keywords:[\"angry\",\"violence\",\"fist\",\"hit\",\"attack\",\"hand\"],char:\"👊\",fitzpatrick_scale:true,category:\"people\"},fist:{keywords:[\"fingers\",\"hand\",\"grasp\"],char:\"✊\",fitzpatrick_scale:true,category:\"people\"},fist_left:{keywords:[\"hand\",\"fistbump\"],char:\"🤛\",fitzpatrick_scale:true,category:\"people\"},fist_right:{keywords:[\"hand\",\"fistbump\"],char:\"🤜\",fitzpatrick_scale:true,category:\"people\"},v:{keywords:[\"fingers\",\"ohyeah\",\"hand\",\"peace\",\"victory\",\"two\"],char:\"✌\",fitzpatrick_scale:true,category:\"people\"},ok_hand:{keywords:[\"fingers\",\"limbs\",\"perfect\",\"ok\",\"okay\"],char:\"👌\",fitzpatrick_scale:true,category:\"people\"},raised_hand:{keywords:[\"fingers\",\"stop\",\"highfive\",\"palm\",\"ban\"],char:\"✋\",fitzpatrick_scale:true,category:\"people\"},raised_back_of_hand:{keywords:[\"fingers\",\"raised\",\"backhand\"],char:\"🤚\",fitzpatrick_scale:true,category:\"people\"},open_hands:{keywords:[\"fingers\",\"butterfly\",\"hands\",\"open\"],char:\"👐\",fitzpatrick_scale:true,category:\"people\"},muscle:{keywords:[\"arm\",\"flex\",\"hand\",\"summer\",\"strong\",\"biceps\"],char:\"💪\",fitzpatrick_scale:true,category:\"people\"},pray:{keywords:[\"please\",\"hope\",\"wish\",\"namaste\",\"highfive\"],char:\"🙏\",fitzpatrick_scale:true,category:\"people\"},foot:{keywords:[\"kick\",\"stomp\"],char:\"🦶\",fitzpatrick_scale:true,category:\"people\"},leg:{keywords:[\"kick\",\"limb\"],char:\"🦵\",fitzpatrick_scale:true,category:\"people\"},handshake:{keywords:[\"agreement\",\"shake\"],char:\"🤝\",fitzpatrick_scale:false,category:\"people\"},point_up:{keywords:[\"hand\",\"fingers\",\"direction\",\"up\"],char:\"☝\",fitzpatrick_scale:true,category:\"people\"},point_up_2:{keywords:[\"fingers\",\"hand\",\"direction\",\"up\"],char:\"👆\",fitzpatrick_scale:true,category:\"people\"},point_down:{keywords:[\"fingers\",\"hand\",\"direction\",\"down\"],char:\"👇\",fitzpatrick_scale:true,category:\"people\"},point_left:{keywords:[\"direction\",\"fingers\",\"hand\",\"left\"],char:\"👈\",fitzpatrick_scale:true,category:\"people\"},point_right:{keywords:[\"fingers\",\"hand\",\"direction\",\"right\"],char:\"👉\",fitzpatrick_scale:true,category:\"people\"},fu:{keywords:[\"hand\",\"fingers\",\"rude\",\"middle\",\"flipping\"],char:\"🖕\",fitzpatrick_scale:true,category:\"people\"},raised_hand_with_fingers_splayed:{keywords:[\"hand\",\"fingers\",\"palm\"],char:\"🖐\",fitzpatrick_scale:true,category:\"people\"},love_you:{keywords:[\"hand\",\"fingers\",\"gesture\"],char:\"🤟\",fitzpatrick_scale:true,category:\"people\"},metal:{keywords:[\"hand\",\"fingers\",\"evil_eye\",\"sign_of_horns\",\"rock_on\"],char:\"🤘\",fitzpatrick_scale:true,category:\"people\"},crossed_fingers:{keywords:[\"good\",\"lucky\"],char:\"🤞\",fitzpatrick_scale:true,category:\"people\"},vulcan_salute:{keywords:[\"hand\",\"fingers\",\"spock\",\"star trek\"],char:\"🖖\",fitzpatrick_scale:true,category:\"people\"},writing_hand:{keywords:[\"lower_left_ballpoint_pen\",\"stationery\",\"write\",\"compose\"],char:\"✍\",fitzpatrick_scale:true,category:\"people\"},selfie:{keywords:[\"camera\",\"phone\"],char:\"🤳\",fitzpatrick_scale:true,category:\"people\"},nail_care:{keywords:[\"beauty\",\"manicure\",\"finger\",\"fashion\",\"nail\"],char:\"💅\",fitzpatrick_scale:true,category:\"people\"},lips:{keywords:[\"mouth\",\"kiss\"],char:\"👄\",fitzpatrick_scale:false,category:\"people\"},tooth:{keywords:[\"teeth\",\"dentist\"],char:\"🦷\",fitzpatrick_scale:false,category:\"people\"},tongue:{keywords:[\"mouth\",\"playful\"],char:\"👅\",fitzpatrick_scale:false,category:\"people\"},ear:{keywords:[\"face\",\"hear\",\"sound\",\"listen\"],char:\"👂\",fitzpatrick_scale:true,category:\"people\"},nose:{keywords:[\"smell\",\"sniff\"],char:\"👃\",fitzpatrick_scale:true,category:\"people\"},eye:{keywords:[\"face\",\"look\",\"see\",\"watch\",\"stare\"],char:\"👁\",fitzpatrick_scale:false,category:\"people\"},eyes:{keywords:[\"look\",\"watch\",\"stalk\",\"peek\",\"see\"],char:\"👀\",fitzpatrick_scale:false,category:\"people\"},brain:{keywords:[\"smart\",\"intelligent\"],char:\"🧠\",fitzpatrick_scale:false,category:\"people\"},bust_in_silhouette:{keywords:[\"user\",\"person\",\"human\"],char:\"👤\",fitzpatrick_scale:false,category:\"people\"},busts_in_silhouette:{keywords:[\"user\",\"person\",\"human\",\"group\",\"team\"],char:\"👥\",fitzpatrick_scale:false,category:\"people\"},speaking_head:{keywords:[\"user\",\"person\",\"human\",\"sing\",\"say\",\"talk\"],char:\"🗣\",fitzpatrick_scale:false,category:\"people\"},baby:{keywords:[\"child\",\"boy\",\"girl\",\"toddler\"],char:\"👶\",fitzpatrick_scale:true,category:\"people\"},child:{keywords:[\"gender-neutral\",\"young\"],char:\"🧒\",fitzpatrick_scale:true,category:\"people\"},boy:{keywords:[\"man\",\"male\",\"guy\",\"teenager\"],char:\"👦\",fitzpatrick_scale:true,category:\"people\"},girl:{keywords:[\"female\",\"woman\",\"teenager\"],char:\"👧\",fitzpatrick_scale:true,category:\"people\"},adult:{keywords:[\"gender-neutral\",\"person\"],char:\"🧑\",fitzpatrick_scale:true,category:\"people\"},man:{keywords:[\"mustache\",\"father\",\"dad\",\"guy\",\"classy\",\"sir\",\"moustache\"],char:\"👨\",fitzpatrick_scale:true,category:\"people\"},woman:{keywords:[\"female\",\"girls\",\"lady\"],char:\"👩\",fitzpatrick_scale:true,category:\"people\"},blonde_woman:{keywords:[\"woman\",\"female\",\"girl\",\"blonde\",\"person\"],char:\"👱‍♀️\",fitzpatrick_scale:true,category:\"people\"},blonde_man:{keywords:[\"man\",\"male\",\"boy\",\"blonde\",\"guy\",\"person\"],char:\"👱\",fitzpatrick_scale:true,category:\"people\"},bearded_person:{keywords:[\"person\",\"bewhiskered\"],char:\"🧔\",fitzpatrick_scale:true,category:\"people\"},older_adult:{keywords:[\"human\",\"elder\",\"senior\",\"gender-neutral\"],char:\"🧓\",fitzpatrick_scale:true,category:\"people\"},older_man:{keywords:[\"human\",\"male\",\"men\",\"old\",\"elder\",\"senior\"],char:\"👴\",fitzpatrick_scale:true,category:\"people\"},older_woman:{keywords:[\"human\",\"female\",\"women\",\"lady\",\"old\",\"elder\",\"senior\"],char:\"👵\",fitzpatrick_scale:true,category:\"people\"},man_with_gua_pi_mao:{keywords:[\"male\",\"boy\",\"chinese\"],char:\"👲\",fitzpatrick_scale:true,category:\"people\"},woman_with_headscarf:{keywords:[\"female\",\"hijab\",\"mantilla\",\"tichel\"],char:\"🧕\",fitzpatrick_scale:true,category:\"people\"},woman_with_turban:{keywords:[\"female\",\"indian\",\"hinduism\",\"arabs\",\"woman\"],char:\"👳‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_with_turban:{keywords:[\"male\",\"indian\",\"hinduism\",\"arabs\"],char:\"👳\",fitzpatrick_scale:true,category:\"people\"},policewoman:{keywords:[\"woman\",\"police\",\"law\",\"legal\",\"enforcement\",\"arrest\",\"911\",\"female\"],char:\"👮‍♀️\",fitzpatrick_scale:true,category:\"people\"},policeman:{keywords:[\"man\",\"police\",\"law\",\"legal\",\"enforcement\",\"arrest\",\"911\"],char:\"👮\",fitzpatrick_scale:true,category:\"people\"},construction_worker_woman:{keywords:[\"female\",\"human\",\"wip\",\"build\",\"construction\",\"worker\",\"labor\",\"woman\"],char:\"👷‍♀️\",fitzpatrick_scale:true,category:\"people\"},construction_worker_man:{keywords:[\"male\",\"human\",\"wip\",\"guy\",\"build\",\"construction\",\"worker\",\"labor\"],char:\"👷\",fitzpatrick_scale:true,category:\"people\"},guardswoman:{keywords:[\"uk\",\"gb\",\"british\",\"female\",\"royal\",\"woman\"],char:\"💂‍♀️\",fitzpatrick_scale:true,category:\"people\"},guardsman:{keywords:[\"uk\",\"gb\",\"british\",\"male\",\"guy\",\"royal\"],char:\"💂\",fitzpatrick_scale:true,category:\"people\"},female_detective:{keywords:[\"human\",\"spy\",\"detective\",\"female\",\"woman\"],char:\"🕵️‍♀️\",fitzpatrick_scale:true,category:\"people\"},male_detective:{keywords:[\"human\",\"spy\",\"detective\"],char:\"🕵\",fitzpatrick_scale:true,category:\"people\"},woman_health_worker:{keywords:[\"doctor\",\"nurse\",\"therapist\",\"healthcare\",\"woman\",\"human\"],char:\"👩‍⚕️\",fitzpatrick_scale:true,category:\"people\"},man_health_worker:{keywords:[\"doctor\",\"nurse\",\"therapist\",\"healthcare\",\"man\",\"human\"],char:\"👨‍⚕️\",fitzpatrick_scale:true,category:\"people\"},woman_farmer:{keywords:[\"rancher\",\"gardener\",\"woman\",\"human\"],char:\"👩‍🌾\",fitzpatrick_scale:true,category:\"people\"},man_farmer:{keywords:[\"rancher\",\"gardener\",\"man\",\"human\"],char:\"👨‍🌾\",fitzpatrick_scale:true,category:\"people\"},woman_cook:{keywords:[\"chef\",\"woman\",\"human\"],char:\"👩‍🍳\",fitzpatrick_scale:true,category:\"people\"},man_cook:{keywords:[\"chef\",\"man\",\"human\"],char:\"👨‍🍳\",fitzpatrick_scale:true,category:\"people\"},woman_student:{keywords:[\"graduate\",\"woman\",\"human\"],char:\"👩‍🎓\",fitzpatrick_scale:true,category:\"people\"},man_student:{keywords:[\"graduate\",\"man\",\"human\"],char:\"👨‍🎓\",fitzpatrick_scale:true,category:\"people\"},woman_singer:{keywords:[\"rockstar\",\"entertainer\",\"woman\",\"human\"],char:\"👩‍🎤\",fitzpatrick_scale:true,category:\"people\"},man_singer:{keywords:[\"rockstar\",\"entertainer\",\"man\",\"human\"],char:\"👨‍🎤\",fitzpatrick_scale:true,category:\"people\"},woman_teacher:{keywords:[\"instructor\",\"professor\",\"woman\",\"human\"],char:\"👩‍🏫\",fitzpatrick_scale:true,category:\"people\"},man_teacher:{keywords:[\"instructor\",\"professor\",\"man\",\"human\"],char:\"👨‍🏫\",fitzpatrick_scale:true,category:\"people\"},woman_factory_worker:{keywords:[\"assembly\",\"industrial\",\"woman\",\"human\"],char:\"👩‍🏭\",fitzpatrick_scale:true,category:\"people\"},man_factory_worker:{keywords:[\"assembly\",\"industrial\",\"man\",\"human\"],char:\"👨‍🏭\",fitzpatrick_scale:true,category:\"people\"},woman_technologist:{keywords:[\"coder\",\"developer\",\"engineer\",\"programmer\",\"software\",\"woman\",\"human\",\"laptop\",\"computer\"],char:\"👩‍💻\",fitzpatrick_scale:true,category:\"people\"},man_technologist:{keywords:[\"coder\",\"developer\",\"engineer\",\"programmer\",\"software\",\"man\",\"human\",\"laptop\",\"computer\"],char:\"👨‍💻\",fitzpatrick_scale:true,category:\"people\"},woman_office_worker:{keywords:[\"business\",\"manager\",\"woman\",\"human\"],char:\"👩‍💼\",fitzpatrick_scale:true,category:\"people\"},man_office_worker:{keywords:[\"business\",\"manager\",\"man\",\"human\"],char:\"👨‍💼\",fitzpatrick_scale:true,category:\"people\"},woman_mechanic:{keywords:[\"plumber\",\"woman\",\"human\",\"wrench\"],char:\"👩‍🔧\",fitzpatrick_scale:true,category:\"people\"},man_mechanic:{keywords:[\"plumber\",\"man\",\"human\",\"wrench\"],char:\"👨‍🔧\",fitzpatrick_scale:true,category:\"people\"},woman_scientist:{keywords:[\"biologist\",\"chemist\",\"engineer\",\"physicist\",\"woman\",\"human\"],char:\"👩‍🔬\",fitzpatrick_scale:true,category:\"people\"},man_scientist:{keywords:[\"biologist\",\"chemist\",\"engineer\",\"physicist\",\"man\",\"human\"],char:\"👨‍🔬\",fitzpatrick_scale:true,category:\"people\"},woman_artist:{keywords:[\"painter\",\"woman\",\"human\"],char:\"👩‍🎨\",fitzpatrick_scale:true,category:\"people\"},man_artist:{keywords:[\"painter\",\"man\",\"human\"],char:\"👨‍🎨\",fitzpatrick_scale:true,category:\"people\"},woman_firefighter:{keywords:[\"fireman\",\"woman\",\"human\"],char:\"👩‍🚒\",fitzpatrick_scale:true,category:\"people\"},man_firefighter:{keywords:[\"fireman\",\"man\",\"human\"],char:\"👨‍🚒\",fitzpatrick_scale:true,category:\"people\"},woman_pilot:{keywords:[\"aviator\",\"plane\",\"woman\",\"human\"],char:\"👩‍✈️\",fitzpatrick_scale:true,category:\"people\"},man_pilot:{keywords:[\"aviator\",\"plane\",\"man\",\"human\"],char:\"👨‍✈️\",fitzpatrick_scale:true,category:\"people\"},woman_astronaut:{keywords:[\"space\",\"rocket\",\"woman\",\"human\"],char:\"👩‍🚀\",fitzpatrick_scale:true,category:\"people\"},man_astronaut:{keywords:[\"space\",\"rocket\",\"man\",\"human\"],char:\"👨‍🚀\",fitzpatrick_scale:true,category:\"people\"},woman_judge:{keywords:[\"justice\",\"court\",\"woman\",\"human\"],char:\"👩‍⚖️\",fitzpatrick_scale:true,category:\"people\"},man_judge:{keywords:[\"justice\",\"court\",\"man\",\"human\"],char:\"👨‍⚖️\",fitzpatrick_scale:true,category:\"people\"},woman_superhero:{keywords:[\"woman\",\"female\",\"good\",\"heroine\",\"superpowers\"],char:\"🦸‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_superhero:{keywords:[\"man\",\"male\",\"good\",\"hero\",\"superpowers\"],char:\"🦸‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_supervillain:{keywords:[\"woman\",\"female\",\"evil\",\"bad\",\"criminal\",\"heroine\",\"superpowers\"],char:\"🦹‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_supervillain:{keywords:[\"man\",\"male\",\"evil\",\"bad\",\"criminal\",\"hero\",\"superpowers\"],char:\"🦹‍♂️\",fitzpatrick_scale:true,category:\"people\"},mrs_claus:{keywords:[\"woman\",\"female\",\"xmas\",\"mother christmas\"],char:\"🤶\",fitzpatrick_scale:true,category:\"people\"},santa:{keywords:[\"festival\",\"man\",\"male\",\"xmas\",\"father christmas\"],char:\"🎅\",fitzpatrick_scale:true,category:\"people\"},sorceress:{keywords:[\"woman\",\"female\",\"mage\",\"witch\"],char:\"🧙‍♀️\",fitzpatrick_scale:true,category:\"people\"},wizard:{keywords:[\"man\",\"male\",\"mage\",\"sorcerer\"],char:\"🧙‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_elf:{keywords:[\"woman\",\"female\"],char:\"🧝‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_elf:{keywords:[\"man\",\"male\"],char:\"🧝‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_vampire:{keywords:[\"woman\",\"female\"],char:\"🧛‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_vampire:{keywords:[\"man\",\"male\",\"dracula\"],char:\"🧛‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_zombie:{keywords:[\"woman\",\"female\",\"undead\",\"walking dead\"],char:\"🧟‍♀️\",fitzpatrick_scale:false,category:\"people\"},man_zombie:{keywords:[\"man\",\"male\",\"dracula\",\"undead\",\"walking dead\"],char:\"🧟‍♂️\",fitzpatrick_scale:false,category:\"people\"},woman_genie:{keywords:[\"woman\",\"female\"],char:\"🧞‍♀️\",fitzpatrick_scale:false,category:\"people\"},man_genie:{keywords:[\"man\",\"male\"],char:\"🧞‍♂️\",fitzpatrick_scale:false,category:\"people\"},mermaid:{keywords:[\"woman\",\"female\",\"merwoman\",\"ariel\"],char:\"🧜‍♀️\",fitzpatrick_scale:true,category:\"people\"},merman:{keywords:[\"man\",\"male\",\"triton\"],char:\"🧜‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_fairy:{keywords:[\"woman\",\"female\"],char:\"🧚‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_fairy:{keywords:[\"man\",\"male\"],char:\"🧚‍♂️\",fitzpatrick_scale:true,category:\"people\"},angel:{keywords:[\"heaven\",\"wings\",\"halo\"],char:\"👼\",fitzpatrick_scale:true,category:\"people\"},pregnant_woman:{keywords:[\"baby\"],char:\"🤰\",fitzpatrick_scale:true,category:\"people\"},breastfeeding:{keywords:[\"nursing\",\"baby\"],char:\"🤱\",fitzpatrick_scale:true,category:\"people\"},princess:{keywords:[\"girl\",\"woman\",\"female\",\"blond\",\"crown\",\"royal\",\"queen\"],char:\"👸\",fitzpatrick_scale:true,category:\"people\"},prince:{keywords:[\"boy\",\"man\",\"male\",\"crown\",\"royal\",\"king\"],char:\"🤴\",fitzpatrick_scale:true,category:\"people\"},bride_with_veil:{keywords:[\"couple\",\"marriage\",\"wedding\",\"woman\",\"bride\"],char:\"👰\",fitzpatrick_scale:true,category:\"people\"},man_in_tuxedo:{keywords:[\"couple\",\"marriage\",\"wedding\",\"groom\"],char:\"🤵\",fitzpatrick_scale:true,category:\"people\"},running_woman:{keywords:[\"woman\",\"walking\",\"exercise\",\"race\",\"running\",\"female\"],char:\"🏃‍♀️\",fitzpatrick_scale:true,category:\"people\"},running_man:{keywords:[\"man\",\"walking\",\"exercise\",\"race\",\"running\"],char:\"🏃\",fitzpatrick_scale:true,category:\"people\"},walking_woman:{keywords:[\"human\",\"feet\",\"steps\",\"woman\",\"female\"],char:\"🚶‍♀️\",fitzpatrick_scale:true,category:\"people\"},walking_man:{keywords:[\"human\",\"feet\",\"steps\"],char:\"🚶\",fitzpatrick_scale:true,category:\"people\"},dancer:{keywords:[\"female\",\"girl\",\"woman\",\"fun\"],char:\"💃\",fitzpatrick_scale:true,category:\"people\"},man_dancing:{keywords:[\"male\",\"boy\",\"fun\",\"dancer\"],char:\"🕺\",fitzpatrick_scale:true,category:\"people\"},dancing_women:{keywords:[\"female\",\"bunny\",\"women\",\"girls\"],char:\"👯\",fitzpatrick_scale:false,category:\"people\"},dancing_men:{keywords:[\"male\",\"bunny\",\"men\",\"boys\"],char:\"👯‍♂️\",fitzpatrick_scale:false,category:\"people\"},couple:{keywords:[\"pair\",\"people\",\"human\",\"love\",\"date\",\"dating\",\"like\",\"affection\",\"valentines\",\"marriage\"],char:\"👫\",fitzpatrick_scale:false,category:\"people\"},two_men_holding_hands:{keywords:[\"pair\",\"couple\",\"love\",\"like\",\"bromance\",\"friendship\",\"people\",\"human\"],char:\"👬\",fitzpatrick_scale:false,category:\"people\"},two_women_holding_hands:{keywords:[\"pair\",\"friendship\",\"couple\",\"love\",\"like\",\"female\",\"people\",\"human\"],char:\"👭\",fitzpatrick_scale:false,category:\"people\"},bowing_woman:{keywords:[\"woman\",\"female\",\"girl\"],char:\"🙇‍♀️\",fitzpatrick_scale:true,category:\"people\"},bowing_man:{keywords:[\"man\",\"male\",\"boy\"],char:\"🙇\",fitzpatrick_scale:true,category:\"people\"},man_facepalming:{keywords:[\"man\",\"male\",\"boy\",\"disbelief\"],char:\"🤦‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_facepalming:{keywords:[\"woman\",\"female\",\"girl\",\"disbelief\"],char:\"🤦‍♀️\",fitzpatrick_scale:true,category:\"people\"},woman_shrugging:{keywords:[\"woman\",\"female\",\"girl\",\"confused\",\"indifferent\",\"doubt\"],char:\"🤷\",fitzpatrick_scale:true,category:\"people\"},man_shrugging:{keywords:[\"man\",\"male\",\"boy\",\"confused\",\"indifferent\",\"doubt\"],char:\"🤷‍♂️\",fitzpatrick_scale:true,category:\"people\"},tipping_hand_woman:{keywords:[\"female\",\"girl\",\"woman\",\"human\",\"information\"],char:\"💁\",fitzpatrick_scale:true,category:\"people\"},tipping_hand_man:{keywords:[\"male\",\"boy\",\"man\",\"human\",\"information\"],char:\"💁‍♂️\",fitzpatrick_scale:true,category:\"people\"},no_good_woman:{keywords:[\"female\",\"girl\",\"woman\",\"nope\"],char:\"🙅\",fitzpatrick_scale:true,category:\"people\"},no_good_man:{keywords:[\"male\",\"boy\",\"man\",\"nope\"],char:\"🙅‍♂️\",fitzpatrick_scale:true,category:\"people\"},ok_woman:{keywords:[\"women\",\"girl\",\"female\",\"pink\",\"human\",\"woman\"],char:\"🙆\",fitzpatrick_scale:true,category:\"people\"},ok_man:{keywords:[\"men\",\"boy\",\"male\",\"blue\",\"human\",\"man\"],char:\"🙆‍♂️\",fitzpatrick_scale:true,category:\"people\"},raising_hand_woman:{keywords:[\"female\",\"girl\",\"woman\"],char:\"🙋\",fitzpatrick_scale:true,category:\"people\"},raising_hand_man:{keywords:[\"male\",\"boy\",\"man\"],char:\"🙋‍♂️\",fitzpatrick_scale:true,category:\"people\"},pouting_woman:{keywords:[\"female\",\"girl\",\"woman\"],char:\"🙎\",fitzpatrick_scale:true,category:\"people\"},pouting_man:{keywords:[\"male\",\"boy\",\"man\"],char:\"🙎‍♂️\",fitzpatrick_scale:true,category:\"people\"},frowning_woman:{keywords:[\"female\",\"girl\",\"woman\",\"sad\",\"depressed\",\"discouraged\",\"unhappy\"],char:\"🙍\",fitzpatrick_scale:true,category:\"people\"},frowning_man:{keywords:[\"male\",\"boy\",\"man\",\"sad\",\"depressed\",\"discouraged\",\"unhappy\"],char:\"🙍‍♂️\",fitzpatrick_scale:true,category:\"people\"},haircut_woman:{keywords:[\"female\",\"girl\",\"woman\"],char:\"💇\",fitzpatrick_scale:true,category:\"people\"},haircut_man:{keywords:[\"male\",\"boy\",\"man\"],char:\"💇‍♂️\",fitzpatrick_scale:true,category:\"people\"},massage_woman:{keywords:[\"female\",\"girl\",\"woman\",\"head\"],char:\"💆\",fitzpatrick_scale:true,category:\"people\"},massage_man:{keywords:[\"male\",\"boy\",\"man\",\"head\"],char:\"💆‍♂️\",fitzpatrick_scale:true,category:\"people\"},woman_in_steamy_room:{keywords:[\"female\",\"woman\",\"spa\",\"steamroom\",\"sauna\"],char:\"🧖‍♀️\",fitzpatrick_scale:true,category:\"people\"},man_in_steamy_room:{keywords:[\"male\",\"man\",\"spa\",\"steamroom\",\"sauna\"],char:\"🧖‍♂️\",fitzpatrick_scale:true,category:\"people\"},couple_with_heart_woman_man:{keywords:[\"pair\",\"love\",\"like\",\"affection\",\"human\",\"dating\",\"valentines\",\"marriage\"],char:\"💑\",fitzpatrick_scale:false,category:\"people\"},couple_with_heart_woman_woman:{keywords:[\"pair\",\"love\",\"like\",\"affection\",\"human\",\"dating\",\"valentines\",\"marriage\"],char:\"👩‍❤️‍👩\",fitzpatrick_scale:false,category:\"people\"},couple_with_heart_man_man:{keywords:[\"pair\",\"love\",\"like\",\"affection\",\"human\",\"dating\",\"valentines\",\"marriage\"],char:\"👨‍❤️‍👨\",fitzpatrick_scale:false,category:\"people\"},couplekiss_man_woman:{keywords:[\"pair\",\"valentines\",\"love\",\"like\",\"dating\",\"marriage\"],char:\"💏\",fitzpatrick_scale:false,category:\"people\"},couplekiss_woman_woman:{keywords:[\"pair\",\"valentines\",\"love\",\"like\",\"dating\",\"marriage\"],char:\"👩‍❤️‍💋‍👩\",fitzpatrick_scale:false,category:\"people\"},couplekiss_man_man:{keywords:[\"pair\",\"valentines\",\"love\",\"like\",\"dating\",\"marriage\"],char:\"👨‍❤️‍💋‍👨\",fitzpatrick_scale:false,category:\"people\"},family_man_woman_boy:{keywords:[\"home\",\"parents\",\"child\",\"mom\",\"dad\",\"father\",\"mother\",\"people\",\"human\"],char:\"👪\",fitzpatrick_scale:false,category:\"people\"},family_man_woman_girl:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"child\"],char:\"👨‍👩‍👧\",fitzpatrick_scale:false,category:\"people\"},family_man_woman_girl_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👩‍👧‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_woman_boy_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👩‍👦‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_woman_girl_girl:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👩‍👧‍👧\",fitzpatrick_scale:false,category:\"people\"},family_woman_woman_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👩‍👩‍👦\",fitzpatrick_scale:false,category:\"people\"},family_woman_woman_girl:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👩‍👩‍👧\",fitzpatrick_scale:false,category:\"people\"},family_woman_woman_girl_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👩‍👩‍👧‍👦\",fitzpatrick_scale:false,category:\"people\"},family_woman_woman_boy_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👩‍👩‍👦‍👦\",fitzpatrick_scale:false,category:\"people\"},family_woman_woman_girl_girl:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👩‍👩‍👧‍👧\",fitzpatrick_scale:false,category:\"people\"},family_man_man_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👨‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_man_girl:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👨‍👧\",fitzpatrick_scale:false,category:\"people\"},family_man_man_girl_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👨‍👧‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_man_boy_boy:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👨‍👦‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_man_girl_girl:{keywords:[\"home\",\"parents\",\"people\",\"human\",\"children\"],char:\"👨‍👨‍👧‍👧\",fitzpatrick_scale:false,category:\"people\"},family_woman_boy:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"child\"],char:\"👩‍👦\",fitzpatrick_scale:false,category:\"people\"},family_woman_girl:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"child\"],char:\"👩‍👧\",fitzpatrick_scale:false,category:\"people\"},family_woman_girl_boy:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"children\"],char:\"👩‍👧‍👦\",fitzpatrick_scale:false,category:\"people\"},family_woman_boy_boy:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"children\"],char:\"👩‍👦‍👦\",fitzpatrick_scale:false,category:\"people\"},family_woman_girl_girl:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"children\"],char:\"👩‍👧‍👧\",fitzpatrick_scale:false,category:\"people\"},family_man_boy:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"child\"],char:\"👨‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_girl:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"child\"],char:\"👨‍👧\",fitzpatrick_scale:false,category:\"people\"},family_man_girl_boy:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"children\"],char:\"👨‍👧‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_boy_boy:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"children\"],char:\"👨‍👦‍👦\",fitzpatrick_scale:false,category:\"people\"},family_man_girl_girl:{keywords:[\"home\",\"parent\",\"people\",\"human\",\"children\"],char:\"👨‍👧‍👧\",fitzpatrick_scale:false,category:\"people\"},yarn:{keywords:[\"ball\",\"crochet\",\"knit\"],char:\"🧶\",fitzpatrick_scale:false,category:\"people\"},thread:{keywords:[\"needle\",\"sewing\",\"spool\",\"string\"],char:\"🧵\",fitzpatrick_scale:false,category:\"people\"},coat:{keywords:[\"jacket\"],char:\"🧥\",fitzpatrick_scale:false,category:\"people\"},labcoat:{keywords:[\"doctor\",\"experiment\",\"scientist\",\"chemist\"],char:\"🥼\",fitzpatrick_scale:false,category:\"people\"},womans_clothes:{keywords:[\"fashion\",\"shopping_bags\",\"female\"],char:\"👚\",fitzpatrick_scale:false,category:\"people\"},tshirt:{keywords:[\"fashion\",\"cloth\",\"casual\",\"shirt\",\"tee\"],char:\"👕\",fitzpatrick_scale:false,category:\"people\"},jeans:{keywords:[\"fashion\",\"shopping\"],char:\"👖\",fitzpatrick_scale:false,category:\"people\"},necktie:{keywords:[\"shirt\",\"suitup\",\"formal\",\"fashion\",\"cloth\",\"business\"],char:\"👔\",fitzpatrick_scale:false,category:\"people\"},dress:{keywords:[\"clothes\",\"fashion\",\"shopping\"],char:\"👗\",fitzpatrick_scale:false,category:\"people\"},bikini:{keywords:[\"swimming\",\"female\",\"woman\",\"girl\",\"fashion\",\"beach\",\"summer\"],char:\"👙\",fitzpatrick_scale:false,category:\"people\"},kimono:{keywords:[\"dress\",\"fashion\",\"women\",\"female\",\"japanese\"],char:\"👘\",fitzpatrick_scale:false,category:\"people\"},lipstick:{keywords:[\"female\",\"girl\",\"fashion\",\"woman\"],char:\"💄\",fitzpatrick_scale:false,category:\"people\"},kiss:{keywords:[\"face\",\"lips\",\"love\",\"like\",\"affection\",\"valentines\"],char:\"💋\",fitzpatrick_scale:false,category:\"people\"},footprints:{keywords:[\"feet\",\"tracking\",\"walking\",\"beach\"],char:\"👣\",fitzpatrick_scale:false,category:\"people\"},flat_shoe:{keywords:[\"ballet\",\"slip-on\",\"slipper\"],char:\"🥿\",fitzpatrick_scale:false,category:\"people\"},high_heel:{keywords:[\"fashion\",\"shoes\",\"female\",\"pumps\",\"stiletto\"],char:\"👠\",fitzpatrick_scale:false,category:\"people\"},sandal:{keywords:[\"shoes\",\"fashion\",\"flip flops\"],char:\"👡\",fitzpatrick_scale:false,category:\"people\"},boot:{keywords:[\"shoes\",\"fashion\"],char:\"👢\",fitzpatrick_scale:false,category:\"people\"},mans_shoe:{keywords:[\"fashion\",\"male\"],char:\"👞\",fitzpatrick_scale:false,category:\"people\"},athletic_shoe:{keywords:[\"shoes\",\"sports\",\"sneakers\"],char:\"👟\",fitzpatrick_scale:false,category:\"people\"},hiking_boot:{keywords:[\"backpacking\",\"camping\",\"hiking\"],char:\"🥾\",fitzpatrick_scale:false,category:\"people\"},socks:{keywords:[\"stockings\",\"clothes\"],char:\"🧦\",fitzpatrick_scale:false,category:\"people\"},gloves:{keywords:[\"hands\",\"winter\",\"clothes\"],char:\"🧤\",fitzpatrick_scale:false,category:\"people\"},scarf:{keywords:[\"neck\",\"winter\",\"clothes\"],char:\"🧣\",fitzpatrick_scale:false,category:\"people\"},womans_hat:{keywords:[\"fashion\",\"accessories\",\"female\",\"lady\",\"spring\"],char:\"👒\",fitzpatrick_scale:false,category:\"people\"},tophat:{keywords:[\"magic\",\"gentleman\",\"classy\",\"circus\"],char:\"🎩\",fitzpatrick_scale:false,category:\"people\"},billed_hat:{keywords:[\"cap\",\"baseball\"],char:\"🧢\",fitzpatrick_scale:false,category:\"people\"},rescue_worker_helmet:{keywords:[\"construction\",\"build\"],char:\"⛑\",fitzpatrick_scale:false,category:\"people\"},mortar_board:{keywords:[\"school\",\"college\",\"degree\",\"university\",\"graduation\",\"cap\",\"hat\",\"legal\",\"learn\",\"education\"],char:\"🎓\",fitzpatrick_scale:false,category:\"people\"},crown:{keywords:[\"king\",\"kod\",\"leader\",\"royalty\",\"lord\"],char:\"👑\",fitzpatrick_scale:false,category:\"people\"},school_satchel:{keywords:[\"student\",\"education\",\"bag\",\"backpack\"],char:\"🎒\",fitzpatrick_scale:false,category:\"people\"},luggage:{keywords:[\"packing\",\"travel\"],char:\"🧳\",fitzpatrick_scale:false,category:\"people\"},pouch:{keywords:[\"bag\",\"accessories\",\"shopping\"],char:\"👝\",fitzpatrick_scale:false,category:\"people\"},purse:{keywords:[\"fashion\",\"accessories\",\"money\",\"sales\",\"shopping\"],char:\"👛\",fitzpatrick_scale:false,category:\"people\"},handbag:{keywords:[\"fashion\",\"accessory\",\"accessories\",\"shopping\"],char:\"👜\",fitzpatrick_scale:false,category:\"people\"},briefcase:{keywords:[\"business\",\"documents\",\"work\",\"law\",\"legal\",\"job\",\"career\"],char:\"💼\",fitzpatrick_scale:false,category:\"people\"},eyeglasses:{keywords:[\"fashion\",\"accessories\",\"eyesight\",\"nerdy\",\"dork\",\"geek\"],char:\"👓\",fitzpatrick_scale:false,category:\"people\"},dark_sunglasses:{keywords:[\"face\",\"cool\",\"accessories\"],char:\"🕶\",fitzpatrick_scale:false,category:\"people\"},goggles:{keywords:[\"eyes\",\"protection\",\"safety\"],char:\"🥽\",fitzpatrick_scale:false,category:\"people\"},ring:{keywords:[\"wedding\",\"propose\",\"marriage\",\"valentines\",\"diamond\",\"fashion\",\"jewelry\",\"gem\",\"engagement\"],char:\"💍\",fitzpatrick_scale:false,category:\"people\"},closed_umbrella:{keywords:[\"weather\",\"rain\",\"drizzle\"],char:\"🌂\",fitzpatrick_scale:false,category:\"people\"},dog:{keywords:[\"animal\",\"friend\",\"nature\",\"woof\",\"puppy\",\"pet\",\"faithful\"],char:\"🐶\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cat:{keywords:[\"animal\",\"meow\",\"nature\",\"pet\",\"kitten\"],char:\"🐱\",fitzpatrick_scale:false,category:\"animals_and_nature\"},mouse:{keywords:[\"animal\",\"nature\",\"cheese_wedge\",\"rodent\"],char:\"🐭\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hamster:{keywords:[\"animal\",\"nature\"],char:\"🐹\",fitzpatrick_scale:false,category:\"animals_and_nature\"},rabbit:{keywords:[\"animal\",\"nature\",\"pet\",\"spring\",\"magic\",\"bunny\"],char:\"🐰\",fitzpatrick_scale:false,category:\"animals_and_nature\"},fox_face:{keywords:[\"animal\",\"nature\",\"face\"],char:\"🦊\",fitzpatrick_scale:false,category:\"animals_and_nature\"},bear:{keywords:[\"animal\",\"nature\",\"wild\"],char:\"🐻\",fitzpatrick_scale:false,category:\"animals_and_nature\"},panda_face:{keywords:[\"animal\",\"nature\",\"panda\"],char:\"🐼\",fitzpatrick_scale:false,category:\"animals_and_nature\"},koala:{keywords:[\"animal\",\"nature\"],char:\"🐨\",fitzpatrick_scale:false,category:\"animals_and_nature\"},tiger:{keywords:[\"animal\",\"cat\",\"danger\",\"wild\",\"nature\",\"roar\"],char:\"🐯\",fitzpatrick_scale:false,category:\"animals_and_nature\"},lion:{keywords:[\"animal\",\"nature\"],char:\"🦁\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cow:{keywords:[\"beef\",\"ox\",\"animal\",\"nature\",\"moo\",\"milk\"],char:\"🐮\",fitzpatrick_scale:false,category:\"animals_and_nature\"},pig:{keywords:[\"animal\",\"oink\",\"nature\"],char:\"🐷\",fitzpatrick_scale:false,category:\"animals_and_nature\"},pig_nose:{keywords:[\"animal\",\"oink\"],char:\"🐽\",fitzpatrick_scale:false,category:\"animals_and_nature\"},frog:{keywords:[\"animal\",\"nature\",\"croak\",\"toad\"],char:\"🐸\",fitzpatrick_scale:false,category:\"animals_and_nature\"},squid:{keywords:[\"animal\",\"nature\",\"ocean\",\"sea\"],char:\"🦑\",fitzpatrick_scale:false,category:\"animals_and_nature\"},octopus:{keywords:[\"animal\",\"creature\",\"ocean\",\"sea\",\"nature\",\"beach\"],char:\"🐙\",fitzpatrick_scale:false,category:\"animals_and_nature\"},shrimp:{keywords:[\"animal\",\"ocean\",\"nature\",\"seafood\"],char:\"🦐\",fitzpatrick_scale:false,category:\"animals_and_nature\"},monkey_face:{keywords:[\"animal\",\"nature\",\"circus\"],char:\"🐵\",fitzpatrick_scale:false,category:\"animals_and_nature\"},gorilla:{keywords:[\"animal\",\"nature\",\"circus\"],char:\"🦍\",fitzpatrick_scale:false,category:\"animals_and_nature\"},see_no_evil:{keywords:[\"monkey\",\"animal\",\"nature\",\"haha\"],char:\"🙈\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hear_no_evil:{keywords:[\"animal\",\"monkey\",\"nature\"],char:\"🙉\",fitzpatrick_scale:false,category:\"animals_and_nature\"},speak_no_evil:{keywords:[\"monkey\",\"animal\",\"nature\",\"omg\"],char:\"🙊\",fitzpatrick_scale:false,category:\"animals_and_nature\"},monkey:{keywords:[\"animal\",\"nature\",\"banana\",\"circus\"],char:\"🐒\",fitzpatrick_scale:false,category:\"animals_and_nature\"},chicken:{keywords:[\"animal\",\"cluck\",\"nature\",\"bird\"],char:\"🐔\",fitzpatrick_scale:false,category:\"animals_and_nature\"},penguin:{keywords:[\"animal\",\"nature\"],char:\"🐧\",fitzpatrick_scale:false,category:\"animals_and_nature\"},bird:{keywords:[\"animal\",\"nature\",\"fly\",\"tweet\",\"spring\"],char:\"🐦\",fitzpatrick_scale:false,category:\"animals_and_nature\"},baby_chick:{keywords:[\"animal\",\"chicken\",\"bird\"],char:\"🐤\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hatching_chick:{keywords:[\"animal\",\"chicken\",\"egg\",\"born\",\"baby\",\"bird\"],char:\"🐣\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hatched_chick:{keywords:[\"animal\",\"chicken\",\"baby\",\"bird\"],char:\"🐥\",fitzpatrick_scale:false,category:\"animals_and_nature\"},duck:{keywords:[\"animal\",\"nature\",\"bird\",\"mallard\"],char:\"🦆\",fitzpatrick_scale:false,category:\"animals_and_nature\"},eagle:{keywords:[\"animal\",\"nature\",\"bird\"],char:\"🦅\",fitzpatrick_scale:false,category:\"animals_and_nature\"},owl:{keywords:[\"animal\",\"nature\",\"bird\",\"hoot\"],char:\"🦉\",fitzpatrick_scale:false,category:\"animals_and_nature\"},bat:{keywords:[\"animal\",\"nature\",\"blind\",\"vampire\"],char:\"🦇\",fitzpatrick_scale:false,category:\"animals_and_nature\"},wolf:{keywords:[\"animal\",\"nature\",\"wild\"],char:\"🐺\",fitzpatrick_scale:false,category:\"animals_and_nature\"},boar:{keywords:[\"animal\",\"nature\"],char:\"🐗\",fitzpatrick_scale:false,category:\"animals_and_nature\"},horse:{keywords:[\"animal\",\"brown\",\"nature\"],char:\"🐴\",fitzpatrick_scale:false,category:\"animals_and_nature\"},unicorn:{keywords:[\"animal\",\"nature\",\"mystical\"],char:\"🦄\",fitzpatrick_scale:false,category:\"animals_and_nature\"},honeybee:{keywords:[\"animal\",\"insect\",\"nature\",\"bug\",\"spring\",\"honey\"],char:\"🐝\",fitzpatrick_scale:false,category:\"animals_and_nature\"},bug:{keywords:[\"animal\",\"insect\",\"nature\",\"worm\"],char:\"🐛\",fitzpatrick_scale:false,category:\"animals_and_nature\"},butterfly:{keywords:[\"animal\",\"insect\",\"nature\",\"caterpillar\"],char:\"🦋\",fitzpatrick_scale:false,category:\"animals_and_nature\"},snail:{keywords:[\"slow\",\"animal\",\"shell\"],char:\"🐌\",fitzpatrick_scale:false,category:\"animals_and_nature\"},beetle:{keywords:[\"animal\",\"insect\",\"nature\",\"ladybug\"],char:\"🐞\",fitzpatrick_scale:false,category:\"animals_and_nature\"},ant:{keywords:[\"animal\",\"insect\",\"nature\",\"bug\"],char:\"🐜\",fitzpatrick_scale:false,category:\"animals_and_nature\"},grasshopper:{keywords:[\"animal\",\"cricket\",\"chirp\"],char:\"🦗\",fitzpatrick_scale:false,category:\"animals_and_nature\"},spider:{keywords:[\"animal\",\"arachnid\"],char:\"🕷\",fitzpatrick_scale:false,category:\"animals_and_nature\"},scorpion:{keywords:[\"animal\",\"arachnid\"],char:\"🦂\",fitzpatrick_scale:false,category:\"animals_and_nature\"},crab:{keywords:[\"animal\",\"crustacean\"],char:\"🦀\",fitzpatrick_scale:false,category:\"animals_and_nature\"},snake:{keywords:[\"animal\",\"evil\",\"nature\",\"hiss\",\"python\"],char:\"🐍\",fitzpatrick_scale:false,category:\"animals_and_nature\"},lizard:{keywords:[\"animal\",\"nature\",\"reptile\"],char:\"🦎\",fitzpatrick_scale:false,category:\"animals_and_nature\"},\"t-rex\":{keywords:[\"animal\",\"nature\",\"dinosaur\",\"tyrannosaurus\",\"extinct\"],char:\"🦖\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sauropod:{keywords:[\"animal\",\"nature\",\"dinosaur\",\"brachiosaurus\",\"brontosaurus\",\"diplodocus\",\"extinct\"],char:\"🦕\",fitzpatrick_scale:false,category:\"animals_and_nature\"},turtle:{keywords:[\"animal\",\"slow\",\"nature\",\"tortoise\"],char:\"🐢\",fitzpatrick_scale:false,category:\"animals_and_nature\"},tropical_fish:{keywords:[\"animal\",\"swim\",\"ocean\",\"beach\",\"nemo\"],char:\"🐠\",fitzpatrick_scale:false,category:\"animals_and_nature\"},fish:{keywords:[\"animal\",\"food\",\"nature\"],char:\"🐟\",fitzpatrick_scale:false,category:\"animals_and_nature\"},blowfish:{keywords:[\"animal\",\"nature\",\"food\",\"sea\",\"ocean\"],char:\"🐡\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dolphin:{keywords:[\"animal\",\"nature\",\"fish\",\"sea\",\"ocean\",\"flipper\",\"fins\",\"beach\"],char:\"🐬\",fitzpatrick_scale:false,category:\"animals_and_nature\"},shark:{keywords:[\"animal\",\"nature\",\"fish\",\"sea\",\"ocean\",\"jaws\",\"fins\",\"beach\"],char:\"🦈\",fitzpatrick_scale:false,category:\"animals_and_nature\"},whale:{keywords:[\"animal\",\"nature\",\"sea\",\"ocean\"],char:\"🐳\",fitzpatrick_scale:false,category:\"animals_and_nature\"},whale2:{keywords:[\"animal\",\"nature\",\"sea\",\"ocean\"],char:\"🐋\",fitzpatrick_scale:false,category:\"animals_and_nature\"},crocodile:{keywords:[\"animal\",\"nature\",\"reptile\",\"lizard\",\"alligator\"],char:\"🐊\",fitzpatrick_scale:false,category:\"animals_and_nature\"},leopard:{keywords:[\"animal\",\"nature\"],char:\"🐆\",fitzpatrick_scale:false,category:\"animals_and_nature\"},zebra:{keywords:[\"animal\",\"nature\",\"stripes\",\"safari\"],char:\"🦓\",fitzpatrick_scale:false,category:\"animals_and_nature\"},tiger2:{keywords:[\"animal\",\"nature\",\"roar\"],char:\"🐅\",fitzpatrick_scale:false,category:\"animals_and_nature\"},water_buffalo:{keywords:[\"animal\",\"nature\",\"ox\",\"cow\"],char:\"🐃\",fitzpatrick_scale:false,category:\"animals_and_nature\"},ox:{keywords:[\"animal\",\"cow\",\"beef\"],char:\"🐂\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cow2:{keywords:[\"beef\",\"ox\",\"animal\",\"nature\",\"moo\",\"milk\"],char:\"🐄\",fitzpatrick_scale:false,category:\"animals_and_nature\"},deer:{keywords:[\"animal\",\"nature\",\"horns\",\"venison\"],char:\"🦌\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dromedary_camel:{keywords:[\"animal\",\"hot\",\"desert\",\"hump\"],char:\"🐪\",fitzpatrick_scale:false,category:\"animals_and_nature\"},camel:{keywords:[\"animal\",\"nature\",\"hot\",\"desert\",\"hump\"],char:\"🐫\",fitzpatrick_scale:false,category:\"animals_and_nature\"},giraffe:{keywords:[\"animal\",\"nature\",\"spots\",\"safari\"],char:\"🦒\",fitzpatrick_scale:false,category:\"animals_and_nature\"},elephant:{keywords:[\"animal\",\"nature\",\"nose\",\"th\",\"circus\"],char:\"🐘\",fitzpatrick_scale:false,category:\"animals_and_nature\"},rhinoceros:{keywords:[\"animal\",\"nature\",\"horn\"],char:\"🦏\",fitzpatrick_scale:false,category:\"animals_and_nature\"},goat:{keywords:[\"animal\",\"nature\"],char:\"🐐\",fitzpatrick_scale:false,category:\"animals_and_nature\"},ram:{keywords:[\"animal\",\"sheep\",\"nature\"],char:\"🐏\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sheep:{keywords:[\"animal\",\"nature\",\"wool\",\"shipit\"],char:\"🐑\",fitzpatrick_scale:false,category:\"animals_and_nature\"},racehorse:{keywords:[\"animal\",\"gamble\",\"luck\"],char:\"🐎\",fitzpatrick_scale:false,category:\"animals_and_nature\"},pig2:{keywords:[\"animal\",\"nature\"],char:\"🐖\",fitzpatrick_scale:false,category:\"animals_and_nature\"},rat:{keywords:[\"animal\",\"mouse\",\"rodent\"],char:\"🐀\",fitzpatrick_scale:false,category:\"animals_and_nature\"},mouse2:{keywords:[\"animal\",\"nature\",\"rodent\"],char:\"🐁\",fitzpatrick_scale:false,category:\"animals_and_nature\"},rooster:{keywords:[\"animal\",\"nature\",\"chicken\"],char:\"🐓\",fitzpatrick_scale:false,category:\"animals_and_nature\"},turkey:{keywords:[\"animal\",\"bird\"],char:\"🦃\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dove:{keywords:[\"animal\",\"bird\"],char:\"🕊\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dog2:{keywords:[\"animal\",\"nature\",\"friend\",\"doge\",\"pet\",\"faithful\"],char:\"🐕\",fitzpatrick_scale:false,category:\"animals_and_nature\"},poodle:{keywords:[\"dog\",\"animal\",\"101\",\"nature\",\"pet\"],char:\"🐩\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cat2:{keywords:[\"animal\",\"meow\",\"pet\",\"cats\"],char:\"🐈\",fitzpatrick_scale:false,category:\"animals_and_nature\"},rabbit2:{keywords:[\"animal\",\"nature\",\"pet\",\"magic\",\"spring\"],char:\"🐇\",fitzpatrick_scale:false,category:\"animals_and_nature\"},chipmunk:{keywords:[\"animal\",\"nature\",\"rodent\",\"squirrel\"],char:\"🐿\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hedgehog:{keywords:[\"animal\",\"nature\",\"spiny\"],char:\"🦔\",fitzpatrick_scale:false,category:\"animals_and_nature\"},raccoon:{keywords:[\"animal\",\"nature\"],char:\"🦝\",fitzpatrick_scale:false,category:\"animals_and_nature\"},llama:{keywords:[\"animal\",\"nature\",\"alpaca\"],char:\"🦙\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hippopotamus:{keywords:[\"animal\",\"nature\"],char:\"🦛\",fitzpatrick_scale:false,category:\"animals_and_nature\"},kangaroo:{keywords:[\"animal\",\"nature\",\"australia\",\"joey\",\"hop\",\"marsupial\"],char:\"🦘\",fitzpatrick_scale:false,category:\"animals_and_nature\"},badger:{keywords:[\"animal\",\"nature\",\"honey\"],char:\"🦡\",fitzpatrick_scale:false,category:\"animals_and_nature\"},swan:{keywords:[\"animal\",\"nature\",\"bird\"],char:\"🦢\",fitzpatrick_scale:false,category:\"animals_and_nature\"},peacock:{keywords:[\"animal\",\"nature\",\"peahen\",\"bird\"],char:\"🦚\",fitzpatrick_scale:false,category:\"animals_and_nature\"},parrot:{keywords:[\"animal\",\"nature\",\"bird\",\"pirate\",\"talk\"],char:\"🦜\",fitzpatrick_scale:false,category:\"animals_and_nature\"},lobster:{keywords:[\"animal\",\"nature\",\"bisque\",\"claws\",\"seafood\"],char:\"🦞\",fitzpatrick_scale:false,category:\"animals_and_nature\"},mosquito:{keywords:[\"animal\",\"nature\",\"insect\",\"malaria\"],char:\"🦟\",fitzpatrick_scale:false,category:\"animals_and_nature\"},paw_prints:{keywords:[\"animal\",\"tracking\",\"footprints\",\"dog\",\"cat\",\"pet\",\"feet\"],char:\"🐾\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dragon:{keywords:[\"animal\",\"myth\",\"nature\",\"chinese\",\"green\"],char:\"🐉\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dragon_face:{keywords:[\"animal\",\"myth\",\"nature\",\"chinese\",\"green\"],char:\"🐲\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cactus:{keywords:[\"vegetable\",\"plant\",\"nature\"],char:\"🌵\",fitzpatrick_scale:false,category:\"animals_and_nature\"},christmas_tree:{keywords:[\"festival\",\"vacation\",\"december\",\"xmas\",\"celebration\"],char:\"🎄\",fitzpatrick_scale:false,category:\"animals_and_nature\"},evergreen_tree:{keywords:[\"plant\",\"nature\"],char:\"🌲\",fitzpatrick_scale:false,category:\"animals_and_nature\"},deciduous_tree:{keywords:[\"plant\",\"nature\"],char:\"🌳\",fitzpatrick_scale:false,category:\"animals_and_nature\"},palm_tree:{keywords:[\"plant\",\"vegetable\",\"nature\",\"summer\",\"beach\",\"mojito\",\"tropical\"],char:\"🌴\",fitzpatrick_scale:false,category:\"animals_and_nature\"},seedling:{keywords:[\"plant\",\"nature\",\"grass\",\"lawn\",\"spring\"],char:\"🌱\",fitzpatrick_scale:false,category:\"animals_and_nature\"},herb:{keywords:[\"vegetable\",\"plant\",\"medicine\",\"weed\",\"grass\",\"lawn\"],char:\"🌿\",fitzpatrick_scale:false,category:\"animals_and_nature\"},shamrock:{keywords:[\"vegetable\",\"plant\",\"nature\",\"irish\",\"clover\"],char:\"☘\",fitzpatrick_scale:false,category:\"animals_and_nature\"},four_leaf_clover:{keywords:[\"vegetable\",\"plant\",\"nature\",\"lucky\",\"irish\"],char:\"🍀\",fitzpatrick_scale:false,category:\"animals_and_nature\"},bamboo:{keywords:[\"plant\",\"nature\",\"vegetable\",\"panda\",\"pine_decoration\"],char:\"🎍\",fitzpatrick_scale:false,category:\"animals_and_nature\"},tanabata_tree:{keywords:[\"plant\",\"nature\",\"branch\",\"summer\"],char:\"🎋\",fitzpatrick_scale:false,category:\"animals_and_nature\"},leaves:{keywords:[\"nature\",\"plant\",\"tree\",\"vegetable\",\"grass\",\"lawn\",\"spring\"],char:\"🍃\",fitzpatrick_scale:false,category:\"animals_and_nature\"},fallen_leaf:{keywords:[\"nature\",\"plant\",\"vegetable\",\"leaves\"],char:\"🍂\",fitzpatrick_scale:false,category:\"animals_and_nature\"},maple_leaf:{keywords:[\"nature\",\"plant\",\"vegetable\",\"ca\",\"fall\"],char:\"🍁\",fitzpatrick_scale:false,category:\"animals_and_nature\"},ear_of_rice:{keywords:[\"nature\",\"plant\"],char:\"🌾\",fitzpatrick_scale:false,category:\"animals_and_nature\"},hibiscus:{keywords:[\"plant\",\"vegetable\",\"flowers\",\"beach\"],char:\"🌺\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sunflower:{keywords:[\"nature\",\"plant\",\"fall\"],char:\"🌻\",fitzpatrick_scale:false,category:\"animals_and_nature\"},rose:{keywords:[\"flowers\",\"valentines\",\"love\",\"spring\"],char:\"🌹\",fitzpatrick_scale:false,category:\"animals_and_nature\"},wilted_flower:{keywords:[\"plant\",\"nature\",\"flower\"],char:\"🥀\",fitzpatrick_scale:false,category:\"animals_and_nature\"},tulip:{keywords:[\"flowers\",\"plant\",\"nature\",\"summer\",\"spring\"],char:\"🌷\",fitzpatrick_scale:false,category:\"animals_and_nature\"},blossom:{keywords:[\"nature\",\"flowers\",\"yellow\"],char:\"🌼\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cherry_blossom:{keywords:[\"nature\",\"plant\",\"spring\",\"flower\"],char:\"🌸\",fitzpatrick_scale:false,category:\"animals_and_nature\"},bouquet:{keywords:[\"flowers\",\"nature\",\"spring\"],char:\"💐\",fitzpatrick_scale:false,category:\"animals_and_nature\"},mushroom:{keywords:[\"plant\",\"vegetable\"],char:\"🍄\",fitzpatrick_scale:false,category:\"animals_and_nature\"},chestnut:{keywords:[\"food\",\"squirrel\"],char:\"🌰\",fitzpatrick_scale:false,category:\"animals_and_nature\"},jack_o_lantern:{keywords:[\"halloween\",\"light\",\"pumpkin\",\"creepy\",\"fall\"],char:\"🎃\",fitzpatrick_scale:false,category:\"animals_and_nature\"},shell:{keywords:[\"nature\",\"sea\",\"beach\"],char:\"🐚\",fitzpatrick_scale:false,category:\"animals_and_nature\"},spider_web:{keywords:[\"animal\",\"insect\",\"arachnid\",\"silk\"],char:\"🕸\",fitzpatrick_scale:false,category:\"animals_and_nature\"},earth_americas:{keywords:[\"globe\",\"world\",\"USA\",\"international\"],char:\"🌎\",fitzpatrick_scale:false,category:\"animals_and_nature\"},earth_africa:{keywords:[\"globe\",\"world\",\"international\"],char:\"🌍\",fitzpatrick_scale:false,category:\"animals_and_nature\"},earth_asia:{keywords:[\"globe\",\"world\",\"east\",\"international\"],char:\"🌏\",fitzpatrick_scale:false,category:\"animals_and_nature\"},full_moon:{keywords:[\"nature\",\"yellow\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌕\",fitzpatrick_scale:false,category:\"animals_and_nature\"},waning_gibbous_moon:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\",\"waxing_gibbous_moon\"],char:\"🌖\",fitzpatrick_scale:false,category:\"animals_and_nature\"},last_quarter_moon:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌗\",fitzpatrick_scale:false,category:\"animals_and_nature\"},waning_crescent_moon:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌘\",fitzpatrick_scale:false,category:\"animals_and_nature\"},new_moon:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌑\",fitzpatrick_scale:false,category:\"animals_and_nature\"},waxing_crescent_moon:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌒\",fitzpatrick_scale:false,category:\"animals_and_nature\"},first_quarter_moon:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌓\",fitzpatrick_scale:false,category:\"animals_and_nature\"},waxing_gibbous_moon:{keywords:[\"nature\",\"night\",\"sky\",\"gray\",\"twilight\",\"planet\",\"space\",\"evening\",\"sleep\"],char:\"🌔\",fitzpatrick_scale:false,category:\"animals_and_nature\"},new_moon_with_face:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌚\",fitzpatrick_scale:false,category:\"animals_and_nature\"},full_moon_with_face:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌝\",fitzpatrick_scale:false,category:\"animals_and_nature\"},first_quarter_moon_with_face:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌛\",fitzpatrick_scale:false,category:\"animals_and_nature\"},last_quarter_moon_with_face:{keywords:[\"nature\",\"twilight\",\"planet\",\"space\",\"night\",\"evening\",\"sleep\"],char:\"🌜\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sun_with_face:{keywords:[\"nature\",\"morning\",\"sky\"],char:\"🌞\",fitzpatrick_scale:false,category:\"animals_and_nature\"},crescent_moon:{keywords:[\"night\",\"sleep\",\"sky\",\"evening\",\"magic\"],char:\"🌙\",fitzpatrick_scale:false,category:\"animals_and_nature\"},star:{keywords:[\"night\",\"yellow\"],char:\"⭐\",fitzpatrick_scale:false,category:\"animals_and_nature\"},star2:{keywords:[\"night\",\"sparkle\",\"awesome\",\"good\",\"magic\"],char:\"🌟\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dizzy:{keywords:[\"star\",\"sparkle\",\"shoot\",\"magic\"],char:\"💫\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sparkles:{keywords:[\"stars\",\"shine\",\"shiny\",\"cool\",\"awesome\",\"good\",\"magic\"],char:\"✨\",fitzpatrick_scale:false,category:\"animals_and_nature\"},comet:{keywords:[\"space\"],char:\"☄\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sunny:{keywords:[\"weather\",\"nature\",\"brightness\",\"summer\",\"beach\",\"spring\"],char:\"☀️\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sun_behind_small_cloud:{keywords:[\"weather\"],char:\"🌤\",fitzpatrick_scale:false,category:\"animals_and_nature\"},partly_sunny:{keywords:[\"weather\",\"nature\",\"cloudy\",\"morning\",\"fall\",\"spring\"],char:\"⛅\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sun_behind_large_cloud:{keywords:[\"weather\"],char:\"🌥\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sun_behind_rain_cloud:{keywords:[\"weather\"],char:\"🌦\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cloud:{keywords:[\"weather\",\"sky\"],char:\"☁️\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cloud_with_rain:{keywords:[\"weather\"],char:\"🌧\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cloud_with_lightning_and_rain:{keywords:[\"weather\",\"lightning\"],char:\"⛈\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cloud_with_lightning:{keywords:[\"weather\",\"thunder\"],char:\"🌩\",fitzpatrick_scale:false,category:\"animals_and_nature\"},zap:{keywords:[\"thunder\",\"weather\",\"lightning bolt\",\"fast\"],char:\"⚡\",fitzpatrick_scale:false,category:\"animals_and_nature\"},fire:{keywords:[\"hot\",\"cook\",\"flame\"],char:\"🔥\",fitzpatrick_scale:false,category:\"animals_and_nature\"},boom:{keywords:[\"bomb\",\"explode\",\"explosion\",\"collision\",\"blown\"],char:\"💥\",fitzpatrick_scale:false,category:\"animals_and_nature\"},snowflake:{keywords:[\"winter\",\"season\",\"cold\",\"weather\",\"christmas\",\"xmas\"],char:\"❄️\",fitzpatrick_scale:false,category:\"animals_and_nature\"},cloud_with_snow:{keywords:[\"weather\"],char:\"🌨\",fitzpatrick_scale:false,category:\"animals_and_nature\"},snowman:{keywords:[\"winter\",\"season\",\"cold\",\"weather\",\"christmas\",\"xmas\",\"frozen\",\"without_snow\"],char:\"⛄\",fitzpatrick_scale:false,category:\"animals_and_nature\"},snowman_with_snow:{keywords:[\"winter\",\"season\",\"cold\",\"weather\",\"christmas\",\"xmas\",\"frozen\"],char:\"☃\",fitzpatrick_scale:false,category:\"animals_and_nature\"},wind_face:{keywords:[\"gust\",\"air\"],char:\"🌬\",fitzpatrick_scale:false,category:\"animals_and_nature\"},dash:{keywords:[\"wind\",\"air\",\"fast\",\"shoo\",\"fart\",\"smoke\",\"puff\"],char:\"💨\",fitzpatrick_scale:false,category:\"animals_and_nature\"},tornado:{keywords:[\"weather\",\"cyclone\",\"twister\"],char:\"🌪\",fitzpatrick_scale:false,category:\"animals_and_nature\"},fog:{keywords:[\"weather\"],char:\"🌫\",fitzpatrick_scale:false,category:\"animals_and_nature\"},open_umbrella:{keywords:[\"weather\",\"spring\"],char:\"☂\",fitzpatrick_scale:false,category:\"animals_and_nature\"},umbrella:{keywords:[\"rainy\",\"weather\",\"spring\"],char:\"☔\",fitzpatrick_scale:false,category:\"animals_and_nature\"},droplet:{keywords:[\"water\",\"drip\",\"faucet\",\"spring\"],char:\"💧\",fitzpatrick_scale:false,category:\"animals_and_nature\"},sweat_drops:{keywords:[\"water\",\"drip\",\"oops\"],char:\"💦\",fitzpatrick_scale:false,category:\"animals_and_nature\"},ocean:{keywords:[\"sea\",\"water\",\"wave\",\"nature\",\"tsunami\",\"disaster\"],char:\"🌊\",fitzpatrick_scale:false,category:\"animals_and_nature\"},green_apple:{keywords:[\"fruit\",\"nature\"],char:\"🍏\",fitzpatrick_scale:false,category:\"food_and_drink\"},apple:{keywords:[\"fruit\",\"mac\",\"school\"],char:\"🍎\",fitzpatrick_scale:false,category:\"food_and_drink\"},pear:{keywords:[\"fruit\",\"nature\",\"food\"],char:\"🍐\",fitzpatrick_scale:false,category:\"food_and_drink\"},tangerine:{keywords:[\"food\",\"fruit\",\"nature\",\"orange\"],char:\"🍊\",fitzpatrick_scale:false,category:\"food_and_drink\"},lemon:{keywords:[\"fruit\",\"nature\"],char:\"🍋\",fitzpatrick_scale:false,category:\"food_and_drink\"},banana:{keywords:[\"fruit\",\"food\",\"monkey\"],char:\"🍌\",fitzpatrick_scale:false,category:\"food_and_drink\"},watermelon:{keywords:[\"fruit\",\"food\",\"picnic\",\"summer\"],char:\"🍉\",fitzpatrick_scale:false,category:\"food_and_drink\"},grapes:{keywords:[\"fruit\",\"food\",\"wine\"],char:\"🍇\",fitzpatrick_scale:false,category:\"food_and_drink\"},strawberry:{keywords:[\"fruit\",\"food\",\"nature\"],char:\"🍓\",fitzpatrick_scale:false,category:\"food_and_drink\"},melon:{keywords:[\"fruit\",\"nature\",\"food\"],char:\"🍈\",fitzpatrick_scale:false,category:\"food_and_drink\"},cherries:{keywords:[\"food\",\"fruit\"],char:\"🍒\",fitzpatrick_scale:false,category:\"food_and_drink\"},peach:{keywords:[\"fruit\",\"nature\",\"food\"],char:\"🍑\",fitzpatrick_scale:false,category:\"food_and_drink\"},pineapple:{keywords:[\"fruit\",\"nature\",\"food\"],char:\"🍍\",fitzpatrick_scale:false,category:\"food_and_drink\"},coconut:{keywords:[\"fruit\",\"nature\",\"food\",\"palm\"],char:\"🥥\",fitzpatrick_scale:false,category:\"food_and_drink\"},kiwi_fruit:{keywords:[\"fruit\",\"food\"],char:\"🥝\",fitzpatrick_scale:false,category:\"food_and_drink\"},mango:{keywords:[\"fruit\",\"food\",\"tropical\"],char:\"🥭\",fitzpatrick_scale:false,category:\"food_and_drink\"},avocado:{keywords:[\"fruit\",\"food\"],char:\"🥑\",fitzpatrick_scale:false,category:\"food_and_drink\"},broccoli:{keywords:[\"fruit\",\"food\",\"vegetable\"],char:\"🥦\",fitzpatrick_scale:false,category:\"food_and_drink\"},tomato:{keywords:[\"fruit\",\"vegetable\",\"nature\",\"food\"],char:\"🍅\",fitzpatrick_scale:false,category:\"food_and_drink\"},eggplant:{keywords:[\"vegetable\",\"nature\",\"food\",\"aubergine\"],char:\"🍆\",fitzpatrick_scale:false,category:\"food_and_drink\"},cucumber:{keywords:[\"fruit\",\"food\",\"pickle\"],char:\"🥒\",fitzpatrick_scale:false,category:\"food_and_drink\"},carrot:{keywords:[\"vegetable\",\"food\",\"orange\"],char:\"🥕\",fitzpatrick_scale:false,category:\"food_and_drink\"},hot_pepper:{keywords:[\"food\",\"spicy\",\"chilli\",\"chili\"],char:\"🌶\",fitzpatrick_scale:false,category:\"food_and_drink\"},potato:{keywords:[\"food\",\"tuber\",\"vegatable\",\"starch\"],char:\"🥔\",fitzpatrick_scale:false,category:\"food_and_drink\"},corn:{keywords:[\"food\",\"vegetable\",\"plant\"],char:\"🌽\",fitzpatrick_scale:false,category:\"food_and_drink\"},leafy_greens:{keywords:[\"food\",\"vegetable\",\"plant\",\"bok choy\",\"cabbage\",\"kale\",\"lettuce\"],char:\"🥬\",fitzpatrick_scale:false,category:\"food_and_drink\"},sweet_potato:{keywords:[\"food\",\"nature\"],char:\"🍠\",fitzpatrick_scale:false,category:\"food_and_drink\"},peanuts:{keywords:[\"food\",\"nut\"],char:\"🥜\",fitzpatrick_scale:false,category:\"food_and_drink\"},honey_pot:{keywords:[\"bees\",\"sweet\",\"kitchen\"],char:\"🍯\",fitzpatrick_scale:false,category:\"food_and_drink\"},croissant:{keywords:[\"food\",\"bread\",\"french\"],char:\"🥐\",fitzpatrick_scale:false,category:\"food_and_drink\"},bread:{keywords:[\"food\",\"wheat\",\"breakfast\",\"toast\"],char:\"🍞\",fitzpatrick_scale:false,category:\"food_and_drink\"},baguette_bread:{keywords:[\"food\",\"bread\",\"french\"],char:\"🥖\",fitzpatrick_scale:false,category:\"food_and_drink\"},bagel:{keywords:[\"food\",\"bread\",\"bakery\",\"schmear\"],char:\"🥯\",fitzpatrick_scale:false,category:\"food_and_drink\"},pretzel:{keywords:[\"food\",\"bread\",\"twisted\"],char:\"🥨\",fitzpatrick_scale:false,category:\"food_and_drink\"},cheese:{keywords:[\"food\",\"chadder\"],char:\"🧀\",fitzpatrick_scale:false,category:\"food_and_drink\"},egg:{keywords:[\"food\",\"chicken\",\"breakfast\"],char:\"🥚\",fitzpatrick_scale:false,category:\"food_and_drink\"},bacon:{keywords:[\"food\",\"breakfast\",\"pork\",\"pig\",\"meat\"],char:\"🥓\",fitzpatrick_scale:false,category:\"food_and_drink\"},steak:{keywords:[\"food\",\"cow\",\"meat\",\"cut\",\"chop\",\"lambchop\",\"porkchop\"],char:\"🥩\",fitzpatrick_scale:false,category:\"food_and_drink\"},pancakes:{keywords:[\"food\",\"breakfast\",\"flapjacks\",\"hotcakes\"],char:\"🥞\",fitzpatrick_scale:false,category:\"food_and_drink\"},poultry_leg:{keywords:[\"food\",\"meat\",\"drumstick\",\"bird\",\"chicken\",\"turkey\"],char:\"🍗\",fitzpatrick_scale:false,category:\"food_and_drink\"},meat_on_bone:{keywords:[\"good\",\"food\",\"drumstick\"],char:\"🍖\",fitzpatrick_scale:false,category:\"food_and_drink\"},bone:{keywords:[\"skeleton\"],char:\"🦴\",fitzpatrick_scale:false,category:\"food_and_drink\"},fried_shrimp:{keywords:[\"food\",\"animal\",\"appetizer\",\"summer\"],char:\"🍤\",fitzpatrick_scale:false,category:\"food_and_drink\"},fried_egg:{keywords:[\"food\",\"breakfast\",\"kitchen\",\"egg\"],char:\"🍳\",fitzpatrick_scale:false,category:\"food_and_drink\"},hamburger:{keywords:[\"meat\",\"fast food\",\"beef\",\"cheeseburger\",\"mcdonalds\",\"burger king\"],char:\"🍔\",fitzpatrick_scale:false,category:\"food_and_drink\"},fries:{keywords:[\"chips\",\"snack\",\"fast food\"],char:\"🍟\",fitzpatrick_scale:false,category:\"food_and_drink\"},stuffed_flatbread:{keywords:[\"food\",\"flatbread\",\"stuffed\",\"gyro\"],char:\"🥙\",fitzpatrick_scale:false,category:\"food_and_drink\"},hotdog:{keywords:[\"food\",\"frankfurter\"],char:\"🌭\",fitzpatrick_scale:false,category:\"food_and_drink\"},pizza:{keywords:[\"food\",\"party\"],char:\"🍕\",fitzpatrick_scale:false,category:\"food_and_drink\"},sandwich:{keywords:[\"food\",\"lunch\",\"bread\"],char:\"🥪\",fitzpatrick_scale:false,category:\"food_and_drink\"},canned_food:{keywords:[\"food\",\"soup\"],char:\"🥫\",fitzpatrick_scale:false,category:\"food_and_drink\"},spaghetti:{keywords:[\"food\",\"italian\",\"noodle\"],char:\"🍝\",fitzpatrick_scale:false,category:\"food_and_drink\"},taco:{keywords:[\"food\",\"mexican\"],char:\"🌮\",fitzpatrick_scale:false,category:\"food_and_drink\"},burrito:{keywords:[\"food\",\"mexican\"],char:\"🌯\",fitzpatrick_scale:false,category:\"food_and_drink\"},green_salad:{keywords:[\"food\",\"healthy\",\"lettuce\"],char:\"🥗\",fitzpatrick_scale:false,category:\"food_and_drink\"},shallow_pan_of_food:{keywords:[\"food\",\"cooking\",\"casserole\",\"paella\"],char:\"🥘\",fitzpatrick_scale:false,category:\"food_and_drink\"},ramen:{keywords:[\"food\",\"japanese\",\"noodle\",\"chopsticks\"],char:\"🍜\",fitzpatrick_scale:false,category:\"food_and_drink\"},stew:{keywords:[\"food\",\"meat\",\"soup\"],char:\"🍲\",fitzpatrick_scale:false,category:\"food_and_drink\"},fish_cake:{keywords:[\"food\",\"japan\",\"sea\",\"beach\",\"narutomaki\",\"pink\",\"swirl\",\"kamaboko\",\"surimi\",\"ramen\"],char:\"🍥\",fitzpatrick_scale:false,category:\"food_and_drink\"},fortune_cookie:{keywords:[\"food\",\"prophecy\"],char:\"🥠\",fitzpatrick_scale:false,category:\"food_and_drink\"},sushi:{keywords:[\"food\",\"fish\",\"japanese\",\"rice\"],char:\"🍣\",fitzpatrick_scale:false,category:\"food_and_drink\"},bento:{keywords:[\"food\",\"japanese\",\"box\"],char:\"🍱\",fitzpatrick_scale:false,category:\"food_and_drink\"},curry:{keywords:[\"food\",\"spicy\",\"hot\",\"indian\"],char:\"🍛\",fitzpatrick_scale:false,category:\"food_and_drink\"},rice_ball:{keywords:[\"food\",\"japanese\"],char:\"🍙\",fitzpatrick_scale:false,category:\"food_and_drink\"},rice:{keywords:[\"food\",\"china\",\"asian\"],char:\"🍚\",fitzpatrick_scale:false,category:\"food_and_drink\"},rice_cracker:{keywords:[\"food\",\"japanese\"],char:\"🍘\",fitzpatrick_scale:false,category:\"food_and_drink\"},oden:{keywords:[\"food\",\"japanese\"],char:\"🍢\",fitzpatrick_scale:false,category:\"food_and_drink\"},dango:{keywords:[\"food\",\"dessert\",\"sweet\",\"japanese\",\"barbecue\",\"meat\"],char:\"🍡\",fitzpatrick_scale:false,category:\"food_and_drink\"},shaved_ice:{keywords:[\"hot\",\"dessert\",\"summer\"],char:\"🍧\",fitzpatrick_scale:false,category:\"food_and_drink\"},ice_cream:{keywords:[\"food\",\"hot\",\"dessert\"],char:\"🍨\",fitzpatrick_scale:false,category:\"food_and_drink\"},icecream:{keywords:[\"food\",\"hot\",\"dessert\",\"summer\"],char:\"🍦\",fitzpatrick_scale:false,category:\"food_and_drink\"},pie:{keywords:[\"food\",\"dessert\",\"pastry\"],char:\"🥧\",fitzpatrick_scale:false,category:\"food_and_drink\"},cake:{keywords:[\"food\",\"dessert\"],char:\"🍰\",fitzpatrick_scale:false,category:\"food_and_drink\"},cupcake:{keywords:[\"food\",\"dessert\",\"bakery\",\"sweet\"],char:\"🧁\",fitzpatrick_scale:false,category:\"food_and_drink\"},moon_cake:{keywords:[\"food\",\"autumn\"],char:\"🥮\",fitzpatrick_scale:false,category:\"food_and_drink\"},birthday:{keywords:[\"food\",\"dessert\",\"cake\"],char:\"🎂\",fitzpatrick_scale:false,category:\"food_and_drink\"},custard:{keywords:[\"dessert\",\"food\"],char:\"🍮\",fitzpatrick_scale:false,category:\"food_and_drink\"},candy:{keywords:[\"snack\",\"dessert\",\"sweet\",\"lolly\"],char:\"🍬\",fitzpatrick_scale:false,category:\"food_and_drink\"},lollipop:{keywords:[\"food\",\"snack\",\"candy\",\"sweet\"],char:\"🍭\",fitzpatrick_scale:false,category:\"food_and_drink\"},chocolate_bar:{keywords:[\"food\",\"snack\",\"dessert\",\"sweet\"],char:\"🍫\",fitzpatrick_scale:false,category:\"food_and_drink\"},popcorn:{keywords:[\"food\",\"movie theater\",\"films\",\"snack\"],char:\"🍿\",fitzpatrick_scale:false,category:\"food_and_drink\"},dumpling:{keywords:[\"food\",\"empanada\",\"pierogi\",\"potsticker\"],char:\"🥟\",fitzpatrick_scale:false,category:\"food_and_drink\"},doughnut:{keywords:[\"food\",\"dessert\",\"snack\",\"sweet\",\"donut\"],char:\"🍩\",fitzpatrick_scale:false,category:\"food_and_drink\"},cookie:{keywords:[\"food\",\"snack\",\"oreo\",\"chocolate\",\"sweet\",\"dessert\"],char:\"🍪\",fitzpatrick_scale:false,category:\"food_and_drink\"},milk_glass:{keywords:[\"beverage\",\"drink\",\"cow\"],char:\"🥛\",fitzpatrick_scale:false,category:\"food_and_drink\"},beer:{keywords:[\"relax\",\"beverage\",\"drink\",\"drunk\",\"party\",\"pub\",\"summer\",\"alcohol\",\"booze\"],char:\"🍺\",fitzpatrick_scale:false,category:\"food_and_drink\"},beers:{keywords:[\"relax\",\"beverage\",\"drink\",\"drunk\",\"party\",\"pub\",\"summer\",\"alcohol\",\"booze\"],char:\"🍻\",fitzpatrick_scale:false,category:\"food_and_drink\"},clinking_glasses:{keywords:[\"beverage\",\"drink\",\"party\",\"alcohol\",\"celebrate\",\"cheers\",\"wine\",\"champagne\",\"toast\"],char:\"🥂\",fitzpatrick_scale:false,category:\"food_and_drink\"},wine_glass:{keywords:[\"drink\",\"beverage\",\"drunk\",\"alcohol\",\"booze\"],char:\"🍷\",fitzpatrick_scale:false,category:\"food_and_drink\"},tumbler_glass:{keywords:[\"drink\",\"beverage\",\"drunk\",\"alcohol\",\"liquor\",\"booze\",\"bourbon\",\"scotch\",\"whisky\",\"glass\",\"shot\"],char:\"🥃\",fitzpatrick_scale:false,category:\"food_and_drink\"},cocktail:{keywords:[\"drink\",\"drunk\",\"alcohol\",\"beverage\",\"booze\",\"mojito\"],char:\"🍸\",fitzpatrick_scale:false,category:\"food_and_drink\"},tropical_drink:{keywords:[\"beverage\",\"cocktail\",\"summer\",\"beach\",\"alcohol\",\"booze\",\"mojito\"],char:\"🍹\",fitzpatrick_scale:false,category:\"food_and_drink\"},champagne:{keywords:[\"drink\",\"wine\",\"bottle\",\"celebration\"],char:\"🍾\",fitzpatrick_scale:false,category:\"food_and_drink\"},sake:{keywords:[\"wine\",\"drink\",\"drunk\",\"beverage\",\"japanese\",\"alcohol\",\"booze\"],char:\"🍶\",fitzpatrick_scale:false,category:\"food_and_drink\"},tea:{keywords:[\"drink\",\"bowl\",\"breakfast\",\"green\",\"british\"],char:\"🍵\",fitzpatrick_scale:false,category:\"food_and_drink\"},cup_with_straw:{keywords:[\"drink\",\"soda\"],char:\"🥤\",fitzpatrick_scale:false,category:\"food_and_drink\"},coffee:{keywords:[\"beverage\",\"caffeine\",\"latte\",\"espresso\"],char:\"☕\",fitzpatrick_scale:false,category:\"food_and_drink\"},baby_bottle:{keywords:[\"food\",\"container\",\"milk\"],char:\"🍼\",fitzpatrick_scale:false,category:\"food_and_drink\"},salt:{keywords:[\"condiment\",\"shaker\"],char:\"🧂\",fitzpatrick_scale:false,category:\"food_and_drink\"},spoon:{keywords:[\"cutlery\",\"kitchen\",\"tableware\"],char:\"🥄\",fitzpatrick_scale:false,category:\"food_and_drink\"},fork_and_knife:{keywords:[\"cutlery\",\"kitchen\"],char:\"🍴\",fitzpatrick_scale:false,category:\"food_and_drink\"},plate_with_cutlery:{keywords:[\"food\",\"eat\",\"meal\",\"lunch\",\"dinner\",\"restaurant\"],char:\"🍽\",fitzpatrick_scale:false,category:\"food_and_drink\"},bowl_with_spoon:{keywords:[\"food\",\"breakfast\",\"cereal\",\"oatmeal\",\"porridge\"],char:\"🥣\",fitzpatrick_scale:false,category:\"food_and_drink\"},takeout_box:{keywords:[\"food\",\"leftovers\"],char:\"🥡\",fitzpatrick_scale:false,category:\"food_and_drink\"},chopsticks:{keywords:[\"food\"],char:\"🥢\",fitzpatrick_scale:false,category:\"food_and_drink\"},soccer:{keywords:[\"sports\",\"football\"],char:\"⚽\",fitzpatrick_scale:false,category:\"activity\"},basketball:{keywords:[\"sports\",\"balls\",\"NBA\"],char:\"🏀\",fitzpatrick_scale:false,category:\"activity\"},football:{keywords:[\"sports\",\"balls\",\"NFL\"],char:\"🏈\",fitzpatrick_scale:false,category:\"activity\"},baseball:{keywords:[\"sports\",\"balls\"],char:\"⚾\",fitzpatrick_scale:false,category:\"activity\"},softball:{keywords:[\"sports\",\"balls\"],char:\"🥎\",fitzpatrick_scale:false,category:\"activity\"},tennis:{keywords:[\"sports\",\"balls\",\"green\"],char:\"🎾\",fitzpatrick_scale:false,category:\"activity\"},volleyball:{keywords:[\"sports\",\"balls\"],char:\"🏐\",fitzpatrick_scale:false,category:\"activity\"},rugby_football:{keywords:[\"sports\",\"team\"],char:\"🏉\",fitzpatrick_scale:false,category:\"activity\"},flying_disc:{keywords:[\"sports\",\"frisbee\",\"ultimate\"],char:\"🥏\",fitzpatrick_scale:false,category:\"activity\"},\"8ball\":{keywords:[\"pool\",\"hobby\",\"game\",\"luck\",\"magic\"],char:\"🎱\",fitzpatrick_scale:false,category:\"activity\"},golf:{keywords:[\"sports\",\"business\",\"flag\",\"hole\",\"summer\"],char:\"⛳\",fitzpatrick_scale:false,category:\"activity\"},golfing_woman:{keywords:[\"sports\",\"business\",\"woman\",\"female\"],char:\"🏌️‍♀️\",fitzpatrick_scale:false,category:\"activity\"},golfing_man:{keywords:[\"sports\",\"business\"],char:\"🏌\",fitzpatrick_scale:true,category:\"activity\"},ping_pong:{keywords:[\"sports\",\"pingpong\"],char:\"🏓\",fitzpatrick_scale:false,category:\"activity\"},badminton:{keywords:[\"sports\"],char:\"🏸\",fitzpatrick_scale:false,category:\"activity\"},goal_net:{keywords:[\"sports\"],char:\"🥅\",fitzpatrick_scale:false,category:\"activity\"},ice_hockey:{keywords:[\"sports\"],char:\"🏒\",fitzpatrick_scale:false,category:\"activity\"},field_hockey:{keywords:[\"sports\"],char:\"🏑\",fitzpatrick_scale:false,category:\"activity\"},lacrosse:{keywords:[\"sports\",\"ball\",\"stick\"],char:\"🥍\",fitzpatrick_scale:false,category:\"activity\"},cricket:{keywords:[\"sports\"],char:\"🏏\",fitzpatrick_scale:false,category:\"activity\"},ski:{keywords:[\"sports\",\"winter\",\"cold\",\"snow\"],char:\"🎿\",fitzpatrick_scale:false,category:\"activity\"},skier:{keywords:[\"sports\",\"winter\",\"snow\"],char:\"⛷\",fitzpatrick_scale:false,category:\"activity\"},snowboarder:{keywords:[\"sports\",\"winter\"],char:\"🏂\",fitzpatrick_scale:true,category:\"activity\"},person_fencing:{keywords:[\"sports\",\"fencing\",\"sword\"],char:\"🤺\",fitzpatrick_scale:false,category:\"activity\"},women_wrestling:{keywords:[\"sports\",\"wrestlers\"],char:\"🤼‍♀️\",fitzpatrick_scale:false,category:\"activity\"},men_wrestling:{keywords:[\"sports\",\"wrestlers\"],char:\"🤼‍♂️\",fitzpatrick_scale:false,category:\"activity\"},woman_cartwheeling:{keywords:[\"gymnastics\"],char:\"🤸‍♀️\",fitzpatrick_scale:true,category:\"activity\"},man_cartwheeling:{keywords:[\"gymnastics\"],char:\"🤸‍♂️\",fitzpatrick_scale:true,category:\"activity\"},woman_playing_handball:{keywords:[\"sports\"],char:\"🤾‍♀️\",fitzpatrick_scale:true,category:\"activity\"},man_playing_handball:{keywords:[\"sports\"],char:\"🤾‍♂️\",fitzpatrick_scale:true,category:\"activity\"},ice_skate:{keywords:[\"sports\"],char:\"⛸\",fitzpatrick_scale:false,category:\"activity\"},curling_stone:{keywords:[\"sports\"],char:\"🥌\",fitzpatrick_scale:false,category:\"activity\"},skateboard:{keywords:[\"board\"],char:\"🛹\",fitzpatrick_scale:false,category:\"activity\"},sled:{keywords:[\"sleigh\",\"luge\",\"toboggan\"],char:\"🛷\",fitzpatrick_scale:false,category:\"activity\"},bow_and_arrow:{keywords:[\"sports\"],char:\"🏹\",fitzpatrick_scale:false,category:\"activity\"},fishing_pole_and_fish:{keywords:[\"food\",\"hobby\",\"summer\"],char:\"🎣\",fitzpatrick_scale:false,category:\"activity\"},boxing_glove:{keywords:[\"sports\",\"fighting\"],char:\"🥊\",fitzpatrick_scale:false,category:\"activity\"},martial_arts_uniform:{keywords:[\"judo\",\"karate\",\"taekwondo\"],char:\"🥋\",fitzpatrick_scale:false,category:\"activity\"},rowing_woman:{keywords:[\"sports\",\"hobby\",\"water\",\"ship\",\"woman\",\"female\"],char:\"🚣‍♀️\",fitzpatrick_scale:true,category:\"activity\"},rowing_man:{keywords:[\"sports\",\"hobby\",\"water\",\"ship\"],char:\"🚣\",fitzpatrick_scale:true,category:\"activity\"},climbing_woman:{keywords:[\"sports\",\"hobby\",\"woman\",\"female\",\"rock\"],char:\"🧗‍♀️\",fitzpatrick_scale:true,category:\"activity\"},climbing_man:{keywords:[\"sports\",\"hobby\",\"man\",\"male\",\"rock\"],char:\"🧗‍♂️\",fitzpatrick_scale:true,category:\"activity\"},swimming_woman:{keywords:[\"sports\",\"exercise\",\"human\",\"athlete\",\"water\",\"summer\",\"woman\",\"female\"],char:\"🏊‍♀️\",fitzpatrick_scale:true,category:\"activity\"},swimming_man:{keywords:[\"sports\",\"exercise\",\"human\",\"athlete\",\"water\",\"summer\"],char:\"🏊\",fitzpatrick_scale:true,category:\"activity\"},woman_playing_water_polo:{keywords:[\"sports\",\"pool\"],char:\"🤽‍♀️\",fitzpatrick_scale:true,category:\"activity\"},man_playing_water_polo:{keywords:[\"sports\",\"pool\"],char:\"🤽‍♂️\",fitzpatrick_scale:true,category:\"activity\"},woman_in_lotus_position:{keywords:[\"woman\",\"female\",\"meditation\",\"yoga\",\"serenity\",\"zen\",\"mindfulness\"],char:\"🧘‍♀️\",fitzpatrick_scale:true,category:\"activity\"},man_in_lotus_position:{keywords:[\"man\",\"male\",\"meditation\",\"yoga\",\"serenity\",\"zen\",\"mindfulness\"],char:\"🧘‍♂️\",fitzpatrick_scale:true,category:\"activity\"},surfing_woman:{keywords:[\"sports\",\"ocean\",\"sea\",\"summer\",\"beach\",\"woman\",\"female\"],char:\"🏄‍♀️\",fitzpatrick_scale:true,category:\"activity\"},surfing_man:{keywords:[\"sports\",\"ocean\",\"sea\",\"summer\",\"beach\"],char:\"🏄\",fitzpatrick_scale:true,category:\"activity\"},bath:{keywords:[\"clean\",\"shower\",\"bathroom\"],char:\"🛀\",fitzpatrick_scale:true,category:\"activity\"},basketball_woman:{keywords:[\"sports\",\"human\",\"woman\",\"female\"],char:\"⛹️‍♀️\",fitzpatrick_scale:true,category:\"activity\"},basketball_man:{keywords:[\"sports\",\"human\"],char:\"⛹\",fitzpatrick_scale:true,category:\"activity\"},weight_lifting_woman:{keywords:[\"sports\",\"training\",\"exercise\",\"woman\",\"female\"],char:\"🏋️‍♀️\",fitzpatrick_scale:true,category:\"activity\"},weight_lifting_man:{keywords:[\"sports\",\"training\",\"exercise\"],char:\"🏋\",fitzpatrick_scale:true,category:\"activity\"},biking_woman:{keywords:[\"sports\",\"bike\",\"exercise\",\"hipster\",\"woman\",\"female\"],char:\"🚴‍♀️\",fitzpatrick_scale:true,category:\"activity\"},biking_man:{keywords:[\"sports\",\"bike\",\"exercise\",\"hipster\"],char:\"🚴\",fitzpatrick_scale:true,category:\"activity\"},mountain_biking_woman:{keywords:[\"transportation\",\"sports\",\"human\",\"race\",\"bike\",\"woman\",\"female\"],char:\"🚵‍♀️\",fitzpatrick_scale:true,category:\"activity\"},mountain_biking_man:{keywords:[\"transportation\",\"sports\",\"human\",\"race\",\"bike\"],char:\"🚵\",fitzpatrick_scale:true,category:\"activity\"},horse_racing:{keywords:[\"animal\",\"betting\",\"competition\",\"gambling\",\"luck\"],char:\"🏇\",fitzpatrick_scale:true,category:\"activity\"},business_suit_levitating:{keywords:[\"suit\",\"business\",\"levitate\",\"hover\",\"jump\"],char:\"🕴\",fitzpatrick_scale:true,category:\"activity\"},trophy:{keywords:[\"win\",\"award\",\"contest\",\"place\",\"ftw\",\"ceremony\"],char:\"🏆\",fitzpatrick_scale:false,category:\"activity\"},running_shirt_with_sash:{keywords:[\"play\",\"pageant\"],char:\"🎽\",fitzpatrick_scale:false,category:\"activity\"},medal_sports:{keywords:[\"award\",\"winning\"],char:\"🏅\",fitzpatrick_scale:false,category:\"activity\"},medal_military:{keywords:[\"award\",\"winning\",\"army\"],char:\"🎖\",fitzpatrick_scale:false,category:\"activity\"},\"1st_place_medal\":{keywords:[\"award\",\"winning\",\"first\"],char:\"🥇\",fitzpatrick_scale:false,category:\"activity\"},\"2nd_place_medal\":{keywords:[\"award\",\"second\"],char:\"🥈\",fitzpatrick_scale:false,category:\"activity\"},\"3rd_place_medal\":{keywords:[\"award\",\"third\"],char:\"🥉\",fitzpatrick_scale:false,category:\"activity\"},reminder_ribbon:{keywords:[\"sports\",\"cause\",\"support\",\"awareness\"],char:\"🎗\",fitzpatrick_scale:false,category:\"activity\"},rosette:{keywords:[\"flower\",\"decoration\",\"military\"],char:\"🏵\",fitzpatrick_scale:false,category:\"activity\"},ticket:{keywords:[\"event\",\"concert\",\"pass\"],char:\"🎫\",fitzpatrick_scale:false,category:\"activity\"},tickets:{keywords:[\"sports\",\"concert\",\"entrance\"],char:\"🎟\",fitzpatrick_scale:false,category:\"activity\"},performing_arts:{keywords:[\"acting\",\"theater\",\"drama\"],char:\"🎭\",fitzpatrick_scale:false,category:\"activity\"},art:{keywords:[\"design\",\"paint\",\"draw\",\"colors\"],char:\"🎨\",fitzpatrick_scale:false,category:\"activity\"},circus_tent:{keywords:[\"festival\",\"carnival\",\"party\"],char:\"🎪\",fitzpatrick_scale:false,category:\"activity\"},woman_juggling:{keywords:[\"juggle\",\"balance\",\"skill\",\"multitask\"],char:\"🤹‍♀️\",fitzpatrick_scale:true,category:\"activity\"},man_juggling:{keywords:[\"juggle\",\"balance\",\"skill\",\"multitask\"],char:\"🤹‍♂️\",fitzpatrick_scale:true,category:\"activity\"},microphone:{keywords:[\"sound\",\"music\",\"PA\",\"sing\",\"talkshow\"],char:\"🎤\",fitzpatrick_scale:false,category:\"activity\"},headphones:{keywords:[\"music\",\"score\",\"gadgets\"],char:\"🎧\",fitzpatrick_scale:false,category:\"activity\"},musical_score:{keywords:[\"treble\",\"clef\",\"compose\"],char:\"🎼\",fitzpatrick_scale:false,category:\"activity\"},musical_keyboard:{keywords:[\"piano\",\"instrument\",\"compose\"],char:\"🎹\",fitzpatrick_scale:false,category:\"activity\"},drum:{keywords:[\"music\",\"instrument\",\"drumsticks\",\"snare\"],char:\"🥁\",fitzpatrick_scale:false,category:\"activity\"},saxophone:{keywords:[\"music\",\"instrument\",\"jazz\",\"blues\"],char:\"🎷\",fitzpatrick_scale:false,category:\"activity\"},trumpet:{keywords:[\"music\",\"brass\"],char:\"🎺\",fitzpatrick_scale:false,category:\"activity\"},guitar:{keywords:[\"music\",\"instrument\"],char:\"🎸\",fitzpatrick_scale:false,category:\"activity\"},violin:{keywords:[\"music\",\"instrument\",\"orchestra\",\"symphony\"],char:\"🎻\",fitzpatrick_scale:false,category:\"activity\"},clapper:{keywords:[\"movie\",\"film\",\"record\"],char:\"🎬\",fitzpatrick_scale:false,category:\"activity\"},video_game:{keywords:[\"play\",\"console\",\"PS4\",\"controller\"],char:\"🎮\",fitzpatrick_scale:false,category:\"activity\"},space_invader:{keywords:[\"game\",\"arcade\",\"play\"],char:\"👾\",fitzpatrick_scale:false,category:\"activity\"},dart:{keywords:[\"game\",\"play\",\"bar\",\"target\",\"bullseye\"],char:\"🎯\",fitzpatrick_scale:false,category:\"activity\"},game_die:{keywords:[\"dice\",\"random\",\"tabletop\",\"play\",\"luck\"],char:\"🎲\",fitzpatrick_scale:false,category:\"activity\"},chess_pawn:{keywords:[\"expendable\"],char:\"♟\",fitzpatrick_scale:false,category:\"activity\"},slot_machine:{keywords:[\"bet\",\"gamble\",\"vegas\",\"fruit machine\",\"luck\",\"casino\"],char:\"🎰\",fitzpatrick_scale:false,category:\"activity\"},jigsaw:{keywords:[\"interlocking\",\"puzzle\",\"piece\"],char:\"🧩\",fitzpatrick_scale:false,category:\"activity\"},bowling:{keywords:[\"sports\",\"fun\",\"play\"],char:\"🎳\",fitzpatrick_scale:false,category:\"activity\"},red_car:{keywords:[\"red\",\"transportation\",\"vehicle\"],char:\"🚗\",fitzpatrick_scale:false,category:\"travel_and_places\"},taxi:{keywords:[\"uber\",\"vehicle\",\"cars\",\"transportation\"],char:\"🚕\",fitzpatrick_scale:false,category:\"travel_and_places\"},blue_car:{keywords:[\"transportation\",\"vehicle\"],char:\"🚙\",fitzpatrick_scale:false,category:\"travel_and_places\"},bus:{keywords:[\"car\",\"vehicle\",\"transportation\"],char:\"🚌\",fitzpatrick_scale:false,category:\"travel_and_places\"},trolleybus:{keywords:[\"bart\",\"transportation\",\"vehicle\"],char:\"🚎\",fitzpatrick_scale:false,category:\"travel_and_places\"},racing_car:{keywords:[\"sports\",\"race\",\"fast\",\"formula\",\"f1\"],char:\"🏎\",fitzpatrick_scale:false,category:\"travel_and_places\"},police_car:{keywords:[\"vehicle\",\"cars\",\"transportation\",\"law\",\"legal\",\"enforcement\"],char:\"🚓\",fitzpatrick_scale:false,category:\"travel_and_places\"},ambulance:{keywords:[\"health\",\"911\",\"hospital\"],char:\"🚑\",fitzpatrick_scale:false,category:\"travel_and_places\"},fire_engine:{keywords:[\"transportation\",\"cars\",\"vehicle\"],char:\"🚒\",fitzpatrick_scale:false,category:\"travel_and_places\"},minibus:{keywords:[\"vehicle\",\"car\",\"transportation\"],char:\"🚐\",fitzpatrick_scale:false,category:\"travel_and_places\"},truck:{keywords:[\"cars\",\"transportation\"],char:\"🚚\",fitzpatrick_scale:false,category:\"travel_and_places\"},articulated_lorry:{keywords:[\"vehicle\",\"cars\",\"transportation\",\"express\"],char:\"🚛\",fitzpatrick_scale:false,category:\"travel_and_places\"},tractor:{keywords:[\"vehicle\",\"car\",\"farming\",\"agriculture\"],char:\"🚜\",fitzpatrick_scale:false,category:\"travel_and_places\"},kick_scooter:{keywords:[\"vehicle\",\"kick\",\"razor\"],char:\"🛴\",fitzpatrick_scale:false,category:\"travel_and_places\"},motorcycle:{keywords:[\"race\",\"sports\",\"fast\"],char:\"🏍\",fitzpatrick_scale:false,category:\"travel_and_places\"},bike:{keywords:[\"sports\",\"bicycle\",\"exercise\",\"hipster\"],char:\"🚲\",fitzpatrick_scale:false,category:\"travel_and_places\"},motor_scooter:{keywords:[\"vehicle\",\"vespa\",\"sasha\"],char:\"🛵\",fitzpatrick_scale:false,category:\"travel_and_places\"},rotating_light:{keywords:[\"police\",\"ambulance\",\"911\",\"emergency\",\"alert\",\"error\",\"pinged\",\"law\",\"legal\"],char:\"🚨\",fitzpatrick_scale:false,category:\"travel_and_places\"},oncoming_police_car:{keywords:[\"vehicle\",\"law\",\"legal\",\"enforcement\",\"911\"],char:\"🚔\",fitzpatrick_scale:false,category:\"travel_and_places\"},oncoming_bus:{keywords:[\"vehicle\",\"transportation\"],char:\"🚍\",fitzpatrick_scale:false,category:\"travel_and_places\"},oncoming_automobile:{keywords:[\"car\",\"vehicle\",\"transportation\"],char:\"🚘\",fitzpatrick_scale:false,category:\"travel_and_places\"},oncoming_taxi:{keywords:[\"vehicle\",\"cars\",\"uber\"],char:\"🚖\",fitzpatrick_scale:false,category:\"travel_and_places\"},aerial_tramway:{keywords:[\"transportation\",\"vehicle\",\"ski\"],char:\"🚡\",fitzpatrick_scale:false,category:\"travel_and_places\"},mountain_cableway:{keywords:[\"transportation\",\"vehicle\",\"ski\"],char:\"🚠\",fitzpatrick_scale:false,category:\"travel_and_places\"},suspension_railway:{keywords:[\"vehicle\",\"transportation\"],char:\"🚟\",fitzpatrick_scale:false,category:\"travel_and_places\"},railway_car:{keywords:[\"transportation\",\"vehicle\"],char:\"🚃\",fitzpatrick_scale:false,category:\"travel_and_places\"},train:{keywords:[\"transportation\",\"vehicle\",\"carriage\",\"public\",\"travel\"],char:\"🚋\",fitzpatrick_scale:false,category:\"travel_and_places\"},monorail:{keywords:[\"transportation\",\"vehicle\"],char:\"🚝\",fitzpatrick_scale:false,category:\"travel_and_places\"},bullettrain_side:{keywords:[\"transportation\",\"vehicle\"],char:\"🚄\",fitzpatrick_scale:false,category:\"travel_and_places\"},bullettrain_front:{keywords:[\"transportation\",\"vehicle\",\"speed\",\"fast\",\"public\",\"travel\"],char:\"🚅\",fitzpatrick_scale:false,category:\"travel_and_places\"},light_rail:{keywords:[\"transportation\",\"vehicle\"],char:\"🚈\",fitzpatrick_scale:false,category:\"travel_and_places\"},mountain_railway:{keywords:[\"transportation\",\"vehicle\"],char:\"🚞\",fitzpatrick_scale:false,category:\"travel_and_places\"},steam_locomotive:{keywords:[\"transportation\",\"vehicle\",\"train\"],char:\"🚂\",fitzpatrick_scale:false,category:\"travel_and_places\"},train2:{keywords:[\"transportation\",\"vehicle\"],char:\"🚆\",fitzpatrick_scale:false,category:\"travel_and_places\"},metro:{keywords:[\"transportation\",\"blue-square\",\"mrt\",\"underground\",\"tube\"],char:\"🚇\",fitzpatrick_scale:false,category:\"travel_and_places\"},tram:{keywords:[\"transportation\",\"vehicle\"],char:\"🚊\",fitzpatrick_scale:false,category:\"travel_and_places\"},station:{keywords:[\"transportation\",\"vehicle\",\"public\"],char:\"🚉\",fitzpatrick_scale:false,category:\"travel_and_places\"},flying_saucer:{keywords:[\"transportation\",\"vehicle\",\"ufo\"],char:\"🛸\",fitzpatrick_scale:false,category:\"travel_and_places\"},helicopter:{keywords:[\"transportation\",\"vehicle\",\"fly\"],char:\"🚁\",fitzpatrick_scale:false,category:\"travel_and_places\"},small_airplane:{keywords:[\"flight\",\"transportation\",\"fly\",\"vehicle\"],char:\"🛩\",fitzpatrick_scale:false,category:\"travel_and_places\"},airplane:{keywords:[\"vehicle\",\"transportation\",\"flight\",\"fly\"],char:\"✈️\",fitzpatrick_scale:false,category:\"travel_and_places\"},flight_departure:{keywords:[\"airport\",\"flight\",\"landing\"],char:\"🛫\",fitzpatrick_scale:false,category:\"travel_and_places\"},flight_arrival:{keywords:[\"airport\",\"flight\",\"boarding\"],char:\"🛬\",fitzpatrick_scale:false,category:\"travel_and_places\"},sailboat:{keywords:[\"ship\",\"summer\",\"transportation\",\"water\",\"sailing\"],char:\"⛵\",fitzpatrick_scale:false,category:\"travel_and_places\"},motor_boat:{keywords:[\"ship\"],char:\"🛥\",fitzpatrick_scale:false,category:\"travel_and_places\"},speedboat:{keywords:[\"ship\",\"transportation\",\"vehicle\",\"summer\"],char:\"🚤\",fitzpatrick_scale:false,category:\"travel_and_places\"},ferry:{keywords:[\"boat\",\"ship\",\"yacht\"],char:\"⛴\",fitzpatrick_scale:false,category:\"travel_and_places\"},passenger_ship:{keywords:[\"yacht\",\"cruise\",\"ferry\"],char:\"🛳\",fitzpatrick_scale:false,category:\"travel_and_places\"},rocket:{keywords:[\"launch\",\"ship\",\"staffmode\",\"NASA\",\"outer space\",\"outer_space\",\"fly\"],char:\"🚀\",fitzpatrick_scale:false,category:\"travel_and_places\"},artificial_satellite:{keywords:[\"communication\",\"gps\",\"orbit\",\"spaceflight\",\"NASA\",\"ISS\"],char:\"🛰\",fitzpatrick_scale:false,category:\"travel_and_places\"},seat:{keywords:[\"sit\",\"airplane\",\"transport\",\"bus\",\"flight\",\"fly\"],char:\"💺\",fitzpatrick_scale:false,category:\"travel_and_places\"},canoe:{keywords:[\"boat\",\"paddle\",\"water\",\"ship\"],char:\"🛶\",fitzpatrick_scale:false,category:\"travel_and_places\"},anchor:{keywords:[\"ship\",\"ferry\",\"sea\",\"boat\"],char:\"⚓\",fitzpatrick_scale:false,category:\"travel_and_places\"},construction:{keywords:[\"wip\",\"progress\",\"caution\",\"warning\"],char:\"🚧\",fitzpatrick_scale:false,category:\"travel_and_places\"},fuelpump:{keywords:[\"gas station\",\"petroleum\"],char:\"⛽\",fitzpatrick_scale:false,category:\"travel_and_places\"},busstop:{keywords:[\"transportation\",\"wait\"],char:\"🚏\",fitzpatrick_scale:false,category:\"travel_and_places\"},vertical_traffic_light:{keywords:[\"transportation\",\"driving\"],char:\"🚦\",fitzpatrick_scale:false,category:\"travel_and_places\"},traffic_light:{keywords:[\"transportation\",\"signal\"],char:\"🚥\",fitzpatrick_scale:false,category:\"travel_and_places\"},checkered_flag:{keywords:[\"contest\",\"finishline\",\"race\",\"gokart\"],char:\"🏁\",fitzpatrick_scale:false,category:\"travel_and_places\"},ship:{keywords:[\"transportation\",\"titanic\",\"deploy\"],char:\"🚢\",fitzpatrick_scale:false,category:\"travel_and_places\"},ferris_wheel:{keywords:[\"photo\",\"carnival\",\"londoneye\"],char:\"🎡\",fitzpatrick_scale:false,category:\"travel_and_places\"},roller_coaster:{keywords:[\"carnival\",\"playground\",\"photo\",\"fun\"],char:\"🎢\",fitzpatrick_scale:false,category:\"travel_and_places\"},carousel_horse:{keywords:[\"photo\",\"carnival\"],char:\"🎠\",fitzpatrick_scale:false,category:\"travel_and_places\"},building_construction:{keywords:[\"wip\",\"working\",\"progress\"],char:\"🏗\",fitzpatrick_scale:false,category:\"travel_and_places\"},foggy:{keywords:[\"photo\",\"mountain\"],char:\"🌁\",fitzpatrick_scale:false,category:\"travel_and_places\"},tokyo_tower:{keywords:[\"photo\",\"japanese\"],char:\"🗼\",fitzpatrick_scale:false,category:\"travel_and_places\"},factory:{keywords:[\"building\",\"industry\",\"pollution\",\"smoke\"],char:\"🏭\",fitzpatrick_scale:false,category:\"travel_and_places\"},fountain:{keywords:[\"photo\",\"summer\",\"water\",\"fresh\"],char:\"⛲\",fitzpatrick_scale:false,category:\"travel_and_places\"},rice_scene:{keywords:[\"photo\",\"japan\",\"asia\",\"tsukimi\"],char:\"🎑\",fitzpatrick_scale:false,category:\"travel_and_places\"},mountain:{keywords:[\"photo\",\"nature\",\"environment\"],char:\"⛰\",fitzpatrick_scale:false,category:\"travel_and_places\"},mountain_snow:{keywords:[\"photo\",\"nature\",\"environment\",\"winter\",\"cold\"],char:\"🏔\",fitzpatrick_scale:false,category:\"travel_and_places\"},mount_fuji:{keywords:[\"photo\",\"mountain\",\"nature\",\"japanese\"],char:\"🗻\",fitzpatrick_scale:false,category:\"travel_and_places\"},volcano:{keywords:[\"photo\",\"nature\",\"disaster\"],char:\"🌋\",fitzpatrick_scale:false,category:\"travel_and_places\"},japan:{keywords:[\"nation\",\"country\",\"japanese\",\"asia\"],char:\"🗾\",fitzpatrick_scale:false,category:\"travel_and_places\"},camping:{keywords:[\"photo\",\"outdoors\",\"tent\"],char:\"🏕\",fitzpatrick_scale:false,category:\"travel_and_places\"},tent:{keywords:[\"photo\",\"camping\",\"outdoors\"],char:\"⛺\",fitzpatrick_scale:false,category:\"travel_and_places\"},national_park:{keywords:[\"photo\",\"environment\",\"nature\"],char:\"🏞\",fitzpatrick_scale:false,category:\"travel_and_places\"},motorway:{keywords:[\"road\",\"cupertino\",\"interstate\",\"highway\"],char:\"🛣\",fitzpatrick_scale:false,category:\"travel_and_places\"},railway_track:{keywords:[\"train\",\"transportation\"],char:\"🛤\",fitzpatrick_scale:false,category:\"travel_and_places\"},sunrise:{keywords:[\"morning\",\"view\",\"vacation\",\"photo\"],char:\"🌅\",fitzpatrick_scale:false,category:\"travel_and_places\"},sunrise_over_mountains:{keywords:[\"view\",\"vacation\",\"photo\"],char:\"🌄\",fitzpatrick_scale:false,category:\"travel_and_places\"},desert:{keywords:[\"photo\",\"warm\",\"saharah\"],char:\"🏜\",fitzpatrick_scale:false,category:\"travel_and_places\"},beach_umbrella:{keywords:[\"weather\",\"summer\",\"sunny\",\"sand\",\"mojito\"],char:\"🏖\",fitzpatrick_scale:false,category:\"travel_and_places\"},desert_island:{keywords:[\"photo\",\"tropical\",\"mojito\"],char:\"🏝\",fitzpatrick_scale:false,category:\"travel_and_places\"},city_sunrise:{keywords:[\"photo\",\"good morning\",\"dawn\"],char:\"🌇\",fitzpatrick_scale:false,category:\"travel_and_places\"},city_sunset:{keywords:[\"photo\",\"evening\",\"sky\",\"buildings\"],char:\"🌆\",fitzpatrick_scale:false,category:\"travel_and_places\"},cityscape:{keywords:[\"photo\",\"night life\",\"urban\"],char:\"🏙\",fitzpatrick_scale:false,category:\"travel_and_places\"},night_with_stars:{keywords:[\"evening\",\"city\",\"downtown\"],char:\"🌃\",fitzpatrick_scale:false,category:\"travel_and_places\"},bridge_at_night:{keywords:[\"photo\",\"sanfrancisco\"],char:\"🌉\",fitzpatrick_scale:false,category:\"travel_and_places\"},milky_way:{keywords:[\"photo\",\"space\",\"stars\"],char:\"🌌\",fitzpatrick_scale:false,category:\"travel_and_places\"},stars:{keywords:[\"night\",\"photo\"],char:\"🌠\",fitzpatrick_scale:false,category:\"travel_and_places\"},sparkler:{keywords:[\"stars\",\"night\",\"shine\"],char:\"🎇\",fitzpatrick_scale:false,category:\"travel_and_places\"},fireworks:{keywords:[\"photo\",\"festival\",\"carnival\",\"congratulations\"],char:\"🎆\",fitzpatrick_scale:false,category:\"travel_and_places\"},rainbow:{keywords:[\"nature\",\"happy\",\"unicorn_face\",\"photo\",\"sky\",\"spring\"],char:\"🌈\",fitzpatrick_scale:false,category:\"travel_and_places\"},houses:{keywords:[\"buildings\",\"photo\"],char:\"🏘\",fitzpatrick_scale:false,category:\"travel_and_places\"},european_castle:{keywords:[\"building\",\"royalty\",\"history\"],char:\"🏰\",fitzpatrick_scale:false,category:\"travel_and_places\"},japanese_castle:{keywords:[\"photo\",\"building\"],char:\"🏯\",fitzpatrick_scale:false,category:\"travel_and_places\"},stadium:{keywords:[\"photo\",\"place\",\"sports\",\"concert\",\"venue\"],char:\"🏟\",fitzpatrick_scale:false,category:\"travel_and_places\"},statue_of_liberty:{keywords:[\"american\",\"newyork\"],char:\"🗽\",fitzpatrick_scale:false,category:\"travel_and_places\"},house:{keywords:[\"building\",\"home\"],char:\"🏠\",fitzpatrick_scale:false,category:\"travel_and_places\"},house_with_garden:{keywords:[\"home\",\"plant\",\"nature\"],char:\"🏡\",fitzpatrick_scale:false,category:\"travel_and_places\"},derelict_house:{keywords:[\"abandon\",\"evict\",\"broken\",\"building\"],char:\"🏚\",fitzpatrick_scale:false,category:\"travel_and_places\"},office:{keywords:[\"building\",\"bureau\",\"work\"],char:\"🏢\",fitzpatrick_scale:false,category:\"travel_and_places\"},department_store:{keywords:[\"building\",\"shopping\",\"mall\"],char:\"🏬\",fitzpatrick_scale:false,category:\"travel_and_places\"},post_office:{keywords:[\"building\",\"envelope\",\"communication\"],char:\"🏣\",fitzpatrick_scale:false,category:\"travel_and_places\"},european_post_office:{keywords:[\"building\",\"email\"],char:\"🏤\",fitzpatrick_scale:false,category:\"travel_and_places\"},hospital:{keywords:[\"building\",\"health\",\"surgery\",\"doctor\"],char:\"🏥\",fitzpatrick_scale:false,category:\"travel_and_places\"},bank:{keywords:[\"building\",\"money\",\"sales\",\"cash\",\"business\",\"enterprise\"],char:\"🏦\",fitzpatrick_scale:false,category:\"travel_and_places\"},hotel:{keywords:[\"building\",\"accomodation\",\"checkin\"],char:\"🏨\",fitzpatrick_scale:false,category:\"travel_and_places\"},convenience_store:{keywords:[\"building\",\"shopping\",\"groceries\"],char:\"🏪\",fitzpatrick_scale:false,category:\"travel_and_places\"},school:{keywords:[\"building\",\"student\",\"education\",\"learn\",\"teach\"],char:\"🏫\",fitzpatrick_scale:false,category:\"travel_and_places\"},love_hotel:{keywords:[\"like\",\"affection\",\"dating\"],char:\"🏩\",fitzpatrick_scale:false,category:\"travel_and_places\"},wedding:{keywords:[\"love\",\"like\",\"affection\",\"couple\",\"marriage\",\"bride\",\"groom\"],char:\"💒\",fitzpatrick_scale:false,category:\"travel_and_places\"},classical_building:{keywords:[\"art\",\"culture\",\"history\"],char:\"🏛\",fitzpatrick_scale:false,category:\"travel_and_places\"},church:{keywords:[\"building\",\"religion\",\"christ\"],char:\"⛪\",fitzpatrick_scale:false,category:\"travel_and_places\"},mosque:{keywords:[\"islam\",\"worship\",\"minaret\"],char:\"🕌\",fitzpatrick_scale:false,category:\"travel_and_places\"},synagogue:{keywords:[\"judaism\",\"worship\",\"temple\",\"jewish\"],char:\"🕍\",fitzpatrick_scale:false,category:\"travel_and_places\"},kaaba:{keywords:[\"mecca\",\"mosque\",\"islam\"],char:\"🕋\",fitzpatrick_scale:false,category:\"travel_and_places\"},shinto_shrine:{keywords:[\"temple\",\"japan\",\"kyoto\"],char:\"⛩\",fitzpatrick_scale:false,category:\"travel_and_places\"},watch:{keywords:[\"time\",\"accessories\"],char:\"⌚\",fitzpatrick_scale:false,category:\"objects\"},iphone:{keywords:[\"technology\",\"apple\",\"gadgets\",\"dial\"],char:\"📱\",fitzpatrick_scale:false,category:\"objects\"},calling:{keywords:[\"iphone\",\"incoming\"],char:\"📲\",fitzpatrick_scale:false,category:\"objects\"},computer:{keywords:[\"technology\",\"laptop\",\"screen\",\"display\",\"monitor\"],char:\"💻\",fitzpatrick_scale:false,category:\"objects\"},keyboard:{keywords:[\"technology\",\"computer\",\"type\",\"input\",\"text\"],char:\"⌨\",fitzpatrick_scale:false,category:\"objects\"},desktop_computer:{keywords:[\"technology\",\"computing\",\"screen\"],char:\"🖥\",fitzpatrick_scale:false,category:\"objects\"},printer:{keywords:[\"paper\",\"ink\"],char:\"🖨\",fitzpatrick_scale:false,category:\"objects\"},computer_mouse:{keywords:[\"click\"],char:\"🖱\",fitzpatrick_scale:false,category:\"objects\"},trackball:{keywords:[\"technology\",\"trackpad\"],char:\"🖲\",fitzpatrick_scale:false,category:\"objects\"},joystick:{keywords:[\"game\",\"play\"],char:\"🕹\",fitzpatrick_scale:false,category:\"objects\"},clamp:{keywords:[\"tool\"],char:\"🗜\",fitzpatrick_scale:false,category:\"objects\"},minidisc:{keywords:[\"technology\",\"record\",\"data\",\"disk\",\"90s\"],char:\"💽\",fitzpatrick_scale:false,category:\"objects\"},floppy_disk:{keywords:[\"oldschool\",\"technology\",\"save\",\"90s\",\"80s\"],char:\"💾\",fitzpatrick_scale:false,category:\"objects\"},cd:{keywords:[\"technology\",\"dvd\",\"disk\",\"disc\",\"90s\"],char:\"💿\",fitzpatrick_scale:false,category:\"objects\"},dvd:{keywords:[\"cd\",\"disk\",\"disc\"],char:\"📀\",fitzpatrick_scale:false,category:\"objects\"},vhs:{keywords:[\"record\",\"video\",\"oldschool\",\"90s\",\"80s\"],char:\"📼\",fitzpatrick_scale:false,category:\"objects\"},camera:{keywords:[\"gadgets\",\"photography\"],char:\"📷\",fitzpatrick_scale:false,category:\"objects\"},camera_flash:{keywords:[\"photography\",\"gadgets\"],char:\"📸\",fitzpatrick_scale:false,category:\"objects\"},video_camera:{keywords:[\"film\",\"record\"],char:\"📹\",fitzpatrick_scale:false,category:\"objects\"},movie_camera:{keywords:[\"film\",\"record\"],char:\"🎥\",fitzpatrick_scale:false,category:\"objects\"},film_projector:{keywords:[\"video\",\"tape\",\"record\",\"movie\"],char:\"📽\",fitzpatrick_scale:false,category:\"objects\"},film_strip:{keywords:[\"movie\"],char:\"🎞\",fitzpatrick_scale:false,category:\"objects\"},telephone_receiver:{keywords:[\"technology\",\"communication\",\"dial\"],char:\"📞\",fitzpatrick_scale:false,category:\"objects\"},phone:{keywords:[\"technology\",\"communication\",\"dial\",\"telephone\"],char:\"☎️\",fitzpatrick_scale:false,category:\"objects\"},pager:{keywords:[\"bbcall\",\"oldschool\",\"90s\"],char:\"📟\",fitzpatrick_scale:false,category:\"objects\"},fax:{keywords:[\"communication\",\"technology\"],char:\"📠\",fitzpatrick_scale:false,category:\"objects\"},tv:{keywords:[\"technology\",\"program\",\"oldschool\",\"show\",\"television\"],char:\"📺\",fitzpatrick_scale:false,category:\"objects\"},radio:{keywords:[\"communication\",\"music\",\"podcast\",\"program\"],char:\"📻\",fitzpatrick_scale:false,category:\"objects\"},studio_microphone:{keywords:[\"sing\",\"recording\",\"artist\",\"talkshow\"],char:\"🎙\",fitzpatrick_scale:false,category:\"objects\"},level_slider:{keywords:[\"scale\"],char:\"🎚\",fitzpatrick_scale:false,category:\"objects\"},control_knobs:{keywords:[\"dial\"],char:\"🎛\",fitzpatrick_scale:false,category:\"objects\"},compass:{keywords:[\"magnetic\",\"navigation\",\"orienteering\"],char:\"🧭\",fitzpatrick_scale:false,category:\"objects\"},stopwatch:{keywords:[\"time\",\"deadline\"],char:\"⏱\",fitzpatrick_scale:false,category:\"objects\"},timer_clock:{keywords:[\"alarm\"],char:\"⏲\",fitzpatrick_scale:false,category:\"objects\"},alarm_clock:{keywords:[\"time\",\"wake\"],char:\"⏰\",fitzpatrick_scale:false,category:\"objects\"},mantelpiece_clock:{keywords:[\"time\"],char:\"🕰\",fitzpatrick_scale:false,category:\"objects\"},hourglass_flowing_sand:{keywords:[\"oldschool\",\"time\",\"countdown\"],char:\"⏳\",fitzpatrick_scale:false,category:\"objects\"},hourglass:{keywords:[\"time\",\"clock\",\"oldschool\",\"limit\",\"exam\",\"quiz\",\"test\"],char:\"⌛\",fitzpatrick_scale:false,category:\"objects\"},satellite:{keywords:[\"communication\",\"future\",\"radio\",\"space\"],char:\"📡\",fitzpatrick_scale:false,category:\"objects\"},battery:{keywords:[\"power\",\"energy\",\"sustain\"],char:\"🔋\",fitzpatrick_scale:false,category:\"objects\"},electric_plug:{keywords:[\"charger\",\"power\"],char:\"🔌\",fitzpatrick_scale:false,category:\"objects\"},bulb:{keywords:[\"light\",\"electricity\",\"idea\"],char:\"💡\",fitzpatrick_scale:false,category:\"objects\"},flashlight:{keywords:[\"dark\",\"camping\",\"sight\",\"night\"],char:\"🔦\",fitzpatrick_scale:false,category:\"objects\"},candle:{keywords:[\"fire\",\"wax\"],char:\"🕯\",fitzpatrick_scale:false,category:\"objects\"},fire_extinguisher:{keywords:[\"quench\"],char:\"🧯\",fitzpatrick_scale:false,category:\"objects\"},wastebasket:{keywords:[\"bin\",\"trash\",\"rubbish\",\"garbage\",\"toss\"],char:\"🗑\",fitzpatrick_scale:false,category:\"objects\"},oil_drum:{keywords:[\"barrell\"],char:\"🛢\",fitzpatrick_scale:false,category:\"objects\"},money_with_wings:{keywords:[\"dollar\",\"bills\",\"payment\",\"sale\"],char:\"💸\",fitzpatrick_scale:false,category:\"objects\"},dollar:{keywords:[\"money\",\"sales\",\"bill\",\"currency\"],char:\"💵\",fitzpatrick_scale:false,category:\"objects\"},yen:{keywords:[\"money\",\"sales\",\"japanese\",\"dollar\",\"currency\"],char:\"💴\",fitzpatrick_scale:false,category:\"objects\"},euro:{keywords:[\"money\",\"sales\",\"dollar\",\"currency\"],char:\"💶\",fitzpatrick_scale:false,category:\"objects\"},pound:{keywords:[\"british\",\"sterling\",\"money\",\"sales\",\"bills\",\"uk\",\"england\",\"currency\"],char:\"💷\",fitzpatrick_scale:false,category:\"objects\"},moneybag:{keywords:[\"dollar\",\"payment\",\"coins\",\"sale\"],char:\"💰\",fitzpatrick_scale:false,category:\"objects\"},credit_card:{keywords:[\"money\",\"sales\",\"dollar\",\"bill\",\"payment\",\"shopping\"],char:\"💳\",fitzpatrick_scale:false,category:\"objects\"},gem:{keywords:[\"blue\",\"ruby\",\"diamond\",\"jewelry\"],char:\"💎\",fitzpatrick_scale:false,category:\"objects\"},balance_scale:{keywords:[\"law\",\"fairness\",\"weight\"],char:\"⚖\",fitzpatrick_scale:false,category:\"objects\"},toolbox:{keywords:[\"tools\",\"diy\",\"fix\",\"maintainer\",\"mechanic\"],char:\"🧰\",fitzpatrick_scale:false,category:\"objects\"},wrench:{keywords:[\"tools\",\"diy\",\"ikea\",\"fix\",\"maintainer\"],char:\"🔧\",fitzpatrick_scale:false,category:\"objects\"},hammer:{keywords:[\"tools\",\"build\",\"create\"],char:\"🔨\",fitzpatrick_scale:false,category:\"objects\"},hammer_and_pick:{keywords:[\"tools\",\"build\",\"create\"],char:\"⚒\",fitzpatrick_scale:false,category:\"objects\"},hammer_and_wrench:{keywords:[\"tools\",\"build\",\"create\"],char:\"🛠\",fitzpatrick_scale:false,category:\"objects\"},pick:{keywords:[\"tools\",\"dig\"],char:\"⛏\",fitzpatrick_scale:false,category:\"objects\"},nut_and_bolt:{keywords:[\"handy\",\"tools\",\"fix\"],char:\"🔩\",fitzpatrick_scale:false,category:\"objects\"},gear:{keywords:[\"cog\"],char:\"⚙\",fitzpatrick_scale:false,category:\"objects\"},brick:{keywords:[\"bricks\"],char:\"🧱\",fitzpatrick_scale:false,category:\"objects\"},chains:{keywords:[\"lock\",\"arrest\"],char:\"⛓\",fitzpatrick_scale:false,category:\"objects\"},magnet:{keywords:[\"attraction\",\"magnetic\"],char:\"🧲\",fitzpatrick_scale:false,category:\"objects\"},gun:{keywords:[\"violence\",\"weapon\",\"pistol\",\"revolver\"],char:\"🔫\",fitzpatrick_scale:false,category:\"objects\"},bomb:{keywords:[\"boom\",\"explode\",\"explosion\",\"terrorism\"],char:\"💣\",fitzpatrick_scale:false,category:\"objects\"},firecracker:{keywords:[\"dynamite\",\"boom\",\"explode\",\"explosion\",\"explosive\"],char:\"🧨\",fitzpatrick_scale:false,category:\"objects\"},hocho:{keywords:[\"knife\",\"blade\",\"cutlery\",\"kitchen\",\"weapon\"],char:\"🔪\",fitzpatrick_scale:false,category:\"objects\"},dagger:{keywords:[\"weapon\"],char:\"🗡\",fitzpatrick_scale:false,category:\"objects\"},crossed_swords:{keywords:[\"weapon\"],char:\"⚔\",fitzpatrick_scale:false,category:\"objects\"},shield:{keywords:[\"protection\",\"security\"],char:\"🛡\",fitzpatrick_scale:false,category:\"objects\"},smoking:{keywords:[\"kills\",\"tobacco\",\"cigarette\",\"joint\",\"smoke\"],char:\"🚬\",fitzpatrick_scale:false,category:\"objects\"},skull_and_crossbones:{keywords:[\"poison\",\"danger\",\"deadly\",\"scary\",\"death\",\"pirate\",\"evil\"],char:\"☠\",fitzpatrick_scale:false,category:\"objects\"},coffin:{keywords:[\"vampire\",\"dead\",\"die\",\"death\",\"rip\",\"graveyard\",\"cemetery\",\"casket\",\"funeral\",\"box\"],char:\"⚰\",fitzpatrick_scale:false,category:\"objects\"},funeral_urn:{keywords:[\"dead\",\"die\",\"death\",\"rip\",\"ashes\"],char:\"⚱\",fitzpatrick_scale:false,category:\"objects\"},amphora:{keywords:[\"vase\",\"jar\"],char:\"🏺\",fitzpatrick_scale:false,category:\"objects\"},crystal_ball:{keywords:[\"disco\",\"party\",\"magic\",\"circus\",\"fortune_teller\"],char:\"🔮\",fitzpatrick_scale:false,category:\"objects\"},prayer_beads:{keywords:[\"dhikr\",\"religious\"],char:\"📿\",fitzpatrick_scale:false,category:\"objects\"},nazar_amulet:{keywords:[\"bead\",\"charm\"],char:\"🧿\",fitzpatrick_scale:false,category:\"objects\"},barber:{keywords:[\"hair\",\"salon\",\"style\"],char:\"💈\",fitzpatrick_scale:false,category:\"objects\"},alembic:{keywords:[\"distilling\",\"science\",\"experiment\",\"chemistry\"],char:\"⚗\",fitzpatrick_scale:false,category:\"objects\"},telescope:{keywords:[\"stars\",\"space\",\"zoom\",\"science\",\"astronomy\"],char:\"🔭\",fitzpatrick_scale:false,category:\"objects\"},microscope:{keywords:[\"laboratory\",\"experiment\",\"zoomin\",\"science\",\"study\"],char:\"🔬\",fitzpatrick_scale:false,category:\"objects\"},hole:{keywords:[\"embarrassing\"],char:\"🕳\",fitzpatrick_scale:false,category:\"objects\"},pill:{keywords:[\"health\",\"medicine\",\"doctor\",\"pharmacy\",\"drug\"],char:\"💊\",fitzpatrick_scale:false,category:\"objects\"},syringe:{keywords:[\"health\",\"hospital\",\"drugs\",\"blood\",\"medicine\",\"needle\",\"doctor\",\"nurse\"],char:\"💉\",fitzpatrick_scale:false,category:\"objects\"},dna:{keywords:[\"biologist\",\"genetics\",\"life\"],char:\"🧬\",fitzpatrick_scale:false,category:\"objects\"},microbe:{keywords:[\"amoeba\",\"bacteria\",\"germs\"],char:\"🦠\",fitzpatrick_scale:false,category:\"objects\"},petri_dish:{keywords:[\"bacteria\",\"biology\",\"culture\",\"lab\"],char:\"🧫\",fitzpatrick_scale:false,category:\"objects\"},test_tube:{keywords:[\"chemistry\",\"experiment\",\"lab\",\"science\"],char:\"🧪\",fitzpatrick_scale:false,category:\"objects\"},thermometer:{keywords:[\"weather\",\"temperature\",\"hot\",\"cold\"],char:\"🌡\",fitzpatrick_scale:false,category:\"objects\"},broom:{keywords:[\"cleaning\",\"sweeping\",\"witch\"],char:\"🧹\",fitzpatrick_scale:false,category:\"objects\"},basket:{keywords:[\"laundry\"],char:\"🧺\",fitzpatrick_scale:false,category:\"objects\"},toilet_paper:{keywords:[\"roll\"],char:\"🧻\",fitzpatrick_scale:false,category:\"objects\"},label:{keywords:[\"sale\",\"tag\"],char:\"🏷\",fitzpatrick_scale:false,category:\"objects\"},bookmark:{keywords:[\"favorite\",\"label\",\"save\"],char:\"🔖\",fitzpatrick_scale:false,category:\"objects\"},toilet:{keywords:[\"restroom\",\"wc\",\"washroom\",\"bathroom\",\"potty\"],char:\"🚽\",fitzpatrick_scale:false,category:\"objects\"},shower:{keywords:[\"clean\",\"water\",\"bathroom\"],char:\"🚿\",fitzpatrick_scale:false,category:\"objects\"},bathtub:{keywords:[\"clean\",\"shower\",\"bathroom\"],char:\"🛁\",fitzpatrick_scale:false,category:\"objects\"},soap:{keywords:[\"bar\",\"bathing\",\"cleaning\",\"lather\"],char:\"🧼\",fitzpatrick_scale:false,category:\"objects\"},sponge:{keywords:[\"absorbing\",\"cleaning\",\"porous\"],char:\"🧽\",fitzpatrick_scale:false,category:\"objects\"},lotion_bottle:{keywords:[\"moisturizer\",\"sunscreen\"],char:\"🧴\",fitzpatrick_scale:false,category:\"objects\"},key:{keywords:[\"lock\",\"door\",\"password\"],char:\"🔑\",fitzpatrick_scale:false,category:\"objects\"},old_key:{keywords:[\"lock\",\"door\",\"password\"],char:\"🗝\",fitzpatrick_scale:false,category:\"objects\"},couch_and_lamp:{keywords:[\"read\",\"chill\"],char:\"🛋\",fitzpatrick_scale:false,category:\"objects\"},sleeping_bed:{keywords:[\"bed\",\"rest\"],char:\"🛌\",fitzpatrick_scale:true,category:\"objects\"},bed:{keywords:[\"sleep\",\"rest\"],char:\"🛏\",fitzpatrick_scale:false,category:\"objects\"},door:{keywords:[\"house\",\"entry\",\"exit\"],char:\"🚪\",fitzpatrick_scale:false,category:\"objects\"},bellhop_bell:{keywords:[\"service\"],char:\"🛎\",fitzpatrick_scale:false,category:\"objects\"},teddy_bear:{keywords:[\"plush\",\"stuffed\"],char:\"🧸\",fitzpatrick_scale:false,category:\"objects\"},framed_picture:{keywords:[\"photography\"],char:\"🖼\",fitzpatrick_scale:false,category:\"objects\"},world_map:{keywords:[\"location\",\"direction\"],char:\"🗺\",fitzpatrick_scale:false,category:\"objects\"},parasol_on_ground:{keywords:[\"weather\",\"summer\"],char:\"⛱\",fitzpatrick_scale:false,category:\"objects\"},moyai:{keywords:[\"rock\",\"easter island\",\"moai\"],char:\"🗿\",fitzpatrick_scale:false,category:\"objects\"},shopping:{keywords:[\"mall\",\"buy\",\"purchase\"],char:\"🛍\",fitzpatrick_scale:false,category:\"objects\"},shopping_cart:{keywords:[\"trolley\"],char:\"🛒\",fitzpatrick_scale:false,category:\"objects\"},balloon:{keywords:[\"party\",\"celebration\",\"birthday\",\"circus\"],char:\"🎈\",fitzpatrick_scale:false,category:\"objects\"},flags:{keywords:[\"fish\",\"japanese\",\"koinobori\",\"carp\",\"banner\"],char:\"🎏\",fitzpatrick_scale:false,category:\"objects\"},ribbon:{keywords:[\"decoration\",\"pink\",\"girl\",\"bowtie\"],char:\"🎀\",fitzpatrick_scale:false,category:\"objects\"},gift:{keywords:[\"present\",\"birthday\",\"christmas\",\"xmas\"],char:\"🎁\",fitzpatrick_scale:false,category:\"objects\"},confetti_ball:{keywords:[\"festival\",\"party\",\"birthday\",\"circus\"],char:\"🎊\",fitzpatrick_scale:false,category:\"objects\"},tada:{keywords:[\"party\",\"congratulations\",\"birthday\",\"magic\",\"circus\",\"celebration\"],char:\"🎉\",fitzpatrick_scale:false,category:\"objects\"},dolls:{keywords:[\"japanese\",\"toy\",\"kimono\"],char:\"🎎\",fitzpatrick_scale:false,category:\"objects\"},wind_chime:{keywords:[\"nature\",\"ding\",\"spring\",\"bell\"],char:\"🎐\",fitzpatrick_scale:false,category:\"objects\"},crossed_flags:{keywords:[\"japanese\",\"nation\",\"country\",\"border\"],char:\"🎌\",fitzpatrick_scale:false,category:\"objects\"},izakaya_lantern:{keywords:[\"light\",\"paper\",\"halloween\",\"spooky\"],char:\"🏮\",fitzpatrick_scale:false,category:\"objects\"},red_envelope:{keywords:[\"gift\"],char:\"🧧\",fitzpatrick_scale:false,category:\"objects\"},email:{keywords:[\"letter\",\"postal\",\"inbox\",\"communication\"],char:\"✉️\",fitzpatrick_scale:false,category:\"objects\"},envelope_with_arrow:{keywords:[\"email\",\"communication\"],char:\"📩\",fitzpatrick_scale:false,category:\"objects\"},incoming_envelope:{keywords:[\"email\",\"inbox\"],char:\"📨\",fitzpatrick_scale:false,category:\"objects\"},\"e-mail\":{keywords:[\"communication\",\"inbox\"],char:\"📧\",fitzpatrick_scale:false,category:\"objects\"},love_letter:{keywords:[\"email\",\"like\",\"affection\",\"envelope\",\"valentines\"],char:\"💌\",fitzpatrick_scale:false,category:\"objects\"},postbox:{keywords:[\"email\",\"letter\",\"envelope\"],char:\"📮\",fitzpatrick_scale:false,category:\"objects\"},mailbox_closed:{keywords:[\"email\",\"communication\",\"inbox\"],char:\"📪\",fitzpatrick_scale:false,category:\"objects\"},mailbox:{keywords:[\"email\",\"inbox\",\"communication\"],char:\"📫\",fitzpatrick_scale:false,category:\"objects\"},mailbox_with_mail:{keywords:[\"email\",\"inbox\",\"communication\"],char:\"📬\",fitzpatrick_scale:false,category:\"objects\"},mailbox_with_no_mail:{keywords:[\"email\",\"inbox\"],char:\"📭\",fitzpatrick_scale:false,category:\"objects\"},package:{keywords:[\"mail\",\"gift\",\"cardboard\",\"box\",\"moving\"],char:\"📦\",fitzpatrick_scale:false,category:\"objects\"},postal_horn:{keywords:[\"instrument\",\"music\"],char:\"📯\",fitzpatrick_scale:false,category:\"objects\"},inbox_tray:{keywords:[\"email\",\"documents\"],char:\"📥\",fitzpatrick_scale:false,category:\"objects\"},outbox_tray:{keywords:[\"inbox\",\"email\"],char:\"📤\",fitzpatrick_scale:false,category:\"objects\"},scroll:{keywords:[\"documents\",\"ancient\",\"history\",\"paper\"],char:\"📜\",fitzpatrick_scale:false,category:\"objects\"},page_with_curl:{keywords:[\"documents\",\"office\",\"paper\"],char:\"📃\",fitzpatrick_scale:false,category:\"objects\"},bookmark_tabs:{keywords:[\"favorite\",\"save\",\"order\",\"tidy\"],char:\"📑\",fitzpatrick_scale:false,category:\"objects\"},receipt:{keywords:[\"accounting\",\"expenses\"],char:\"🧾\",fitzpatrick_scale:false,category:\"objects\"},bar_chart:{keywords:[\"graph\",\"presentation\",\"stats\"],char:\"📊\",fitzpatrick_scale:false,category:\"objects\"},chart_with_upwards_trend:{keywords:[\"graph\",\"presentation\",\"stats\",\"recovery\",\"business\",\"economics\",\"money\",\"sales\",\"good\",\"success\"],char:\"📈\",fitzpatrick_scale:false,category:\"objects\"},chart_with_downwards_trend:{keywords:[\"graph\",\"presentation\",\"stats\",\"recession\",\"business\",\"economics\",\"money\",\"sales\",\"bad\",\"failure\"],char:\"📉\",fitzpatrick_scale:false,category:\"objects\"},page_facing_up:{keywords:[\"documents\",\"office\",\"paper\",\"information\"],char:\"📄\",fitzpatrick_scale:false,category:\"objects\"},date:{keywords:[\"calendar\",\"schedule\"],char:\"📅\",fitzpatrick_scale:false,category:\"objects\"},calendar:{keywords:[\"schedule\",\"date\",\"planning\"],char:\"📆\",fitzpatrick_scale:false,category:\"objects\"},spiral_calendar:{keywords:[\"date\",\"schedule\",\"planning\"],char:\"🗓\",fitzpatrick_scale:false,category:\"objects\"},card_index:{keywords:[\"business\",\"stationery\"],char:\"📇\",fitzpatrick_scale:false,category:\"objects\"},card_file_box:{keywords:[\"business\",\"stationery\"],char:\"🗃\",fitzpatrick_scale:false,category:\"objects\"},ballot_box:{keywords:[\"election\",\"vote\"],char:\"🗳\",fitzpatrick_scale:false,category:\"objects\"},file_cabinet:{keywords:[\"filing\",\"organizing\"],char:\"🗄\",fitzpatrick_scale:false,category:\"objects\"},clipboard:{keywords:[\"stationery\",\"documents\"],char:\"📋\",fitzpatrick_scale:false,category:\"objects\"},spiral_notepad:{keywords:[\"memo\",\"stationery\"],char:\"🗒\",fitzpatrick_scale:false,category:\"objects\"},file_folder:{keywords:[\"documents\",\"business\",\"office\"],char:\"📁\",fitzpatrick_scale:false,category:\"objects\"},open_file_folder:{keywords:[\"documents\",\"load\"],char:\"📂\",fitzpatrick_scale:false,category:\"objects\"},card_index_dividers:{keywords:[\"organizing\",\"business\",\"stationery\"],char:\"🗂\",fitzpatrick_scale:false,category:\"objects\"},newspaper_roll:{keywords:[\"press\",\"headline\"],char:\"🗞\",fitzpatrick_scale:false,category:\"objects\"},newspaper:{keywords:[\"press\",\"headline\"],char:\"📰\",fitzpatrick_scale:false,category:\"objects\"},notebook:{keywords:[\"stationery\",\"record\",\"notes\",\"paper\",\"study\"],char:\"📓\",fitzpatrick_scale:false,category:\"objects\"},closed_book:{keywords:[\"read\",\"library\",\"knowledge\",\"textbook\",\"learn\"],char:\"📕\",fitzpatrick_scale:false,category:\"objects\"},green_book:{keywords:[\"read\",\"library\",\"knowledge\",\"study\"],char:\"📗\",fitzpatrick_scale:false,category:\"objects\"},blue_book:{keywords:[\"read\",\"library\",\"knowledge\",\"learn\",\"study\"],char:\"📘\",fitzpatrick_scale:false,category:\"objects\"},orange_book:{keywords:[\"read\",\"library\",\"knowledge\",\"textbook\",\"study\"],char:\"📙\",fitzpatrick_scale:false,category:\"objects\"},notebook_with_decorative_cover:{keywords:[\"classroom\",\"notes\",\"record\",\"paper\",\"study\"],char:\"📔\",fitzpatrick_scale:false,category:\"objects\"},ledger:{keywords:[\"notes\",\"paper\"],char:\"📒\",fitzpatrick_scale:false,category:\"objects\"},books:{keywords:[\"literature\",\"library\",\"study\"],char:\"📚\",fitzpatrick_scale:false,category:\"objects\"},open_book:{keywords:[\"book\",\"read\",\"library\",\"knowledge\",\"literature\",\"learn\",\"study\"],char:\"📖\",fitzpatrick_scale:false,category:\"objects\"},safety_pin:{keywords:[\"diaper\"],char:\"🧷\",fitzpatrick_scale:false,category:\"objects\"},link:{keywords:[\"rings\",\"url\"],char:\"🔗\",fitzpatrick_scale:false,category:\"objects\"},paperclip:{keywords:[\"documents\",\"stationery\"],char:\"📎\",fitzpatrick_scale:false,category:\"objects\"},paperclips:{keywords:[\"documents\",\"stationery\"],char:\"🖇\",fitzpatrick_scale:false,category:\"objects\"},scissors:{keywords:[\"stationery\",\"cut\"],char:\"✂️\",fitzpatrick_scale:false,category:\"objects\"},triangular_ruler:{keywords:[\"stationery\",\"math\",\"architect\",\"sketch\"],char:\"📐\",fitzpatrick_scale:false,category:\"objects\"},straight_ruler:{keywords:[\"stationery\",\"calculate\",\"length\",\"math\",\"school\",\"drawing\",\"architect\",\"sketch\"],char:\"📏\",fitzpatrick_scale:false,category:\"objects\"},abacus:{keywords:[\"calculation\"],char:\"🧮\",fitzpatrick_scale:false,category:\"objects\"},pushpin:{keywords:[\"stationery\",\"mark\",\"here\"],char:\"📌\",fitzpatrick_scale:false,category:\"objects\"},round_pushpin:{keywords:[\"stationery\",\"location\",\"map\",\"here\"],char:\"📍\",fitzpatrick_scale:false,category:\"objects\"},triangular_flag_on_post:{keywords:[\"mark\",\"milestone\",\"place\"],char:\"🚩\",fitzpatrick_scale:false,category:\"objects\"},white_flag:{keywords:[\"losing\",\"loser\",\"lost\",\"surrender\",\"give up\",\"fail\"],char:\"🏳\",fitzpatrick_scale:false,category:\"objects\"},black_flag:{keywords:[\"pirate\"],char:\"🏴\",fitzpatrick_scale:false,category:\"objects\"},rainbow_flag:{keywords:[\"flag\",\"rainbow\",\"pride\",\"gay\",\"lgbt\",\"glbt\",\"queer\",\"homosexual\",\"lesbian\",\"bisexual\",\"transgender\"],char:\"🏳️‍🌈\",fitzpatrick_scale:false,category:\"objects\"},closed_lock_with_key:{keywords:[\"security\",\"privacy\"],char:\"🔐\",fitzpatrick_scale:false,category:\"objects\"},lock:{keywords:[\"security\",\"password\",\"padlock\"],char:\"🔒\",fitzpatrick_scale:false,category:\"objects\"},unlock:{keywords:[\"privacy\",\"security\"],char:\"🔓\",fitzpatrick_scale:false,category:\"objects\"},lock_with_ink_pen:{keywords:[\"security\",\"secret\"],char:\"🔏\",fitzpatrick_scale:false,category:\"objects\"},pen:{keywords:[\"stationery\",\"writing\",\"write\"],char:\"🖊\",fitzpatrick_scale:false,category:\"objects\"},fountain_pen:{keywords:[\"stationery\",\"writing\",\"write\"],char:\"🖋\",fitzpatrick_scale:false,category:\"objects\"},black_nib:{keywords:[\"pen\",\"stationery\",\"writing\",\"write\"],char:\"✒️\",fitzpatrick_scale:false,category:\"objects\"},memo:{keywords:[\"write\",\"documents\",\"stationery\",\"pencil\",\"paper\",\"writing\",\"legal\",\"exam\",\"quiz\",\"test\",\"study\",\"compose\"],char:\"📝\",fitzpatrick_scale:false,category:\"objects\"},pencil2:{keywords:[\"stationery\",\"write\",\"paper\",\"writing\",\"school\",\"study\"],char:\"✏️\",fitzpatrick_scale:false,category:\"objects\"},crayon:{keywords:[\"drawing\",\"creativity\"],char:\"🖍\",fitzpatrick_scale:false,category:\"objects\"},paintbrush:{keywords:[\"drawing\",\"creativity\",\"art\"],char:\"🖌\",fitzpatrick_scale:false,category:\"objects\"},mag:{keywords:[\"search\",\"zoom\",\"find\",\"detective\"],char:\"🔍\",fitzpatrick_scale:false,category:\"objects\"},mag_right:{keywords:[\"search\",\"zoom\",\"find\",\"detective\"],char:\"🔎\",fitzpatrick_scale:false,category:\"objects\"},heart:{keywords:[\"love\",\"like\",\"valentines\"],char:\"❤️\",fitzpatrick_scale:false,category:\"symbols\"},orange_heart:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"🧡\",fitzpatrick_scale:false,category:\"symbols\"},yellow_heart:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"💛\",fitzpatrick_scale:false,category:\"symbols\"},green_heart:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"💚\",fitzpatrick_scale:false,category:\"symbols\"},blue_heart:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"💙\",fitzpatrick_scale:false,category:\"symbols\"},purple_heart:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"💜\",fitzpatrick_scale:false,category:\"symbols\"},black_heart:{keywords:[\"evil\"],char:\"🖤\",fitzpatrick_scale:false,category:\"symbols\"},broken_heart:{keywords:[\"sad\",\"sorry\",\"break\",\"heart\",\"heartbreak\"],char:\"💔\",fitzpatrick_scale:false,category:\"symbols\"},heavy_heart_exclamation:{keywords:[\"decoration\",\"love\"],char:\"❣\",fitzpatrick_scale:false,category:\"symbols\"},two_hearts:{keywords:[\"love\",\"like\",\"affection\",\"valentines\",\"heart\"],char:\"💕\",fitzpatrick_scale:false,category:\"symbols\"},revolving_hearts:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"💞\",fitzpatrick_scale:false,category:\"symbols\"},heartbeat:{keywords:[\"love\",\"like\",\"affection\",\"valentines\",\"pink\",\"heart\"],char:\"💓\",fitzpatrick_scale:false,category:\"symbols\"},heartpulse:{keywords:[\"like\",\"love\",\"affection\",\"valentines\",\"pink\"],char:\"💗\",fitzpatrick_scale:false,category:\"symbols\"},sparkling_heart:{keywords:[\"love\",\"like\",\"affection\",\"valentines\"],char:\"💖\",fitzpatrick_scale:false,category:\"symbols\"},cupid:{keywords:[\"love\",\"like\",\"heart\",\"affection\",\"valentines\"],char:\"💘\",fitzpatrick_scale:false,category:\"symbols\"},gift_heart:{keywords:[\"love\",\"valentines\"],char:\"💝\",fitzpatrick_scale:false,category:\"symbols\"},heart_decoration:{keywords:[\"purple-square\",\"love\",\"like\"],char:\"💟\",fitzpatrick_scale:false,category:\"symbols\"},peace_symbol:{keywords:[\"hippie\"],char:\"☮\",fitzpatrick_scale:false,category:\"symbols\"},latin_cross:{keywords:[\"christianity\"],char:\"✝\",fitzpatrick_scale:false,category:\"symbols\"},star_and_crescent:{keywords:[\"islam\"],char:\"☪\",fitzpatrick_scale:false,category:\"symbols\"},om:{keywords:[\"hinduism\",\"buddhism\",\"sikhism\",\"jainism\"],char:\"🕉\",fitzpatrick_scale:false,category:\"symbols\"},wheel_of_dharma:{keywords:[\"hinduism\",\"buddhism\",\"sikhism\",\"jainism\"],char:\"☸\",fitzpatrick_scale:false,category:\"symbols\"},star_of_david:{keywords:[\"judaism\"],char:\"✡\",fitzpatrick_scale:false,category:\"symbols\"},six_pointed_star:{keywords:[\"purple-square\",\"religion\",\"jewish\",\"hexagram\"],char:\"🔯\",fitzpatrick_scale:false,category:\"symbols\"},menorah:{keywords:[\"hanukkah\",\"candles\",\"jewish\"],char:\"🕎\",fitzpatrick_scale:false,category:\"symbols\"},yin_yang:{keywords:[\"balance\"],char:\"☯\",fitzpatrick_scale:false,category:\"symbols\"},orthodox_cross:{keywords:[\"suppedaneum\",\"religion\"],char:\"☦\",fitzpatrick_scale:false,category:\"symbols\"},place_of_worship:{keywords:[\"religion\",\"church\",\"temple\",\"prayer\"],char:\"🛐\",fitzpatrick_scale:false,category:\"symbols\"},ophiuchus:{keywords:[\"sign\",\"purple-square\",\"constellation\",\"astrology\"],char:\"⛎\",fitzpatrick_scale:false,category:\"symbols\"},aries:{keywords:[\"sign\",\"purple-square\",\"zodiac\",\"astrology\"],char:\"♈\",fitzpatrick_scale:false,category:\"symbols\"},taurus:{keywords:[\"purple-square\",\"sign\",\"zodiac\",\"astrology\"],char:\"♉\",fitzpatrick_scale:false,category:\"symbols\"},gemini:{keywords:[\"sign\",\"zodiac\",\"purple-square\",\"astrology\"],char:\"♊\",fitzpatrick_scale:false,category:\"symbols\"},cancer:{keywords:[\"sign\",\"zodiac\",\"purple-square\",\"astrology\"],char:\"♋\",fitzpatrick_scale:false,category:\"symbols\"},leo:{keywords:[\"sign\",\"purple-square\",\"zodiac\",\"astrology\"],char:\"♌\",fitzpatrick_scale:false,category:\"symbols\"},virgo:{keywords:[\"sign\",\"zodiac\",\"purple-square\",\"astrology\"],char:\"♍\",fitzpatrick_scale:false,category:\"symbols\"},libra:{keywords:[\"sign\",\"purple-square\",\"zodiac\",\"astrology\"],char:\"♎\",fitzpatrick_scale:false,category:\"symbols\"},scorpius:{keywords:[\"sign\",\"zodiac\",\"purple-square\",\"astrology\",\"scorpio\"],char:\"♏\",fitzpatrick_scale:false,category:\"symbols\"},sagittarius:{keywords:[\"sign\",\"zodiac\",\"purple-square\",\"astrology\"],char:\"♐\",fitzpatrick_scale:false,category:\"symbols\"},capricorn:{keywords:[\"sign\",\"zodiac\",\"purple-square\",\"astrology\"],char:\"♑\",fitzpatrick_scale:false,category:\"symbols\"},aquarius:{keywords:[\"sign\",\"purple-square\",\"zodiac\",\"astrology\"],char:\"♒\",fitzpatrick_scale:false,category:\"symbols\"},pisces:{keywords:[\"purple-square\",\"sign\",\"zodiac\",\"astrology\"],char:\"♓\",fitzpatrick_scale:false,category:\"symbols\"},id:{keywords:[\"purple-square\",\"words\"],char:\"🆔\",fitzpatrick_scale:false,category:\"symbols\"},atom_symbol:{keywords:[\"science\",\"physics\",\"chemistry\"],char:\"⚛\",fitzpatrick_scale:false,category:\"symbols\"},u7a7a:{keywords:[\"kanji\",\"japanese\",\"chinese\",\"empty\",\"sky\",\"blue-square\"],char:\"🈳\",fitzpatrick_scale:false,category:\"symbols\"},u5272:{keywords:[\"cut\",\"divide\",\"chinese\",\"kanji\",\"pink-square\"],char:\"🈹\",fitzpatrick_scale:false,category:\"symbols\"},radioactive:{keywords:[\"nuclear\",\"danger\"],char:\"☢\",fitzpatrick_scale:false,category:\"symbols\"},biohazard:{keywords:[\"danger\"],char:\"☣\",fitzpatrick_scale:false,category:\"symbols\"},mobile_phone_off:{keywords:[\"mute\",\"orange-square\",\"silence\",\"quiet\"],char:\"📴\",fitzpatrick_scale:false,category:\"symbols\"},vibration_mode:{keywords:[\"orange-square\",\"phone\"],char:\"📳\",fitzpatrick_scale:false,category:\"symbols\"},u6709:{keywords:[\"orange-square\",\"chinese\",\"have\",\"kanji\"],char:\"🈶\",fitzpatrick_scale:false,category:\"symbols\"},u7121:{keywords:[\"nothing\",\"chinese\",\"kanji\",\"japanese\",\"orange-square\"],char:\"🈚\",fitzpatrick_scale:false,category:\"symbols\"},u7533:{keywords:[\"chinese\",\"japanese\",\"kanji\",\"orange-square\"],char:\"🈸\",fitzpatrick_scale:false,category:\"symbols\"},u55b6:{keywords:[\"japanese\",\"opening hours\",\"orange-square\"],char:\"🈺\",fitzpatrick_scale:false,category:\"symbols\"},u6708:{keywords:[\"chinese\",\"month\",\"moon\",\"japanese\",\"orange-square\",\"kanji\"],char:\"🈷️\",fitzpatrick_scale:false,category:\"symbols\"},eight_pointed_black_star:{keywords:[\"orange-square\",\"shape\",\"polygon\"],char:\"✴️\",fitzpatrick_scale:false,category:\"symbols\"},vs:{keywords:[\"words\",\"orange-square\"],char:\"🆚\",fitzpatrick_scale:false,category:\"symbols\"},accept:{keywords:[\"ok\",\"good\",\"chinese\",\"kanji\",\"agree\",\"yes\",\"orange-circle\"],char:\"🉑\",fitzpatrick_scale:false,category:\"symbols\"},white_flower:{keywords:[\"japanese\",\"spring\"],char:\"💮\",fitzpatrick_scale:false,category:\"symbols\"},ideograph_advantage:{keywords:[\"chinese\",\"kanji\",\"obtain\",\"get\",\"circle\"],char:\"🉐\",fitzpatrick_scale:false,category:\"symbols\"},secret:{keywords:[\"privacy\",\"chinese\",\"sshh\",\"kanji\",\"red-circle\"],char:\"㊙️\",fitzpatrick_scale:false,category:\"symbols\"},congratulations:{keywords:[\"chinese\",\"kanji\",\"japanese\",\"red-circle\"],char:\"㊗️\",fitzpatrick_scale:false,category:\"symbols\"},u5408:{keywords:[\"japanese\",\"chinese\",\"join\",\"kanji\",\"red-square\"],char:\"🈴\",fitzpatrick_scale:false,category:\"symbols\"},u6e80:{keywords:[\"full\",\"chinese\",\"japanese\",\"red-square\",\"kanji\"],char:\"🈵\",fitzpatrick_scale:false,category:\"symbols\"},u7981:{keywords:[\"kanji\",\"japanese\",\"chinese\",\"forbidden\",\"limit\",\"restricted\",\"red-square\"],char:\"🈲\",fitzpatrick_scale:false,category:\"symbols\"},a:{keywords:[\"red-square\",\"alphabet\",\"letter\"],char:\"🅰️\",fitzpatrick_scale:false,category:\"symbols\"},b:{keywords:[\"red-square\",\"alphabet\",\"letter\"],char:\"🅱️\",fitzpatrick_scale:false,category:\"symbols\"},ab:{keywords:[\"red-square\",\"alphabet\"],char:\"🆎\",fitzpatrick_scale:false,category:\"symbols\"},cl:{keywords:[\"alphabet\",\"words\",\"red-square\"],char:\"🆑\",fitzpatrick_scale:false,category:\"symbols\"},o2:{keywords:[\"alphabet\",\"red-square\",\"letter\"],char:\"🅾️\",fitzpatrick_scale:false,category:\"symbols\"},sos:{keywords:[\"help\",\"red-square\",\"words\",\"emergency\",\"911\"],char:\"🆘\",fitzpatrick_scale:false,category:\"symbols\"},no_entry:{keywords:[\"limit\",\"security\",\"privacy\",\"bad\",\"denied\",\"stop\",\"circle\"],char:\"⛔\",fitzpatrick_scale:false,category:\"symbols\"},name_badge:{keywords:[\"fire\",\"forbid\"],char:\"📛\",fitzpatrick_scale:false,category:\"symbols\"},no_entry_sign:{keywords:[\"forbid\",\"stop\",\"limit\",\"denied\",\"disallow\",\"circle\"],char:\"🚫\",fitzpatrick_scale:false,category:\"symbols\"},x:{keywords:[\"no\",\"delete\",\"remove\",\"cancel\",\"red\"],char:\"❌\",fitzpatrick_scale:false,category:\"symbols\"},o:{keywords:[\"circle\",\"round\"],char:\"⭕\",fitzpatrick_scale:false,category:\"symbols\"},stop_sign:{keywords:[\"stop\"],char:\"🛑\",fitzpatrick_scale:false,category:\"symbols\"},anger:{keywords:[\"angry\",\"mad\"],char:\"💢\",fitzpatrick_scale:false,category:\"symbols\"},hotsprings:{keywords:[\"bath\",\"warm\",\"relax\"],char:\"♨️\",fitzpatrick_scale:false,category:\"symbols\"},no_pedestrians:{keywords:[\"rules\",\"crossing\",\"walking\",\"circle\"],char:\"🚷\",fitzpatrick_scale:false,category:\"symbols\"},do_not_litter:{keywords:[\"trash\",\"bin\",\"garbage\",\"circle\"],char:\"🚯\",fitzpatrick_scale:false,category:\"symbols\"},no_bicycles:{keywords:[\"cyclist\",\"prohibited\",\"circle\"],char:\"🚳\",fitzpatrick_scale:false,category:\"symbols\"},\"non-potable_water\":{keywords:[\"drink\",\"faucet\",\"tap\",\"circle\"],char:\"🚱\",fitzpatrick_scale:false,category:\"symbols\"},underage:{keywords:[\"18\",\"drink\",\"pub\",\"night\",\"minor\",\"circle\"],char:\"🔞\",fitzpatrick_scale:false,category:\"symbols\"},no_mobile_phones:{keywords:[\"iphone\",\"mute\",\"circle\"],char:\"📵\",fitzpatrick_scale:false,category:\"symbols\"},exclamation:{keywords:[\"heavy_exclamation_mark\",\"danger\",\"surprise\",\"punctuation\",\"wow\",\"warning\"],char:\"❗\",fitzpatrick_scale:false,category:\"symbols\"},grey_exclamation:{keywords:[\"surprise\",\"punctuation\",\"gray\",\"wow\",\"warning\"],char:\"❕\",fitzpatrick_scale:false,category:\"symbols\"},question:{keywords:[\"doubt\",\"confused\"],char:\"❓\",fitzpatrick_scale:false,category:\"symbols\"},grey_question:{keywords:[\"doubts\",\"gray\",\"huh\",\"confused\"],char:\"❔\",fitzpatrick_scale:false,category:\"symbols\"},bangbang:{keywords:[\"exclamation\",\"surprise\"],char:\"‼️\",fitzpatrick_scale:false,category:\"symbols\"},interrobang:{keywords:[\"wat\",\"punctuation\",\"surprise\"],char:\"⁉️\",fitzpatrick_scale:false,category:\"symbols\"},100:{keywords:[\"score\",\"perfect\",\"numbers\",\"century\",\"exam\",\"quiz\",\"test\",\"pass\",\"hundred\"],char:\"💯\",fitzpatrick_scale:false,category:\"symbols\"},low_brightness:{keywords:[\"sun\",\"afternoon\",\"warm\",\"summer\"],char:\"🔅\",fitzpatrick_scale:false,category:\"symbols\"},high_brightness:{keywords:[\"sun\",\"light\"],char:\"🔆\",fitzpatrick_scale:false,category:\"symbols\"},trident:{keywords:[\"weapon\",\"spear\"],char:\"🔱\",fitzpatrick_scale:false,category:\"symbols\"},fleur_de_lis:{keywords:[\"decorative\",\"scout\"],char:\"⚜\",fitzpatrick_scale:false,category:\"symbols\"},part_alternation_mark:{keywords:[\"graph\",\"presentation\",\"stats\",\"business\",\"economics\",\"bad\"],char:\"〽️\",fitzpatrick_scale:false,category:\"symbols\"},warning:{keywords:[\"exclamation\",\"wip\",\"alert\",\"error\",\"problem\",\"issue\"],char:\"⚠️\",fitzpatrick_scale:false,category:\"symbols\"},children_crossing:{keywords:[\"school\",\"warning\",\"danger\",\"sign\",\"driving\",\"yellow-diamond\"],char:\"🚸\",fitzpatrick_scale:false,category:\"symbols\"},beginner:{keywords:[\"badge\",\"shield\"],char:\"🔰\",fitzpatrick_scale:false,category:\"symbols\"},recycle:{keywords:[\"arrow\",\"environment\",\"garbage\",\"trash\"],char:\"♻️\",fitzpatrick_scale:false,category:\"symbols\"},u6307:{keywords:[\"chinese\",\"point\",\"green-square\",\"kanji\"],char:\"🈯\",fitzpatrick_scale:false,category:\"symbols\"},chart:{keywords:[\"green-square\",\"graph\",\"presentation\",\"stats\"],char:\"💹\",fitzpatrick_scale:false,category:\"symbols\"},sparkle:{keywords:[\"stars\",\"green-square\",\"awesome\",\"good\",\"fireworks\"],char:\"❇️\",fitzpatrick_scale:false,category:\"symbols\"},eight_spoked_asterisk:{keywords:[\"star\",\"sparkle\",\"green-square\"],char:\"✳️\",fitzpatrick_scale:false,category:\"symbols\"},negative_squared_cross_mark:{keywords:[\"x\",\"green-square\",\"no\",\"deny\"],char:\"❎\",fitzpatrick_scale:false,category:\"symbols\"},white_check_mark:{keywords:[\"green-square\",\"ok\",\"agree\",\"vote\",\"election\",\"answer\",\"tick\"],char:\"✅\",fitzpatrick_scale:false,category:\"symbols\"},diamond_shape_with_a_dot_inside:{keywords:[\"jewel\",\"blue\",\"gem\",\"crystal\",\"fancy\"],char:\"💠\",fitzpatrick_scale:false,category:\"symbols\"},cyclone:{keywords:[\"weather\",\"swirl\",\"blue\",\"cloud\",\"vortex\",\"spiral\",\"whirlpool\",\"spin\",\"tornado\",\"hurricane\",\"typhoon\"],char:\"🌀\",fitzpatrick_scale:false,category:\"symbols\"},loop:{keywords:[\"tape\",\"cassette\"],char:\"➿\",fitzpatrick_scale:false,category:\"symbols\"},globe_with_meridians:{keywords:[\"earth\",\"international\",\"world\",\"internet\",\"interweb\",\"i18n\"],char:\"🌐\",fitzpatrick_scale:false,category:\"symbols\"},m:{keywords:[\"alphabet\",\"blue-circle\",\"letter\"],char:\"Ⓜ️\",fitzpatrick_scale:false,category:\"symbols\"},atm:{keywords:[\"money\",\"sales\",\"cash\",\"blue-square\",\"payment\",\"bank\"],char:\"🏧\",fitzpatrick_scale:false,category:\"symbols\"},sa:{keywords:[\"japanese\",\"blue-square\",\"katakana\"],char:\"🈂️\",fitzpatrick_scale:false,category:\"symbols\"},passport_control:{keywords:[\"custom\",\"blue-square\"],char:\"🛂\",fitzpatrick_scale:false,category:\"symbols\"},customs:{keywords:[\"passport\",\"border\",\"blue-square\"],char:\"🛃\",fitzpatrick_scale:false,category:\"symbols\"},baggage_claim:{keywords:[\"blue-square\",\"airport\",\"transport\"],char:\"🛄\",fitzpatrick_scale:false,category:\"symbols\"},left_luggage:{keywords:[\"blue-square\",\"travel\"],char:\"🛅\",fitzpatrick_scale:false,category:\"symbols\"},wheelchair:{keywords:[\"blue-square\",\"disabled\",\"a11y\",\"accessibility\"],char:\"♿\",fitzpatrick_scale:false,category:\"symbols\"},no_smoking:{keywords:[\"cigarette\",\"blue-square\",\"smell\",\"smoke\"],char:\"🚭\",fitzpatrick_scale:false,category:\"symbols\"},wc:{keywords:[\"toilet\",\"restroom\",\"blue-square\"],char:\"🚾\",fitzpatrick_scale:false,category:\"symbols\"},parking:{keywords:[\"cars\",\"blue-square\",\"alphabet\",\"letter\"],char:\"🅿️\",fitzpatrick_scale:false,category:\"symbols\"},potable_water:{keywords:[\"blue-square\",\"liquid\",\"restroom\",\"cleaning\",\"faucet\"],char:\"🚰\",fitzpatrick_scale:false,category:\"symbols\"},mens:{keywords:[\"toilet\",\"restroom\",\"wc\",\"blue-square\",\"gender\",\"male\"],char:\"🚹\",fitzpatrick_scale:false,category:\"symbols\"},womens:{keywords:[\"purple-square\",\"woman\",\"female\",\"toilet\",\"loo\",\"restroom\",\"gender\"],char:\"🚺\",fitzpatrick_scale:false,category:\"symbols\"},baby_symbol:{keywords:[\"orange-square\",\"child\"],char:\"🚼\",fitzpatrick_scale:false,category:\"symbols\"},restroom:{keywords:[\"blue-square\",\"toilet\",\"refresh\",\"wc\",\"gender\"],char:\"🚻\",fitzpatrick_scale:false,category:\"symbols\"},put_litter_in_its_place:{keywords:[\"blue-square\",\"sign\",\"human\",\"info\"],char:\"🚮\",fitzpatrick_scale:false,category:\"symbols\"},cinema:{keywords:[\"blue-square\",\"record\",\"film\",\"movie\",\"curtain\",\"stage\",\"theater\"],char:\"🎦\",fitzpatrick_scale:false,category:\"symbols\"},signal_strength:{keywords:[\"blue-square\",\"reception\",\"phone\",\"internet\",\"connection\",\"wifi\",\"bluetooth\",\"bars\"],char:\"📶\",fitzpatrick_scale:false,category:\"symbols\"},koko:{keywords:[\"blue-square\",\"here\",\"katakana\",\"japanese\",\"destination\"],char:\"🈁\",fitzpatrick_scale:false,category:\"symbols\"},ng:{keywords:[\"blue-square\",\"words\",\"shape\",\"icon\"],char:\"🆖\",fitzpatrick_scale:false,category:\"symbols\"},ok:{keywords:[\"good\",\"agree\",\"yes\",\"blue-square\"],char:\"🆗\",fitzpatrick_scale:false,category:\"symbols\"},up:{keywords:[\"blue-square\",\"above\",\"high\"],char:\"🆙\",fitzpatrick_scale:false,category:\"symbols\"},cool:{keywords:[\"words\",\"blue-square\"],char:\"🆒\",fitzpatrick_scale:false,category:\"symbols\"},new:{keywords:[\"blue-square\",\"words\",\"start\"],char:\"🆕\",fitzpatrick_scale:false,category:\"symbols\"},free:{keywords:[\"blue-square\",\"words\"],char:\"🆓\",fitzpatrick_scale:false,category:\"symbols\"},zero:{keywords:[\"0\",\"numbers\",\"blue-square\",\"null\"],char:\"0️⃣\",fitzpatrick_scale:false,category:\"symbols\"},one:{keywords:[\"blue-square\",\"numbers\",\"1\"],char:\"1️⃣\",fitzpatrick_scale:false,category:\"symbols\"},two:{keywords:[\"numbers\",\"2\",\"prime\",\"blue-square\"],char:\"2️⃣\",fitzpatrick_scale:false,category:\"symbols\"},three:{keywords:[\"3\",\"numbers\",\"prime\",\"blue-square\"],char:\"3️⃣\",fitzpatrick_scale:false,category:\"symbols\"},four:{keywords:[\"4\",\"numbers\",\"blue-square\"],char:\"4️⃣\",fitzpatrick_scale:false,category:\"symbols\"},five:{keywords:[\"5\",\"numbers\",\"blue-square\",\"prime\"],char:\"5️⃣\",fitzpatrick_scale:false,category:\"symbols\"},six:{keywords:[\"6\",\"numbers\",\"blue-square\"],char:\"6️⃣\",fitzpatrick_scale:false,category:\"symbols\"},seven:{keywords:[\"7\",\"numbers\",\"blue-square\",\"prime\"],char:\"7️⃣\",fitzpatrick_scale:false,category:\"symbols\"},eight:{keywords:[\"8\",\"blue-square\",\"numbers\"],char:\"8️⃣\",fitzpatrick_scale:false,category:\"symbols\"},nine:{keywords:[\"blue-square\",\"numbers\",\"9\"],char:\"9️⃣\",fitzpatrick_scale:false,category:\"symbols\"},keycap_ten:{keywords:[\"numbers\",\"10\",\"blue-square\"],char:\"🔟\",fitzpatrick_scale:false,category:\"symbols\"},asterisk:{keywords:[\"star\",\"keycap\"],char:\"*⃣\",fitzpatrick_scale:false,category:\"symbols\"},1234:{keywords:[\"numbers\",\"blue-square\"],char:\"🔢\",fitzpatrick_scale:false,category:\"symbols\"},eject_button:{keywords:[\"blue-square\"],char:\"⏏️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_forward:{keywords:[\"blue-square\",\"right\",\"direction\",\"play\"],char:\"▶️\",fitzpatrick_scale:false,category:\"symbols\"},pause_button:{keywords:[\"pause\",\"blue-square\"],char:\"⏸\",fitzpatrick_scale:false,category:\"symbols\"},next_track_button:{keywords:[\"forward\",\"next\",\"blue-square\"],char:\"⏭\",fitzpatrick_scale:false,category:\"symbols\"},stop_button:{keywords:[\"blue-square\"],char:\"⏹\",fitzpatrick_scale:false,category:\"symbols\"},record_button:{keywords:[\"blue-square\"],char:\"⏺\",fitzpatrick_scale:false,category:\"symbols\"},play_or_pause_button:{keywords:[\"blue-square\",\"play\",\"pause\"],char:\"⏯\",fitzpatrick_scale:false,category:\"symbols\"},previous_track_button:{keywords:[\"backward\"],char:\"⏮\",fitzpatrick_scale:false,category:\"symbols\"},fast_forward:{keywords:[\"blue-square\",\"play\",\"speed\",\"continue\"],char:\"⏩\",fitzpatrick_scale:false,category:\"symbols\"},rewind:{keywords:[\"play\",\"blue-square\"],char:\"⏪\",fitzpatrick_scale:false,category:\"symbols\"},twisted_rightwards_arrows:{keywords:[\"blue-square\",\"shuffle\",\"music\",\"random\"],char:\"🔀\",fitzpatrick_scale:false,category:\"symbols\"},repeat:{keywords:[\"loop\",\"record\"],char:\"🔁\",fitzpatrick_scale:false,category:\"symbols\"},repeat_one:{keywords:[\"blue-square\",\"loop\"],char:\"🔂\",fitzpatrick_scale:false,category:\"symbols\"},arrow_backward:{keywords:[\"blue-square\",\"left\",\"direction\"],char:\"◀️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_up_small:{keywords:[\"blue-square\",\"triangle\",\"direction\",\"point\",\"forward\",\"top\"],char:\"🔼\",fitzpatrick_scale:false,category:\"symbols\"},arrow_down_small:{keywords:[\"blue-square\",\"direction\",\"bottom\"],char:\"🔽\",fitzpatrick_scale:false,category:\"symbols\"},arrow_double_up:{keywords:[\"blue-square\",\"direction\",\"top\"],char:\"⏫\",fitzpatrick_scale:false,category:\"symbols\"},arrow_double_down:{keywords:[\"blue-square\",\"direction\",\"bottom\"],char:\"⏬\",fitzpatrick_scale:false,category:\"symbols\"},arrow_right:{keywords:[\"blue-square\",\"next\"],char:\"➡️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_left:{keywords:[\"blue-square\",\"previous\",\"back\"],char:\"⬅️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_up:{keywords:[\"blue-square\",\"continue\",\"top\",\"direction\"],char:\"⬆️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_down:{keywords:[\"blue-square\",\"direction\",\"bottom\"],char:\"⬇️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_upper_right:{keywords:[\"blue-square\",\"point\",\"direction\",\"diagonal\",\"northeast\"],char:\"↗️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_lower_right:{keywords:[\"blue-square\",\"direction\",\"diagonal\",\"southeast\"],char:\"↘️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_lower_left:{keywords:[\"blue-square\",\"direction\",\"diagonal\",\"southwest\"],char:\"↙️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_upper_left:{keywords:[\"blue-square\",\"point\",\"direction\",\"diagonal\",\"northwest\"],char:\"↖️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_up_down:{keywords:[\"blue-square\",\"direction\",\"way\",\"vertical\"],char:\"↕️\",fitzpatrick_scale:false,category:\"symbols\"},left_right_arrow:{keywords:[\"shape\",\"direction\",\"horizontal\",\"sideways\"],char:\"↔️\",fitzpatrick_scale:false,category:\"symbols\"},arrows_counterclockwise:{keywords:[\"blue-square\",\"sync\",\"cycle\"],char:\"🔄\",fitzpatrick_scale:false,category:\"symbols\"},arrow_right_hook:{keywords:[\"blue-square\",\"return\",\"rotate\",\"direction\"],char:\"↪️\",fitzpatrick_scale:false,category:\"symbols\"},leftwards_arrow_with_hook:{keywords:[\"back\",\"return\",\"blue-square\",\"undo\",\"enter\"],char:\"↩️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_heading_up:{keywords:[\"blue-square\",\"direction\",\"top\"],char:\"⤴️\",fitzpatrick_scale:false,category:\"symbols\"},arrow_heading_down:{keywords:[\"blue-square\",\"direction\",\"bottom\"],char:\"⤵️\",fitzpatrick_scale:false,category:\"symbols\"},hash:{keywords:[\"symbol\",\"blue-square\",\"twitter\"],char:\"#️⃣\",fitzpatrick_scale:false,category:\"symbols\"},information_source:{keywords:[\"blue-square\",\"alphabet\",\"letter\"],char:\"ℹ️\",fitzpatrick_scale:false,category:\"symbols\"},abc:{keywords:[\"blue-square\",\"alphabet\"],char:\"🔤\",fitzpatrick_scale:false,category:\"symbols\"},abcd:{keywords:[\"blue-square\",\"alphabet\"],char:\"🔡\",fitzpatrick_scale:false,category:\"symbols\"},capital_abcd:{keywords:[\"alphabet\",\"words\",\"blue-square\"],char:\"🔠\",fitzpatrick_scale:false,category:\"symbols\"},symbols:{keywords:[\"blue-square\",\"music\",\"note\",\"ampersand\",\"percent\",\"glyphs\",\"characters\"],char:\"🔣\",fitzpatrick_scale:false,category:\"symbols\"},musical_note:{keywords:[\"score\",\"tone\",\"sound\"],char:\"🎵\",fitzpatrick_scale:false,category:\"symbols\"},notes:{keywords:[\"music\",\"score\"],char:\"🎶\",fitzpatrick_scale:false,category:\"symbols\"},wavy_dash:{keywords:[\"draw\",\"line\",\"moustache\",\"mustache\",\"squiggle\",\"scribble\"],char:\"〰️\",fitzpatrick_scale:false,category:\"symbols\"},curly_loop:{keywords:[\"scribble\",\"draw\",\"shape\",\"squiggle\"],char:\"➰\",fitzpatrick_scale:false,category:\"symbols\"},heavy_check_mark:{keywords:[\"ok\",\"nike\",\"answer\",\"yes\",\"tick\"],char:\"✔️\",fitzpatrick_scale:false,category:\"symbols\"},arrows_clockwise:{keywords:[\"sync\",\"cycle\",\"round\",\"repeat\"],char:\"🔃\",fitzpatrick_scale:false,category:\"symbols\"},heavy_plus_sign:{keywords:[\"math\",\"calculation\",\"addition\",\"more\",\"increase\"],char:\"➕\",fitzpatrick_scale:false,category:\"symbols\"},heavy_minus_sign:{keywords:[\"math\",\"calculation\",\"subtract\",\"less\"],char:\"➖\",fitzpatrick_scale:false,category:\"symbols\"},heavy_division_sign:{keywords:[\"divide\",\"math\",\"calculation\"],char:\"➗\",fitzpatrick_scale:false,category:\"symbols\"},heavy_multiplication_x:{keywords:[\"math\",\"calculation\"],char:\"✖️\",fitzpatrick_scale:false,category:\"symbols\"},infinity:{keywords:[\"forever\"],char:\"♾\",fitzpatrick_scale:false,category:\"symbols\"},heavy_dollar_sign:{keywords:[\"money\",\"sales\",\"payment\",\"currency\",\"buck\"],char:\"💲\",fitzpatrick_scale:false,category:\"symbols\"},currency_exchange:{keywords:[\"money\",\"sales\",\"dollar\",\"travel\"],char:\"💱\",fitzpatrick_scale:false,category:\"symbols\"},copyright:{keywords:[\"ip\",\"license\",\"circle\",\"law\",\"legal\"],char:\"©️\",fitzpatrick_scale:false,category:\"symbols\"},registered:{keywords:[\"alphabet\",\"circle\"],char:\"®️\",fitzpatrick_scale:false,category:\"symbols\"},tm:{keywords:[\"trademark\",\"brand\",\"law\",\"legal\"],char:\"™️\",fitzpatrick_scale:false,category:\"symbols\"},end:{keywords:[\"words\",\"arrow\"],char:\"🔚\",fitzpatrick_scale:false,category:\"symbols\"},back:{keywords:[\"arrow\",\"words\",\"return\"],char:\"🔙\",fitzpatrick_scale:false,category:\"symbols\"},on:{keywords:[\"arrow\",\"words\"],char:\"🔛\",fitzpatrick_scale:false,category:\"symbols\"},top:{keywords:[\"words\",\"blue-square\"],char:\"🔝\",fitzpatrick_scale:false,category:\"symbols\"},soon:{keywords:[\"arrow\",\"words\"],char:\"🔜\",fitzpatrick_scale:false,category:\"symbols\"},ballot_box_with_check:{keywords:[\"ok\",\"agree\",\"confirm\",\"black-square\",\"vote\",\"election\",\"yes\",\"tick\"],char:\"☑️\",fitzpatrick_scale:false,category:\"symbols\"},radio_button:{keywords:[\"input\",\"old\",\"music\",\"circle\"],char:\"🔘\",fitzpatrick_scale:false,category:\"symbols\"},white_circle:{keywords:[\"shape\",\"round\"],char:\"⚪\",fitzpatrick_scale:false,category:\"symbols\"},black_circle:{keywords:[\"shape\",\"button\",\"round\"],char:\"⚫\",fitzpatrick_scale:false,category:\"symbols\"},red_circle:{keywords:[\"shape\",\"error\",\"danger\"],char:\"🔴\",fitzpatrick_scale:false,category:\"symbols\"},large_blue_circle:{keywords:[\"shape\",\"icon\",\"button\"],char:\"🔵\",fitzpatrick_scale:false,category:\"symbols\"},small_orange_diamond:{keywords:[\"shape\",\"jewel\",\"gem\"],char:\"🔸\",fitzpatrick_scale:false,category:\"symbols\"},small_blue_diamond:{keywords:[\"shape\",\"jewel\",\"gem\"],char:\"🔹\",fitzpatrick_scale:false,category:\"symbols\"},large_orange_diamond:{keywords:[\"shape\",\"jewel\",\"gem\"],char:\"🔶\",fitzpatrick_scale:false,category:\"symbols\"},large_blue_diamond:{keywords:[\"shape\",\"jewel\",\"gem\"],char:\"🔷\",fitzpatrick_scale:false,category:\"symbols\"},small_red_triangle:{keywords:[\"shape\",\"direction\",\"up\",\"top\"],char:\"🔺\",fitzpatrick_scale:false,category:\"symbols\"},black_small_square:{keywords:[\"shape\",\"icon\"],char:\"▪️\",fitzpatrick_scale:false,category:\"symbols\"},white_small_square:{keywords:[\"shape\",\"icon\"],char:\"▫️\",fitzpatrick_scale:false,category:\"symbols\"},black_large_square:{keywords:[\"shape\",\"icon\",\"button\"],char:\"⬛\",fitzpatrick_scale:false,category:\"symbols\"},white_large_square:{keywords:[\"shape\",\"icon\",\"stone\",\"button\"],char:\"⬜\",fitzpatrick_scale:false,category:\"symbols\"},small_red_triangle_down:{keywords:[\"shape\",\"direction\",\"bottom\"],char:\"🔻\",fitzpatrick_scale:false,category:\"symbols\"},black_medium_square:{keywords:[\"shape\",\"button\",\"icon\"],char:\"◼️\",fitzpatrick_scale:false,category:\"symbols\"},white_medium_square:{keywords:[\"shape\",\"stone\",\"icon\"],char:\"◻️\",fitzpatrick_scale:false,category:\"symbols\"},black_medium_small_square:{keywords:[\"icon\",\"shape\",\"button\"],char:\"◾\",fitzpatrick_scale:false,category:\"symbols\"},white_medium_small_square:{keywords:[\"shape\",\"stone\",\"icon\",\"button\"],char:\"◽\",fitzpatrick_scale:false,category:\"symbols\"},black_square_button:{keywords:[\"shape\",\"input\",\"frame\"],char:\"🔲\",fitzpatrick_scale:false,category:\"symbols\"},white_square_button:{keywords:[\"shape\",\"input\"],char:\"🔳\",fitzpatrick_scale:false,category:\"symbols\"},speaker:{keywords:[\"sound\",\"volume\",\"silence\",\"broadcast\"],char:\"🔈\",fitzpatrick_scale:false,category:\"symbols\"},sound:{keywords:[\"volume\",\"speaker\",\"broadcast\"],char:\"🔉\",fitzpatrick_scale:false,category:\"symbols\"},loud_sound:{keywords:[\"volume\",\"noise\",\"noisy\",\"speaker\",\"broadcast\"],char:\"🔊\",fitzpatrick_scale:false,category:\"symbols\"},mute:{keywords:[\"sound\",\"volume\",\"silence\",\"quiet\"],char:\"🔇\",fitzpatrick_scale:false,category:\"symbols\"},mega:{keywords:[\"sound\",\"speaker\",\"volume\"],char:\"📣\",fitzpatrick_scale:false,category:\"symbols\"},loudspeaker:{keywords:[\"volume\",\"sound\"],char:\"📢\",fitzpatrick_scale:false,category:\"symbols\"},bell:{keywords:[\"sound\",\"notification\",\"christmas\",\"xmas\",\"chime\"],char:\"🔔\",fitzpatrick_scale:false,category:\"symbols\"},no_bell:{keywords:[\"sound\",\"volume\",\"mute\",\"quiet\",\"silent\"],char:\"🔕\",fitzpatrick_scale:false,category:\"symbols\"},black_joker:{keywords:[\"poker\",\"cards\",\"game\",\"play\",\"magic\"],char:\"🃏\",fitzpatrick_scale:false,category:\"symbols\"},mahjong:{keywords:[\"game\",\"play\",\"chinese\",\"kanji\"],char:\"🀄\",fitzpatrick_scale:false,category:\"symbols\"},spades:{keywords:[\"poker\",\"cards\",\"suits\",\"magic\"],char:\"♠️\",fitzpatrick_scale:false,category:\"symbols\"},clubs:{keywords:[\"poker\",\"cards\",\"magic\",\"suits\"],char:\"♣️\",fitzpatrick_scale:false,category:\"symbols\"},hearts:{keywords:[\"poker\",\"cards\",\"magic\",\"suits\"],char:\"♥️\",fitzpatrick_scale:false,category:\"symbols\"},diamonds:{keywords:[\"poker\",\"cards\",\"magic\",\"suits\"],char:\"♦️\",fitzpatrick_scale:false,category:\"symbols\"},flower_playing_cards:{keywords:[\"game\",\"sunset\",\"red\"],char:\"🎴\",fitzpatrick_scale:false,category:\"symbols\"},thought_balloon:{keywords:[\"bubble\",\"cloud\",\"speech\",\"thinking\",\"dream\"],char:\"💭\",fitzpatrick_scale:false,category:\"symbols\"},right_anger_bubble:{keywords:[\"caption\",\"speech\",\"thinking\",\"mad\"],char:\"🗯\",fitzpatrick_scale:false,category:\"symbols\"},speech_balloon:{keywords:[\"bubble\",\"words\",\"message\",\"talk\",\"chatting\"],char:\"💬\",fitzpatrick_scale:false,category:\"symbols\"},left_speech_bubble:{keywords:[\"words\",\"message\",\"talk\",\"chatting\"],char:\"🗨\",fitzpatrick_scale:false,category:\"symbols\"},clock1:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕐\",fitzpatrick_scale:false,category:\"symbols\"},clock2:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕑\",fitzpatrick_scale:false,category:\"symbols\"},clock3:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕒\",fitzpatrick_scale:false,category:\"symbols\"},clock4:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕓\",fitzpatrick_scale:false,category:\"symbols\"},clock5:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕔\",fitzpatrick_scale:false,category:\"symbols\"},clock6:{keywords:[\"time\",\"late\",\"early\",\"schedule\",\"dawn\",\"dusk\"],char:\"🕕\",fitzpatrick_scale:false,category:\"symbols\"},clock7:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕖\",fitzpatrick_scale:false,category:\"symbols\"},clock8:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕗\",fitzpatrick_scale:false,category:\"symbols\"},clock9:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕘\",fitzpatrick_scale:false,category:\"symbols\"},clock10:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕙\",fitzpatrick_scale:false,category:\"symbols\"},clock11:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕚\",fitzpatrick_scale:false,category:\"symbols\"},clock12:{keywords:[\"time\",\"noon\",\"midnight\",\"midday\",\"late\",\"early\",\"schedule\"],char:\"🕛\",fitzpatrick_scale:false,category:\"symbols\"},clock130:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕜\",fitzpatrick_scale:false,category:\"symbols\"},clock230:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕝\",fitzpatrick_scale:false,category:\"symbols\"},clock330:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕞\",fitzpatrick_scale:false,category:\"symbols\"},clock430:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕟\",fitzpatrick_scale:false,category:\"symbols\"},clock530:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕠\",fitzpatrick_scale:false,category:\"symbols\"},clock630:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕡\",fitzpatrick_scale:false,category:\"symbols\"},clock730:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕢\",fitzpatrick_scale:false,category:\"symbols\"},clock830:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕣\",fitzpatrick_scale:false,category:\"symbols\"},clock930:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕤\",fitzpatrick_scale:false,category:\"symbols\"},clock1030:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕥\",fitzpatrick_scale:false,category:\"symbols\"},clock1130:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕦\",fitzpatrick_scale:false,category:\"symbols\"},clock1230:{keywords:[\"time\",\"late\",\"early\",\"schedule\"],char:\"🕧\",fitzpatrick_scale:false,category:\"symbols\"},afghanistan:{keywords:[\"af\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇫\",fitzpatrick_scale:false,category:\"flags\"},aland_islands:{keywords:[\"Åland\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇽\",fitzpatrick_scale:false,category:\"flags\"},albania:{keywords:[\"al\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇱\",fitzpatrick_scale:false,category:\"flags\"},algeria:{keywords:[\"dz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇩🇿\",fitzpatrick_scale:false,category:\"flags\"},american_samoa:{keywords:[\"american\",\"ws\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇸\",fitzpatrick_scale:false,category:\"flags\"},andorra:{keywords:[\"ad\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇩\",fitzpatrick_scale:false,category:\"flags\"},angola:{keywords:[\"ao\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇴\",fitzpatrick_scale:false,category:\"flags\"},anguilla:{keywords:[\"ai\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇮\",fitzpatrick_scale:false,category:\"flags\"},antarctica:{keywords:[\"aq\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇶\",fitzpatrick_scale:false,category:\"flags\"},antigua_barbuda:{keywords:[\"antigua\",\"barbuda\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇬\",fitzpatrick_scale:false,category:\"flags\"},argentina:{keywords:[\"ar\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇷\",fitzpatrick_scale:false,category:\"flags\"},armenia:{keywords:[\"am\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇲\",fitzpatrick_scale:false,category:\"flags\"},aruba:{keywords:[\"aw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇼\",fitzpatrick_scale:false,category:\"flags\"},australia:{keywords:[\"au\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇺\",fitzpatrick_scale:false,category:\"flags\"},austria:{keywords:[\"at\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇹\",fitzpatrick_scale:false,category:\"flags\"},azerbaijan:{keywords:[\"az\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇿\",fitzpatrick_scale:false,category:\"flags\"},bahamas:{keywords:[\"bs\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇸\",fitzpatrick_scale:false,category:\"flags\"},bahrain:{keywords:[\"bh\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇭\",fitzpatrick_scale:false,category:\"flags\"},bangladesh:{keywords:[\"bd\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇩\",fitzpatrick_scale:false,category:\"flags\"},barbados:{keywords:[\"bb\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇧\",fitzpatrick_scale:false,category:\"flags\"},belarus:{keywords:[\"by\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇾\",fitzpatrick_scale:false,category:\"flags\"},belgium:{keywords:[\"be\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇪\",fitzpatrick_scale:false,category:\"flags\"},belize:{keywords:[\"bz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇿\",fitzpatrick_scale:false,category:\"flags\"},benin:{keywords:[\"bj\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇯\",fitzpatrick_scale:false,category:\"flags\"},bermuda:{keywords:[\"bm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇲\",fitzpatrick_scale:false,category:\"flags\"},bhutan:{keywords:[\"bt\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇹\",fitzpatrick_scale:false,category:\"flags\"},bolivia:{keywords:[\"bo\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇴\",fitzpatrick_scale:false,category:\"flags\"},caribbean_netherlands:{keywords:[\"bonaire\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇶\",fitzpatrick_scale:false,category:\"flags\"},bosnia_herzegovina:{keywords:[\"bosnia\",\"herzegovina\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇦\",fitzpatrick_scale:false,category:\"flags\"},botswana:{keywords:[\"bw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇼\",fitzpatrick_scale:false,category:\"flags\"},brazil:{keywords:[\"br\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇷\",fitzpatrick_scale:false,category:\"flags\"},british_indian_ocean_territory:{keywords:[\"british\",\"indian\",\"ocean\",\"territory\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇴\",fitzpatrick_scale:false,category:\"flags\"},british_virgin_islands:{keywords:[\"british\",\"virgin\",\"islands\",\"bvi\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇬\",fitzpatrick_scale:false,category:\"flags\"},brunei:{keywords:[\"bn\",\"darussalam\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇳\",fitzpatrick_scale:false,category:\"flags\"},bulgaria:{keywords:[\"bg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇬\",fitzpatrick_scale:false,category:\"flags\"},burkina_faso:{keywords:[\"burkina\",\"faso\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇫\",fitzpatrick_scale:false,category:\"flags\"},burundi:{keywords:[\"bi\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇮\",fitzpatrick_scale:false,category:\"flags\"},cape_verde:{keywords:[\"cabo\",\"verde\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇻\",fitzpatrick_scale:false,category:\"flags\"},cambodia:{keywords:[\"kh\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇭\",fitzpatrick_scale:false,category:\"flags\"},cameroon:{keywords:[\"cm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇲\",fitzpatrick_scale:false,category:\"flags\"},canada:{keywords:[\"ca\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇦\",fitzpatrick_scale:false,category:\"flags\"},canary_islands:{keywords:[\"canary\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇨\",fitzpatrick_scale:false,category:\"flags\"},cayman_islands:{keywords:[\"cayman\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇾\",fitzpatrick_scale:false,category:\"flags\"},central_african_republic:{keywords:[\"central\",\"african\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇫\",fitzpatrick_scale:false,category:\"flags\"},chad:{keywords:[\"td\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇩\",fitzpatrick_scale:false,category:\"flags\"},chile:{keywords:[\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇱\",fitzpatrick_scale:false,category:\"flags\"},cn:{keywords:[\"china\",\"chinese\",\"prc\",\"flag\",\"country\",\"nation\",\"banner\"],char:\"🇨🇳\",fitzpatrick_scale:false,category:\"flags\"},christmas_island:{keywords:[\"christmas\",\"island\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇽\",fitzpatrick_scale:false,category:\"flags\"},cocos_islands:{keywords:[\"cocos\",\"keeling\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇨\",fitzpatrick_scale:false,category:\"flags\"},colombia:{keywords:[\"co\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇴\",fitzpatrick_scale:false,category:\"flags\"},comoros:{keywords:[\"km\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇲\",fitzpatrick_scale:false,category:\"flags\"},congo_brazzaville:{keywords:[\"congo\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇬\",fitzpatrick_scale:false,category:\"flags\"},congo_kinshasa:{keywords:[\"congo\",\"democratic\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇩\",fitzpatrick_scale:false,category:\"flags\"},cook_islands:{keywords:[\"cook\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇰\",fitzpatrick_scale:false,category:\"flags\"},costa_rica:{keywords:[\"costa\",\"rica\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇷\",fitzpatrick_scale:false,category:\"flags\"},croatia:{keywords:[\"hr\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇭🇷\",fitzpatrick_scale:false,category:\"flags\"},cuba:{keywords:[\"cu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇺\",fitzpatrick_scale:false,category:\"flags\"},curacao:{keywords:[\"curaçao\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇼\",fitzpatrick_scale:false,category:\"flags\"},cyprus:{keywords:[\"cy\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇾\",fitzpatrick_scale:false,category:\"flags\"},czech_republic:{keywords:[\"cz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇿\",fitzpatrick_scale:false,category:\"flags\"},denmark:{keywords:[\"dk\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇩🇰\",fitzpatrick_scale:false,category:\"flags\"},djibouti:{keywords:[\"dj\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇩🇯\",fitzpatrick_scale:false,category:\"flags\"},dominica:{keywords:[\"dm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇩🇲\",fitzpatrick_scale:false,category:\"flags\"},dominican_republic:{keywords:[\"dominican\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇩🇴\",fitzpatrick_scale:false,category:\"flags\"},ecuador:{keywords:[\"ec\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇨\",fitzpatrick_scale:false,category:\"flags\"},egypt:{keywords:[\"eg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇬\",fitzpatrick_scale:false,category:\"flags\"},el_salvador:{keywords:[\"el\",\"salvador\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇻\",fitzpatrick_scale:false,category:\"flags\"},equatorial_guinea:{keywords:[\"equatorial\",\"gn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇶\",fitzpatrick_scale:false,category:\"flags\"},eritrea:{keywords:[\"er\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇷\",fitzpatrick_scale:false,category:\"flags\"},estonia:{keywords:[\"ee\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇪\",fitzpatrick_scale:false,category:\"flags\"},ethiopia:{keywords:[\"et\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇹\",fitzpatrick_scale:false,category:\"flags\"},eu:{keywords:[\"european\",\"union\",\"flag\",\"banner\"],char:\"🇪🇺\",fitzpatrick_scale:false,category:\"flags\"},falkland_islands:{keywords:[\"falkland\",\"islands\",\"malvinas\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇫🇰\",fitzpatrick_scale:false,category:\"flags\"},faroe_islands:{keywords:[\"faroe\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇫🇴\",fitzpatrick_scale:false,category:\"flags\"},fiji:{keywords:[\"fj\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇫🇯\",fitzpatrick_scale:false,category:\"flags\"},finland:{keywords:[\"fi\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇫🇮\",fitzpatrick_scale:false,category:\"flags\"},fr:{keywords:[\"banner\",\"flag\",\"nation\",\"france\",\"french\",\"country\"],char:\"🇫🇷\",fitzpatrick_scale:false,category:\"flags\"},french_guiana:{keywords:[\"french\",\"guiana\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇫\",fitzpatrick_scale:false,category:\"flags\"},french_polynesia:{keywords:[\"french\",\"polynesia\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇫\",fitzpatrick_scale:false,category:\"flags\"},french_southern_territories:{keywords:[\"french\",\"southern\",\"territories\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇫\",fitzpatrick_scale:false,category:\"flags\"},gabon:{keywords:[\"ga\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇦\",fitzpatrick_scale:false,category:\"flags\"},gambia:{keywords:[\"gm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇲\",fitzpatrick_scale:false,category:\"flags\"},georgia:{keywords:[\"ge\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇪\",fitzpatrick_scale:false,category:\"flags\"},de:{keywords:[\"german\",\"nation\",\"flag\",\"country\",\"banner\"],char:\"🇩🇪\",fitzpatrick_scale:false,category:\"flags\"},ghana:{keywords:[\"gh\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇭\",fitzpatrick_scale:false,category:\"flags\"},gibraltar:{keywords:[\"gi\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇮\",fitzpatrick_scale:false,category:\"flags\"},greece:{keywords:[\"gr\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇷\",fitzpatrick_scale:false,category:\"flags\"},greenland:{keywords:[\"gl\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇱\",fitzpatrick_scale:false,category:\"flags\"},grenada:{keywords:[\"gd\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇩\",fitzpatrick_scale:false,category:\"flags\"},guadeloupe:{keywords:[\"gp\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇵\",fitzpatrick_scale:false,category:\"flags\"},guam:{keywords:[\"gu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇺\",fitzpatrick_scale:false,category:\"flags\"},guatemala:{keywords:[\"gt\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇹\",fitzpatrick_scale:false,category:\"flags\"},guernsey:{keywords:[\"gg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇬\",fitzpatrick_scale:false,category:\"flags\"},guinea:{keywords:[\"gn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇳\",fitzpatrick_scale:false,category:\"flags\"},guinea_bissau:{keywords:[\"gw\",\"bissau\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇼\",fitzpatrick_scale:false,category:\"flags\"},guyana:{keywords:[\"gy\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇾\",fitzpatrick_scale:false,category:\"flags\"},haiti:{keywords:[\"ht\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇭🇹\",fitzpatrick_scale:false,category:\"flags\"},honduras:{keywords:[\"hn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇭🇳\",fitzpatrick_scale:false,category:\"flags\"},hong_kong:{keywords:[\"hong\",\"kong\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇭🇰\",fitzpatrick_scale:false,category:\"flags\"},hungary:{keywords:[\"hu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇭🇺\",fitzpatrick_scale:false,category:\"flags\"},iceland:{keywords:[\"is\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇸\",fitzpatrick_scale:false,category:\"flags\"},india:{keywords:[\"in\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇳\",fitzpatrick_scale:false,category:\"flags\"},indonesia:{keywords:[\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇩\",fitzpatrick_scale:false,category:\"flags\"},iran:{keywords:[\"iran,\",\"islamic\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇷\",fitzpatrick_scale:false,category:\"flags\"},iraq:{keywords:[\"iq\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇶\",fitzpatrick_scale:false,category:\"flags\"},ireland:{keywords:[\"ie\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇪\",fitzpatrick_scale:false,category:\"flags\"},isle_of_man:{keywords:[\"isle\",\"man\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇲\",fitzpatrick_scale:false,category:\"flags\"},israel:{keywords:[\"il\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇱\",fitzpatrick_scale:false,category:\"flags\"},it:{keywords:[\"italy\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇮🇹\",fitzpatrick_scale:false,category:\"flags\"},cote_divoire:{keywords:[\"ivory\",\"coast\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇮\",fitzpatrick_scale:false,category:\"flags\"},jamaica:{keywords:[\"jm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇯🇲\",fitzpatrick_scale:false,category:\"flags\"},jp:{keywords:[\"japanese\",\"nation\",\"flag\",\"country\",\"banner\"],char:\"🇯🇵\",fitzpatrick_scale:false,category:\"flags\"},jersey:{keywords:[\"je\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇯🇪\",fitzpatrick_scale:false,category:\"flags\"},jordan:{keywords:[\"jo\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇯🇴\",fitzpatrick_scale:false,category:\"flags\"},kazakhstan:{keywords:[\"kz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇿\",fitzpatrick_scale:false,category:\"flags\"},kenya:{keywords:[\"ke\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇪\",fitzpatrick_scale:false,category:\"flags\"},kiribati:{keywords:[\"ki\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇮\",fitzpatrick_scale:false,category:\"flags\"},kosovo:{keywords:[\"xk\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇽🇰\",fitzpatrick_scale:false,category:\"flags\"},kuwait:{keywords:[\"kw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇼\",fitzpatrick_scale:false,category:\"flags\"},kyrgyzstan:{keywords:[\"kg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇬\",fitzpatrick_scale:false,category:\"flags\"},laos:{keywords:[\"lao\",\"democratic\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇦\",fitzpatrick_scale:false,category:\"flags\"},latvia:{keywords:[\"lv\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇻\",fitzpatrick_scale:false,category:\"flags\"},lebanon:{keywords:[\"lb\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇧\",fitzpatrick_scale:false,category:\"flags\"},lesotho:{keywords:[\"ls\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇸\",fitzpatrick_scale:false,category:\"flags\"},liberia:{keywords:[\"lr\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇷\",fitzpatrick_scale:false,category:\"flags\"},libya:{keywords:[\"ly\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇾\",fitzpatrick_scale:false,category:\"flags\"},liechtenstein:{keywords:[\"li\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇮\",fitzpatrick_scale:false,category:\"flags\"},lithuania:{keywords:[\"lt\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇹\",fitzpatrick_scale:false,category:\"flags\"},luxembourg:{keywords:[\"lu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇺\",fitzpatrick_scale:false,category:\"flags\"},macau:{keywords:[\"macao\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇴\",fitzpatrick_scale:false,category:\"flags\"},macedonia:{keywords:[\"macedonia,\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇰\",fitzpatrick_scale:false,category:\"flags\"},madagascar:{keywords:[\"mg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇬\",fitzpatrick_scale:false,category:\"flags\"},malawi:{keywords:[\"mw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇼\",fitzpatrick_scale:false,category:\"flags\"},malaysia:{keywords:[\"my\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇾\",fitzpatrick_scale:false,category:\"flags\"},maldives:{keywords:[\"mv\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇻\",fitzpatrick_scale:false,category:\"flags\"},mali:{keywords:[\"ml\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇱\",fitzpatrick_scale:false,category:\"flags\"},malta:{keywords:[\"mt\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇹\",fitzpatrick_scale:false,category:\"flags\"},marshall_islands:{keywords:[\"marshall\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇭\",fitzpatrick_scale:false,category:\"flags\"},martinique:{keywords:[\"mq\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇶\",fitzpatrick_scale:false,category:\"flags\"},mauritania:{keywords:[\"mr\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇷\",fitzpatrick_scale:false,category:\"flags\"},mauritius:{keywords:[\"mu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇺\",fitzpatrick_scale:false,category:\"flags\"},mayotte:{keywords:[\"yt\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇾🇹\",fitzpatrick_scale:false,category:\"flags\"},mexico:{keywords:[\"mx\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇽\",fitzpatrick_scale:false,category:\"flags\"},micronesia:{keywords:[\"micronesia,\",\"federated\",\"states\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇫🇲\",fitzpatrick_scale:false,category:\"flags\"},moldova:{keywords:[\"moldova,\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇩\",fitzpatrick_scale:false,category:\"flags\"},monaco:{keywords:[\"mc\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇨\",fitzpatrick_scale:false,category:\"flags\"},mongolia:{keywords:[\"mn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇳\",fitzpatrick_scale:false,category:\"flags\"},montenegro:{keywords:[\"me\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇪\",fitzpatrick_scale:false,category:\"flags\"},montserrat:{keywords:[\"ms\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇸\",fitzpatrick_scale:false,category:\"flags\"},morocco:{keywords:[\"ma\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇦\",fitzpatrick_scale:false,category:\"flags\"},mozambique:{keywords:[\"mz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇿\",fitzpatrick_scale:false,category:\"flags\"},myanmar:{keywords:[\"mm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇲\",fitzpatrick_scale:false,category:\"flags\"},namibia:{keywords:[\"na\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇦\",fitzpatrick_scale:false,category:\"flags\"},nauru:{keywords:[\"nr\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇷\",fitzpatrick_scale:false,category:\"flags\"},nepal:{keywords:[\"np\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇵\",fitzpatrick_scale:false,category:\"flags\"},netherlands:{keywords:[\"nl\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇱\",fitzpatrick_scale:false,category:\"flags\"},new_caledonia:{keywords:[\"new\",\"caledonia\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇨\",fitzpatrick_scale:false,category:\"flags\"},new_zealand:{keywords:[\"new\",\"zealand\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇿\",fitzpatrick_scale:false,category:\"flags\"},nicaragua:{keywords:[\"ni\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇮\",fitzpatrick_scale:false,category:\"flags\"},niger:{keywords:[\"ne\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇪\",fitzpatrick_scale:false,category:\"flags\"},nigeria:{keywords:[\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇬\",fitzpatrick_scale:false,category:\"flags\"},niue:{keywords:[\"nu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇺\",fitzpatrick_scale:false,category:\"flags\"},norfolk_island:{keywords:[\"norfolk\",\"island\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇫\",fitzpatrick_scale:false,category:\"flags\"},northern_mariana_islands:{keywords:[\"northern\",\"mariana\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇲🇵\",fitzpatrick_scale:false,category:\"flags\"},north_korea:{keywords:[\"north\",\"korea\",\"nation\",\"flag\",\"country\",\"banner\"],char:\"🇰🇵\",fitzpatrick_scale:false,category:\"flags\"},norway:{keywords:[\"no\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇳🇴\",fitzpatrick_scale:false,category:\"flags\"},oman:{keywords:[\"om_symbol\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇴🇲\",fitzpatrick_scale:false,category:\"flags\"},pakistan:{keywords:[\"pk\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇰\",fitzpatrick_scale:false,category:\"flags\"},palau:{keywords:[\"pw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇼\",fitzpatrick_scale:false,category:\"flags\"},palestinian_territories:{keywords:[\"palestine\",\"palestinian\",\"territories\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇸\",fitzpatrick_scale:false,category:\"flags\"},panama:{keywords:[\"pa\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇦\",fitzpatrick_scale:false,category:\"flags\"},papua_new_guinea:{keywords:[\"papua\",\"new\",\"guinea\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇬\",fitzpatrick_scale:false,category:\"flags\"},paraguay:{keywords:[\"py\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇾\",fitzpatrick_scale:false,category:\"flags\"},peru:{keywords:[\"pe\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇪\",fitzpatrick_scale:false,category:\"flags\"},philippines:{keywords:[\"ph\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇭\",fitzpatrick_scale:false,category:\"flags\"},pitcairn_islands:{keywords:[\"pitcairn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇳\",fitzpatrick_scale:false,category:\"flags\"},poland:{keywords:[\"pl\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇱\",fitzpatrick_scale:false,category:\"flags\"},portugal:{keywords:[\"pt\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇹\",fitzpatrick_scale:false,category:\"flags\"},puerto_rico:{keywords:[\"puerto\",\"rico\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇷\",fitzpatrick_scale:false,category:\"flags\"},qatar:{keywords:[\"qa\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇶🇦\",fitzpatrick_scale:false,category:\"flags\"},reunion:{keywords:[\"réunion\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇷🇪\",fitzpatrick_scale:false,category:\"flags\"},romania:{keywords:[\"ro\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇷🇴\",fitzpatrick_scale:false,category:\"flags\"},ru:{keywords:[\"russian\",\"federation\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇷🇺\",fitzpatrick_scale:false,category:\"flags\"},rwanda:{keywords:[\"rw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇷🇼\",fitzpatrick_scale:false,category:\"flags\"},st_barthelemy:{keywords:[\"saint\",\"barthélemy\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇧🇱\",fitzpatrick_scale:false,category:\"flags\"},st_helena:{keywords:[\"saint\",\"helena\",\"ascension\",\"tristan\",\"cunha\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇭\",fitzpatrick_scale:false,category:\"flags\"},st_kitts_nevis:{keywords:[\"saint\",\"kitts\",\"nevis\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇰🇳\",fitzpatrick_scale:false,category:\"flags\"},st_lucia:{keywords:[\"saint\",\"lucia\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇨\",fitzpatrick_scale:false,category:\"flags\"},st_pierre_miquelon:{keywords:[\"saint\",\"pierre\",\"miquelon\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇵🇲\",fitzpatrick_scale:false,category:\"flags\"},st_vincent_grenadines:{keywords:[\"saint\",\"vincent\",\"grenadines\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇨\",fitzpatrick_scale:false,category:\"flags\"},samoa:{keywords:[\"ws\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇼🇸\",fitzpatrick_scale:false,category:\"flags\"},san_marino:{keywords:[\"san\",\"marino\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇲\",fitzpatrick_scale:false,category:\"flags\"},sao_tome_principe:{keywords:[\"sao\",\"tome\",\"principe\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇹\",fitzpatrick_scale:false,category:\"flags\"},saudi_arabia:{keywords:[\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇦\",fitzpatrick_scale:false,category:\"flags\"},senegal:{keywords:[\"sn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇳\",fitzpatrick_scale:false,category:\"flags\"},serbia:{keywords:[\"rs\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇷🇸\",fitzpatrick_scale:false,category:\"flags\"},seychelles:{keywords:[\"sc\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇨\",fitzpatrick_scale:false,category:\"flags\"},sierra_leone:{keywords:[\"sierra\",\"leone\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇱\",fitzpatrick_scale:false,category:\"flags\"},singapore:{keywords:[\"sg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇬\",fitzpatrick_scale:false,category:\"flags\"},sint_maarten:{keywords:[\"sint\",\"maarten\",\"dutch\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇽\",fitzpatrick_scale:false,category:\"flags\"},slovakia:{keywords:[\"sk\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇰\",fitzpatrick_scale:false,category:\"flags\"},slovenia:{keywords:[\"si\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇮\",fitzpatrick_scale:false,category:\"flags\"},solomon_islands:{keywords:[\"solomon\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇧\",fitzpatrick_scale:false,category:\"flags\"},somalia:{keywords:[\"so\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇴\",fitzpatrick_scale:false,category:\"flags\"},south_africa:{keywords:[\"south\",\"africa\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇿🇦\",fitzpatrick_scale:false,category:\"flags\"},south_georgia_south_sandwich_islands:{keywords:[\"south\",\"georgia\",\"sandwich\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇬🇸\",fitzpatrick_scale:false,category:\"flags\"},kr:{keywords:[\"south\",\"korea\",\"nation\",\"flag\",\"country\",\"banner\"],char:\"🇰🇷\",fitzpatrick_scale:false,category:\"flags\"},south_sudan:{keywords:[\"south\",\"sd\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇸\",fitzpatrick_scale:false,category:\"flags\"},es:{keywords:[\"spain\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇸\",fitzpatrick_scale:false,category:\"flags\"},sri_lanka:{keywords:[\"sri\",\"lanka\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇱🇰\",fitzpatrick_scale:false,category:\"flags\"},sudan:{keywords:[\"sd\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇩\",fitzpatrick_scale:false,category:\"flags\"},suriname:{keywords:[\"sr\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇷\",fitzpatrick_scale:false,category:\"flags\"},swaziland:{keywords:[\"sz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇿\",fitzpatrick_scale:false,category:\"flags\"},sweden:{keywords:[\"se\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇪\",fitzpatrick_scale:false,category:\"flags\"},switzerland:{keywords:[\"ch\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇨🇭\",fitzpatrick_scale:false,category:\"flags\"},syria:{keywords:[\"syrian\",\"arab\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇸🇾\",fitzpatrick_scale:false,category:\"flags\"},taiwan:{keywords:[\"tw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇼\",fitzpatrick_scale:false,category:\"flags\"},tajikistan:{keywords:[\"tj\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇯\",fitzpatrick_scale:false,category:\"flags\"},tanzania:{keywords:[\"tanzania,\",\"united\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇿\",fitzpatrick_scale:false,category:\"flags\"},thailand:{keywords:[\"th\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇭\",fitzpatrick_scale:false,category:\"flags\"},timor_leste:{keywords:[\"timor\",\"leste\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇱\",fitzpatrick_scale:false,category:\"flags\"},togo:{keywords:[\"tg\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇬\",fitzpatrick_scale:false,category:\"flags\"},tokelau:{keywords:[\"tk\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇰\",fitzpatrick_scale:false,category:\"flags\"},tonga:{keywords:[\"to\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇴\",fitzpatrick_scale:false,category:\"flags\"},trinidad_tobago:{keywords:[\"trinidad\",\"tobago\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇹\",fitzpatrick_scale:false,category:\"flags\"},tunisia:{keywords:[\"tn\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇳\",fitzpatrick_scale:false,category:\"flags\"},tr:{keywords:[\"turkey\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇷\",fitzpatrick_scale:false,category:\"flags\"},turkmenistan:{keywords:[\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇲\",fitzpatrick_scale:false,category:\"flags\"},turks_caicos_islands:{keywords:[\"turks\",\"caicos\",\"islands\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇨\",fitzpatrick_scale:false,category:\"flags\"},tuvalu:{keywords:[\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇹🇻\",fitzpatrick_scale:false,category:\"flags\"},uganda:{keywords:[\"ug\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇺🇬\",fitzpatrick_scale:false,category:\"flags\"},ukraine:{keywords:[\"ua\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇺🇦\",fitzpatrick_scale:false,category:\"flags\"},united_arab_emirates:{keywords:[\"united\",\"arab\",\"emirates\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇦🇪\",fitzpatrick_scale:false,category:\"flags\"},uk:{keywords:[\"united\",\"kingdom\",\"great\",\"britain\",\"northern\",\"ireland\",\"flag\",\"nation\",\"country\",\"banner\",\"british\",\"UK\",\"english\",\"england\",\"union jack\"],char:\"🇬🇧\",fitzpatrick_scale:false,category:\"flags\"},england:{keywords:[\"flag\",\"english\"],char:\"🏴󠁧󠁢󠁥󠁮󠁧󠁿\",fitzpatrick_scale:false,category:\"flags\"},scotland:{keywords:[\"flag\",\"scottish\"],char:\"🏴󠁧󠁢󠁳󠁣󠁴󠁿\",fitzpatrick_scale:false,category:\"flags\"},wales:{keywords:[\"flag\",\"welsh\"],char:\"🏴󠁧󠁢󠁷󠁬󠁳󠁿\",fitzpatrick_scale:false,category:\"flags\"},us:{keywords:[\"united\",\"states\",\"america\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇺🇸\",fitzpatrick_scale:false,category:\"flags\"},us_virgin_islands:{keywords:[\"virgin\",\"islands\",\"us\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇮\",fitzpatrick_scale:false,category:\"flags\"},uruguay:{keywords:[\"uy\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇺🇾\",fitzpatrick_scale:false,category:\"flags\"},uzbekistan:{keywords:[\"uz\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇺🇿\",fitzpatrick_scale:false,category:\"flags\"},vanuatu:{keywords:[\"vu\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇺\",fitzpatrick_scale:false,category:\"flags\"},vatican_city:{keywords:[\"vatican\",\"city\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇦\",fitzpatrick_scale:false,category:\"flags\"},venezuela:{keywords:[\"ve\",\"bolivarian\",\"republic\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇪\",fitzpatrick_scale:false,category:\"flags\"},vietnam:{keywords:[\"viet\",\"nam\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇻🇳\",fitzpatrick_scale:false,category:\"flags\"},wallis_futuna:{keywords:[\"wallis\",\"futuna\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇼🇫\",fitzpatrick_scale:false,category:\"flags\"},western_sahara:{keywords:[\"western\",\"sahara\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇪🇭\",fitzpatrick_scale:false,category:\"flags\"},yemen:{keywords:[\"ye\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇾🇪\",fitzpatrick_scale:false,category:\"flags\"},zambia:{keywords:[\"zm\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇿🇲\",fitzpatrick_scale:false,category:\"flags\"},zimbabwe:{keywords:[\"zw\",\"flag\",\"nation\",\"country\",\"banner\"],char:\"🇿🇼\",fitzpatrick_scale:false,category:\"flags\"},united_nations:{keywords:[\"un\",\"flag\",\"banner\"],char:\"🇺🇳\",fitzpatrick_scale:false,category:\"flags\"},pirate_flag:{keywords:[\"skull\",\"crossbones\",\"flag\",\"banner\"],char:\"🏴‍☠️\",fitzpatrick_scale:false,category:\"flags\"}});","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const eq = t => a => t === a;\n const isNull = eq(null);\n const isUndefined = eq(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n\n const noop = () => {\n };\n const constant = value => {\n return () => {\n return value;\n };\n };\n const never = constant(false);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map$1 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const insertEmoticon = (editor, ch) => {\n editor.insertContent(ch);\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n\n const shallow = (old, nu) => {\n return nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const merge = baseMerge(shallow);\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const value = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const contains = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.Resource');\n\n const DEFAULT_ID = 'tinymce.plugins.emoticons';\n const option = name => editor => editor.options.get(name);\n const register$2 = (editor, pluginUrl) => {\n const registerOption = editor.options.register;\n registerOption('emoticons_database', {\n processor: 'string',\n default: 'emojis'\n });\n registerOption('emoticons_database_url', {\n processor: 'string',\n default: `${ pluginUrl }/js/${ getEmojiDatabase(editor) }${ editor.suffix }.js`\n });\n registerOption('emoticons_database_id', {\n processor: 'string',\n default: DEFAULT_ID\n });\n registerOption('emoticons_append', {\n processor: 'object',\n default: {}\n });\n registerOption('emoticons_images_url', {\n processor: 'string',\n default: 'https://cdnjs.cloudflare.com/ajax/libs/twemoji/15.1.0/72x72/'\n });\n };\n const getEmojiDatabase = option('emoticons_database');\n const getEmojiDatabaseUrl = option('emoticons_database_url');\n const getEmojiDatabaseId = option('emoticons_database_id');\n const getAppendedEmoji = option('emoticons_append');\n const getEmojiImageUrl = option('emoticons_images_url');\n\n const ALL_CATEGORY = 'All';\n const categoryNameMap = {\n symbols: 'Symbols',\n people: 'People',\n animals_and_nature: 'Animals and Nature',\n food_and_drink: 'Food and Drink',\n activity: 'Activity',\n travel_and_places: 'Travel and Places',\n objects: 'Objects',\n flags: 'Flags',\n user: 'User Defined'\n };\n const translateCategory = (categories, name) => has(categories, name) ? categories[name] : name;\n const getUserDefinedEmoji = editor => {\n const userDefinedEmoticons = getAppendedEmoji(editor);\n return map(userDefinedEmoticons, value => ({\n keywords: [],\n category: 'user',\n ...value\n }));\n };\n const initDatabase = (editor, databaseUrl, databaseId) => {\n const categories = value();\n const all = value();\n const emojiImagesUrl = getEmojiImageUrl(editor);\n const getEmoji = lib => {\n if (startsWith(lib.char, ' `src=\"${ emojiImagesUrl }${ url }\"`);\n } else {\n return lib.char;\n }\n };\n const processEmojis = emojis => {\n const cats = {};\n const everything = [];\n each(emojis, (lib, title) => {\n const entry = {\n title,\n keywords: lib.keywords,\n char: getEmoji(lib),\n category: translateCategory(categoryNameMap, lib.category)\n };\n const current = cats[entry.category] !== undefined ? cats[entry.category] : [];\n cats[entry.category] = current.concat([entry]);\n everything.push(entry);\n });\n categories.set(cats);\n all.set(everything);\n };\n editor.on('init', () => {\n global.load(databaseId, databaseUrl).then(emojis => {\n const userEmojis = getUserDefinedEmoji(editor);\n processEmojis(merge(emojis, userEmojis));\n }, err => {\n console.log(`Failed to load emojis: ${ err }`);\n categories.set({});\n all.set([]);\n });\n });\n const listCategory = category => {\n if (category === ALL_CATEGORY) {\n return listAll();\n }\n return categories.get().bind(cats => Optional.from(cats[category])).getOr([]);\n };\n const listAll = () => all.get().getOr([]);\n const listCategories = () => [ALL_CATEGORY].concat(keys(categories.get().getOr({})));\n const waitForLoad = () => {\n if (hasLoaded()) {\n return Promise.resolve(true);\n } else {\n return new Promise((resolve, reject) => {\n let numRetries = 15;\n const interval = setInterval(() => {\n if (hasLoaded()) {\n clearInterval(interval);\n resolve(true);\n } else {\n numRetries--;\n if (numRetries < 0) {\n console.log('Could not load emojis from url: ' + databaseUrl);\n clearInterval(interval);\n reject(false);\n }\n }\n }, 100);\n });\n }\n };\n const hasLoaded = () => categories.isSet() && all.isSet();\n return {\n listCategories,\n hasLoaded,\n waitForLoad,\n listAll,\n listCategory\n };\n };\n\n const emojiMatches = (emoji, lowerCasePattern) => contains(emoji.title.toLowerCase(), lowerCasePattern) || exists(emoji.keywords, k => contains(k.toLowerCase(), lowerCasePattern));\n const emojisFrom = (list, pattern, maxResults) => {\n const matches = [];\n const lowerCasePattern = pattern.toLowerCase();\n const reachedLimit = maxResults.fold(() => never, max => size => size >= max);\n for (let i = 0; i < list.length; i++) {\n if (pattern.length === 0 || emojiMatches(list[i], lowerCasePattern)) {\n matches.push({\n value: list[i].char,\n text: list[i].title,\n icon: list[i].char\n });\n if (reachedLimit(matches.length)) {\n break;\n }\n }\n }\n return matches;\n };\n\n const patternName = 'pattern';\n const open = (editor, database) => {\n const initialState = {\n pattern: '',\n results: emojisFrom(database.listAll(), '', Optional.some(300))\n };\n const currentTab = Cell(ALL_CATEGORY);\n const scan = dialogApi => {\n const dialogData = dialogApi.getData();\n const category = currentTab.get();\n const candidates = database.listCategory(category);\n const results = emojisFrom(candidates, dialogData[patternName], category === ALL_CATEGORY ? Optional.some(300) : Optional.none());\n dialogApi.setData({ results });\n };\n const updateFilter = last(dialogApi => {\n scan(dialogApi);\n }, 200);\n const searchField = {\n label: 'Search',\n type: 'input',\n name: patternName\n };\n const resultsField = {\n type: 'collection',\n name: 'results'\n };\n const getInitialState = () => {\n const body = {\n type: 'tabpanel',\n tabs: map$1(database.listCategories(), cat => ({\n title: cat,\n name: cat,\n items: [\n searchField,\n resultsField\n ]\n }))\n };\n return {\n title: 'Emojis',\n size: 'normal',\n body,\n initialData: initialState,\n onTabChange: (dialogApi, details) => {\n currentTab.set(details.newTabName);\n updateFilter.throttle(dialogApi);\n },\n onChange: updateFilter.throttle,\n onAction: (dialogApi, actionData) => {\n if (actionData.name === 'results') {\n insertEmoticon(editor, actionData.value);\n dialogApi.close();\n }\n },\n buttons: [{\n type: 'cancel',\n text: 'Close',\n primary: true\n }]\n };\n };\n const dialogApi = editor.windowManager.open(getInitialState());\n dialogApi.focus(patternName);\n if (!database.hasLoaded()) {\n dialogApi.block('Loading emojis...');\n database.waitForLoad().then(() => {\n dialogApi.redial(getInitialState());\n updateFilter.throttle(dialogApi);\n dialogApi.focus(patternName);\n dialogApi.unblock();\n }).catch(_err => {\n dialogApi.redial({\n title: 'Emojis',\n body: {\n type: 'panel',\n items: [{\n type: 'alertbanner',\n level: 'error',\n icon: 'warning',\n text: 'Could not load emojis'\n }]\n },\n buttons: [{\n type: 'cancel',\n text: 'Close',\n primary: true\n }],\n initialData: {\n pattern: '',\n results: []\n }\n });\n dialogApi.focus(patternName);\n dialogApi.unblock();\n });\n }\n };\n\n const register$1 = (editor, database) => {\n editor.addCommand('mceEmoticons', () => open(editor, database));\n };\n\n const setup = editor => {\n editor.on('PreInit', () => {\n editor.parser.addAttributeFilter('data-emoticon', nodes => {\n each$1(nodes, node => {\n node.attr('data-mce-resize', 'false');\n node.attr('data-mce-placeholder', '1');\n });\n });\n });\n };\n\n const init = (editor, database) => {\n editor.ui.registry.addAutocompleter('emoticons', {\n trigger: ':',\n columns: 'auto',\n minChars: 2,\n fetch: (pattern, maxResults) => database.waitForLoad().then(() => {\n const candidates = database.listAll();\n return emojisFrom(candidates, pattern, Optional.some(maxResults));\n }),\n onAction: (autocompleteApi, rng, value) => {\n editor.selection.setRng(rng);\n editor.insertContent(value);\n autocompleteApi.hide();\n }\n });\n };\n\n const onSetupEditable = editor => api => {\n const nodeChanged = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n editor.on('NodeChange', nodeChanged);\n nodeChanged();\n return () => {\n editor.off('NodeChange', nodeChanged);\n };\n };\n const register = editor => {\n const onAction = () => editor.execCommand('mceEmoticons');\n editor.ui.registry.addButton('emoticons', {\n tooltip: 'Emojis',\n icon: 'emoji',\n onAction,\n onSetup: onSetupEditable(editor)\n });\n editor.ui.registry.addMenuItem('emoticons', {\n text: 'Emojis...',\n icon: 'emoji',\n onAction,\n onSetup: onSetupEditable(editor)\n });\n };\n\n var Plugin = () => {\n global$1.add('emoticons', (editor, pluginUrl) => {\n register$2(editor, pluginUrl);\n const databaseUrl = getEmojiDatabaseUrl(editor);\n const databaseId = getEmojiDatabaseId(editor);\n const database = initDatabase(editor, databaseUrl, databaseId);\n register$1(editor, database);\n register(editor);\n init(editor, database);\n setup(editor);\n return { getAllEmojis: () => database.waitForLoad().then(() => database.listAll()) };\n });\n };\n\n Plugin();\n\n})();\n","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isArray = isType$1('array');\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n\n const noop = () => {\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant = value => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const never = constant(false);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains$1 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const filter$1 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const groupBy = (xs, f) => {\n if (xs.length === 0) {\n return [];\n } else {\n let wasType = f(xs[0]);\n const r = [];\n let group = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind = (xs, f) => flatten(map(xs, f));\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const get$1 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$1(xs, 0);\n const last = xs => get$1(xs, xs.length - 1);\n const unique = (xs, comparator) => {\n const r = [];\n const isDuplicated = isFunction(comparator) ? x => exists(r, i => comparator(i, x)) : x => contains$1(r, x);\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (!isDuplicated(x)) {\n r.push(x);\n }\n }\n return r;\n };\n\n const is$2 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n\n const COMMENT = 8;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom$1(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom$1(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom$1(node);\n };\n const fromDom$1 = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1);\n const SugarElement = {\n fromHtml,\n fromTag,\n fromText,\n fromDom: fromDom$1,\n fromPoint\n };\n\n const is$1 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n const is = is$1;\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve = (p, scope) => {\n const parts = p.split('.');\n return path(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve(name, scope);\n };\n const getOrDie = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf(x).constructor.name));\n };\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type = element => element.dom.nodeType;\n const isType = t => element => type(element) === t;\n const isComment = element => type(element) === COMMENT || name(element) === '#comment';\n const isHTMLElement = element => isElement$1(element) && isPrototypeOf(element.dom);\n const isElement$1 = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement$1(e) && name(e) === tag;\n\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children = element => map(element.dom.childNodes, SugarElement.fromDom);\n const child = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child(element, 0);\n const lastChild = element => child(element, element.dom.childNodes.length - 1);\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$3 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$2 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$3, scope, predicate, isRoot);\n };\n\n const ancestor$2 = (scope, selector, isRoot) => ancestor$3(scope, e => is$1(e, selector), isRoot);\n const closest$1 = (scope, selector, isRoot) => {\n const is = (element, selector) => is$1(element, selector);\n return ClosestOrAncestor(is, ancestor$2, scope, selector, isRoot);\n };\n\n const closest = target => closest$1(target, '[contenteditable]');\n const isEditable = (element, assumeEditable = false) => {\n if (inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest(element).fold(constant(assumeEditable), editable => getRaw(editable) === 'true');\n }\n };\n const getRaw = element => element.dom.contentEditable;\n\n const before$1 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$1(v, element);\n });\n };\n const prepend = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$1(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n\n const before = (marker, elements) => {\n each$1(elements, x => {\n before$1(marker, x);\n });\n };\n const append = (parent, elements) => {\n each$1(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$1(children(element), rogue => {\n remove(rogue);\n });\n };\n const remove = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n const fromDom = nodes => map(nodes, SugarElement.fromDom);\n\n const keys = Object.keys;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const setAll = (element, attrs) => {\n const dom = element.dom;\n each(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const clone$1 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const clone = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const deep = original => clone(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$1(original);\n setAll(nu, attributes);\n return nu;\n };\n const mutate = (original, tag) => {\n const nu = shallowAs(original, tag);\n after(original, nu);\n const children$1 = children(original);\n append(nu, children$1);\n remove(original);\n return nu;\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const matchNodeName = name => node => isNonNullable(node) && node.nodeName.toLowerCase() === name;\n const matchNodeNames = regex => node => isNonNullable(node) && regex.test(node.nodeName);\n const isTextNode$1 = node => isNonNullable(node) && node.nodeType === 3;\n const isElement = node => isNonNullable(node) && node.nodeType === 1;\n const isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n const isOlUlNode = matchNodeNames(/^(OL|UL)$/);\n const isOlNode = matchNodeName('ol');\n const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n const isDlItemNode = matchNodeNames(/^(DT|DD)$/);\n const isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n const isBr = matchNodeName('br');\n const isFirstChild = node => {\n var _a;\n return ((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === node;\n };\n const isTextBlock = (editor, node) => isNonNullable(node) && node.nodeName in editor.schema.getTextBlockElements();\n const isBlock = (node, blockElements) => isNonNullable(node) && node.nodeName in blockElements;\n const isVoid = (editor, node) => isNonNullable(node) && node.nodeName in editor.schema.getVoidElements();\n const isBogusBr = (dom, node) => {\n if (!isBr(node)) {\n return false;\n }\n return dom.isBlock(node.nextSibling) && !isBr(node.previousSibling);\n };\n const isEmpty$2 = (dom, elm, keepBookmarks) => {\n const empty = dom.isEmpty(elm);\n if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {\n return false;\n }\n return empty;\n };\n const isChildOfBody = (dom, elm) => dom.isChildOf(elm, dom.getRoot());\n\n const option = name => editor => editor.options.get(name);\n const register$3 = editor => {\n const registerOption = editor.options.register;\n registerOption('lists_indent_on_tab', {\n processor: 'boolean',\n default: true\n });\n };\n const shouldIndentOnTab = option('lists_indent_on_tab');\n const getForcedRootBlock = option('forced_root_block');\n const getForcedRootBlockAttrs = option('forced_root_block_attrs');\n\n const createTextBlock = (editor, contentNode, attrs = {}) => {\n const dom = editor.dom;\n const blockElements = editor.schema.getBlockElements();\n const fragment = dom.createFragment();\n const blockName = getForcedRootBlock(editor);\n const blockAttrs = getForcedRootBlockAttrs(editor);\n let node;\n let textBlock;\n let hasContentNode = false;\n textBlock = dom.create(blockName, {\n ...blockAttrs,\n ...attrs.style ? { style: attrs.style } : {}\n });\n if (!isBlock(contentNode.firstChild, blockElements)) {\n fragment.appendChild(textBlock);\n }\n while (node = contentNode.firstChild) {\n const nodeName = node.nodeName;\n if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {\n hasContentNode = true;\n }\n if (isBlock(node, blockElements)) {\n fragment.appendChild(node);\n textBlock = null;\n } else {\n if (!textBlock) {\n textBlock = dom.create(blockName, blockAttrs);\n fragment.appendChild(textBlock);\n }\n textBlock.appendChild(node);\n }\n }\n if (!hasContentNode && textBlock) {\n textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));\n }\n return fragment;\n };\n\n const DOM$2 = global$3.DOM;\n const splitList = (editor, list, li) => {\n const removeAndKeepBookmarks = targetNode => {\n const parent = targetNode.parentNode;\n if (parent) {\n global$2.each(bookmarks, node => {\n parent.insertBefore(node, li.parentNode);\n });\n }\n DOM$2.remove(targetNode);\n };\n const bookmarks = DOM$2.select('span[data-mce-type=\"bookmark\"]', list);\n const newBlock = createTextBlock(editor, li);\n const tmpRng = DOM$2.createRng();\n tmpRng.setStartAfter(li);\n tmpRng.setEndAfter(list);\n const fragment = tmpRng.extractContents();\n for (let node = fragment.firstChild; node; node = node.firstChild) {\n if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {\n DOM$2.remove(node);\n break;\n }\n }\n if (!editor.dom.isEmpty(fragment)) {\n DOM$2.insertAfter(fragment, list);\n }\n DOM$2.insertAfter(newBlock, list);\n const parent = li.parentElement;\n if (parent && isEmpty$2(editor.dom, parent)) {\n removeAndKeepBookmarks(parent);\n }\n DOM$2.remove(li);\n if (isEmpty$2(editor.dom, list)) {\n DOM$2.remove(list);\n }\n };\n\n const isDescriptionDetail = isTag('dd');\n const isDescriptionTerm = isTag('dt');\n const outdentDlItem = (editor, item) => {\n if (isDescriptionDetail(item)) {\n mutate(item, 'dt');\n } else if (isDescriptionTerm(item)) {\n parentElement(item).each(dl => splitList(editor, dl.dom, item.dom));\n }\n };\n const indentDlItem = item => {\n if (isDescriptionTerm(item)) {\n mutate(item, 'dd');\n }\n };\n const dlIndentation = (editor, indentation, dlItems) => {\n if (indentation === 'Indent') {\n each$1(dlItems, indentDlItem);\n } else {\n each$1(dlItems, item => outdentDlItem(editor, item));\n }\n };\n\n const getNormalizedPoint = (container, offset) => {\n if (isTextNode$1(container)) {\n return {\n container,\n offset\n };\n }\n const node = global$6.getNode(container, offset);\n if (isTextNode$1(node)) {\n return {\n container: node,\n offset: offset >= container.childNodes.length ? node.data.length : 0\n };\n } else if (node.previousSibling && isTextNode$1(node.previousSibling)) {\n return {\n container: node.previousSibling,\n offset: node.previousSibling.data.length\n };\n } else if (node.nextSibling && isTextNode$1(node.nextSibling)) {\n return {\n container: node.nextSibling,\n offset: 0\n };\n }\n return {\n container,\n offset\n };\n };\n const normalizeRange = rng => {\n const outRng = rng.cloneRange();\n const rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);\n outRng.setStart(rangeStart.container, rangeStart.offset);\n const rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);\n outRng.setEnd(rangeEnd.container, rangeEnd.offset);\n return outRng;\n };\n\n const listNames = [\n 'OL',\n 'UL',\n 'DL'\n ];\n const listSelector = listNames.join(',');\n const getParentList = (editor, node) => {\n const selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart));\n };\n const isParentListSelected = (parentList, selectedBlocks) => isNonNullable(parentList) && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;\n const findSubLists = parentList => filter$1(parentList.querySelectorAll(listSelector), isListNode);\n const getSelectedSubLists = editor => {\n const parentList = getParentList(editor);\n const selectedBlocks = editor.selection.getSelectedBlocks();\n if (isParentListSelected(parentList, selectedBlocks)) {\n return findSubLists(parentList);\n } else {\n return filter$1(selectedBlocks, elm => {\n return isListNode(elm) && parentList !== elm;\n });\n }\n };\n const findParentListItemsNodes = (editor, elms) => {\n const listItemsElms = global$2.map(elms, elm => {\n const parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListHost(editor, elm));\n return parentLi ? parentLi : elm;\n });\n return unique(listItemsElms);\n };\n const getSelectedListItems = editor => {\n const selectedBlocks = editor.selection.getSelectedBlocks();\n return filter$1(findParentListItemsNodes(editor, selectedBlocks), isListItemNode);\n };\n const getSelectedDlItems = editor => filter$1(getSelectedListItems(editor), isDlItemNode);\n const getClosestEditingHost = (editor, elm) => {\n const parentTableCell = editor.dom.getParents(elm, 'TD,TH');\n return parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();\n };\n const isListHost = (schema, node) => !isListNode(node) && !isListItemNode(node) && exists(listNames, listName => schema.isValidChild(node.nodeName, listName));\n const getClosestListHost = (editor, elm) => {\n const parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock);\n const isNotForcedRootBlock = elm => elm.nodeName.toLowerCase() !== getForcedRootBlock(editor);\n const parentBlock = find(parentBlocks, elm => isNotForcedRootBlock(elm) && isListHost(editor.schema, elm));\n return parentBlock.getOr(editor.getBody());\n };\n const isListInsideAnLiWithFirstAndLastNotListElement = list => parent(list).exists(parent => isListItemNode(parent.dom) && firstChild(parent).exists(firstChild => !isListNode(firstChild.dom)) && lastChild(parent).exists(lastChild => !isListNode(lastChild.dom)));\n const findLastParentListNode = (editor, elm) => {\n const parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListHost(editor, elm));\n return last(parentLists);\n };\n const getSelectedLists = editor => {\n const firstList = findLastParentListNode(editor, editor.selection.getStart());\n const subsequentLists = filter$1(editor.selection.getSelectedBlocks(), isOlUlNode);\n return firstList.toArray().concat(subsequentLists);\n };\n const getParentLists = editor => {\n const elm = editor.selection.getStart();\n return editor.dom.getParents(elm, 'ol,ul', getClosestListHost(editor, elm));\n };\n const getSelectedListRoots = editor => {\n const selectedLists = getSelectedLists(editor);\n const parentLists = getParentLists(editor);\n return find(parentLists, p => isListInsideAnLiWithFirstAndLastNotListElement(SugarElement.fromDom(p))).fold(() => getUniqueListRoots(editor, selectedLists), l => [l]);\n };\n const getUniqueListRoots = (editor, lists) => {\n const listRoots = map(lists, list => findLastParentListNode(editor, list).getOr(list));\n return unique(listRoots);\n };\n\n const isCustomList = list => /\\btox\\-/.test(list.className);\n const inList = (parents, listName) => findUntil(parents, isListNode, isTableCellNode).exists(list => list.nodeName === listName && !isCustomList(list));\n const isWithinNonEditable = (editor, element) => element !== null && !editor.dom.isEditable(element);\n const selectionIsWithinNonEditableList = editor => {\n const parentList = getParentList(editor);\n return isWithinNonEditable(editor, parentList) || !editor.selection.isEditable();\n };\n const isWithinNonEditableList = (editor, element) => {\n const parentList = editor.dom.getParent(element, 'ol,ul,dl');\n return isWithinNonEditable(editor, parentList) || !editor.selection.isEditable();\n };\n const setNodeChangeHandler = (editor, nodeChangeHandler) => {\n const initialNode = editor.selection.getNode();\n nodeChangeHandler({\n parents: editor.dom.getParents(initialNode),\n element: initialNode\n });\n editor.on('NodeChange', nodeChangeHandler);\n return () => editor.off('NodeChange', nodeChangeHandler);\n };\n\n const fromElements = (elements, scope) => {\n const doc = scope || document;\n const fragment = doc.createDocumentFragment();\n each$1(elements, element => {\n fragment.appendChild(element.dom);\n });\n return SugarElement.fromDom(fragment);\n };\n\n const fireListEvent = (editor, action, element) => editor.dispatch('ListMutation', {\n action,\n element\n });\n\n const blank = r => s => s.replace(r, '');\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty$1 = s => !isNotEmpty(s);\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const set = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n\n const isList = el => is(el, 'OL,UL');\n const isListItem = el => is(el, 'LI');\n const hasFirstChildList = el => firstChild(el).exists(isList);\n const hasLastChildList = el => lastChild(el).exists(isList);\n\n const isEntryList = entry => 'listAttributes' in entry;\n const isEntryComment = entry => 'isComment' in entry;\n const isEntryFragment = entry => 'isFragment' in entry;\n const isIndented = entry => entry.depth > 0;\n const isSelected = entry => entry.isSelected;\n const cloneItemContent = li => {\n const children$1 = children(li);\n const content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;\n return map(content, deep);\n };\n const createEntry = (li, depth, isSelected) => parent(li).filter(isElement$1).map(list => ({\n depth,\n dirty: false,\n isSelected,\n content: cloneItemContent(li),\n itemAttributes: clone$1(li),\n listAttributes: clone$1(list),\n listType: name(list),\n isInPreviousLi: false\n }));\n\n const joinSegment = (parent, child) => {\n append$1(parent.item, child.list);\n };\n const joinSegments = segments => {\n for (let i = 1; i < segments.length; i++) {\n joinSegment(segments[i - 1], segments[i]);\n }\n };\n const appendSegments = (head$1, tail) => {\n lift2(last(head$1), head(tail), joinSegment);\n };\n const createSegment = (scope, listType) => {\n const segment = {\n list: SugarElement.fromTag(listType, scope),\n item: SugarElement.fromTag('li', scope)\n };\n append$1(segment.list, segment.item);\n return segment;\n };\n const createSegments = (scope, entry, size) => {\n const segments = [];\n for (let i = 0; i < size; i++) {\n segments.push(createSegment(scope, isEntryList(entry) ? entry.listType : entry.parentListType));\n }\n return segments;\n };\n const populateSegments = (segments, entry) => {\n for (let i = 0; i < segments.length - 1; i++) {\n set(segments[i].item, 'list-style-type', 'none');\n }\n last(segments).each(segment => {\n if (isEntryList(entry)) {\n setAll(segment.list, entry.listAttributes);\n setAll(segment.item, entry.itemAttributes);\n }\n append(segment.item, entry.content);\n });\n };\n const normalizeSegment = (segment, entry) => {\n if (name(segment.list) !== entry.listType) {\n segment.list = mutate(segment.list, entry.listType);\n }\n setAll(segment.list, entry.listAttributes);\n };\n const createItem = (scope, attr, content) => {\n const item = SugarElement.fromTag('li', scope);\n setAll(item, attr);\n append(item, content);\n return item;\n };\n const appendItem = (segment, item) => {\n append$1(segment.list, item);\n segment.item = item;\n };\n const writeShallow = (scope, cast, entry) => {\n const newCast = cast.slice(0, entry.depth);\n last(newCast).each(segment => {\n if (isEntryList(entry)) {\n const item = createItem(scope, entry.itemAttributes, entry.content);\n appendItem(segment, item);\n normalizeSegment(segment, entry);\n } else if (isEntryFragment(entry)) {\n append(segment.item, entry.content);\n } else {\n const item = SugarElement.fromHtml(``);\n append$1(segment.list, item);\n }\n });\n return newCast;\n };\n const writeDeep = (scope, cast, entry) => {\n const segments = createSegments(scope, entry, entry.depth - cast.length);\n joinSegments(segments);\n populateSegments(segments, entry);\n appendSegments(cast, segments);\n return cast.concat(segments);\n };\n const composeList = (scope, entries) => {\n let firstCommentEntryOpt = Optional.none();\n const cast = foldl(entries, (cast, entry, i) => {\n if (!isEntryComment(entry)) {\n return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);\n } else {\n if (i === 0) {\n firstCommentEntryOpt = Optional.some(entry);\n return cast;\n }\n return writeShallow(scope, cast, entry);\n }\n }, []);\n firstCommentEntryOpt.each(firstCommentEntry => {\n const item = SugarElement.fromHtml(``);\n head(cast).each(fistCast => {\n prepend(fistCast.list, item);\n });\n });\n return head(cast).map(segment => segment.list);\n };\n\n const indentEntry = (indentation, entry) => {\n switch (indentation) {\n case 'Indent':\n entry.depth++;\n break;\n case 'Outdent':\n entry.depth--;\n break;\n case 'Flatten':\n entry.depth = 0;\n }\n entry.dirty = true;\n };\n\n const cloneListProperties = (target, source) => {\n if (isEntryList(target) && isEntryList(source)) {\n target.listType = source.listType;\n target.listAttributes = { ...source.listAttributes };\n }\n };\n const cleanListProperties = entry => {\n entry.listAttributes = filter(entry.listAttributes, (_value, key) => key !== 'start');\n };\n const closestSiblingEntry = (entries, start) => {\n const depth = entries[start].depth;\n const matches = entry => entry.depth === depth && !entry.dirty;\n const until = entry => entry.depth < depth;\n return findUntil(reverse(entries.slice(0, start)), matches, until).orThunk(() => findUntil(entries.slice(start + 1), matches, until));\n };\n const normalizeEntries = entries => {\n each$1(entries, (entry, i) => {\n closestSiblingEntry(entries, i).fold(() => {\n if (entry.dirty && isEntryList(entry)) {\n cleanListProperties(entry);\n }\n }, matchingEntry => cloneListProperties(entry, matchingEntry));\n });\n return entries;\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const parseSingleItem = (depth, itemSelection, selectionState, item) => {\n var _a;\n if (isComment(item)) {\n return [{\n depth: depth + 1,\n content: (_a = item.dom.nodeValue) !== null && _a !== void 0 ? _a : '',\n dirty: false,\n isSelected: false,\n isComment: true\n }];\n }\n itemSelection.each(selection => {\n if (eq(selection.start, item)) {\n selectionState.set(true);\n }\n });\n const currentItemEntry = createEntry(item, depth, selectionState.get());\n itemSelection.each(selection => {\n if (eq(selection.end, item)) {\n selectionState.set(false);\n }\n });\n const childListEntries = lastChild(item).filter(isList).map(list => parseList(depth, itemSelection, selectionState, list)).getOr([]);\n return currentItemEntry.toArray().concat(childListEntries);\n };\n const parseItem = (depth, itemSelection, selectionState, item) => firstChild(item).filter(isList).fold(() => parseSingleItem(depth, itemSelection, selectionState, item), list => {\n const parsedSiblings = foldl(children(item), (acc, liChild, i) => {\n if (i === 0) {\n return acc;\n } else {\n if (isListItem(liChild)) {\n return acc.concat(parseSingleItem(depth, itemSelection, selectionState, liChild));\n } else {\n const fragment = {\n isFragment: true,\n depth,\n content: [liChild],\n isSelected: false,\n dirty: false,\n parentListType: name(list)\n };\n return acc.concat(fragment);\n }\n }\n }, []);\n return parseList(depth, itemSelection, selectionState, list).concat(parsedSiblings);\n });\n const parseList = (depth, itemSelection, selectionState, list) => bind(children(list), element => {\n const parser = isList(element) ? parseList : parseItem;\n const newDepth = depth + 1;\n return parser(newDepth, itemSelection, selectionState, element);\n });\n const parseLists = (lists, itemSelection) => {\n const selectionState = Cell(false);\n const initialDepth = 0;\n return map(lists, list => ({\n sourceList: list,\n entries: parseList(initialDepth, itemSelection, selectionState, list)\n }));\n };\n\n const outdentedComposer = (editor, entries) => {\n const normalizedEntries = normalizeEntries(entries);\n return map(normalizedEntries, entry => {\n const content = !isEntryComment(entry) ? fromElements(entry.content) : fromElements([SugarElement.fromHtml(``)]);\n const listItemAttrs = isEntryList(entry) ? entry.itemAttributes : {};\n return SugarElement.fromDom(createTextBlock(editor, content.dom, listItemAttrs));\n });\n };\n const indentedComposer = (editor, entries) => {\n const normalizedEntries = normalizeEntries(entries);\n return composeList(editor.contentDocument, normalizedEntries).toArray();\n };\n const composeEntries = (editor, entries) => bind(groupBy(entries, isIndented), entries => {\n const groupIsIndented = head(entries).exists(isIndented);\n return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);\n });\n const indentSelectedEntries = (entries, indentation) => {\n each$1(filter$1(entries, isSelected), entry => indentEntry(indentation, entry));\n };\n const getItemSelection = editor => {\n const selectedListItems = map(getSelectedListItems(editor), SugarElement.fromDom);\n return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), (start, end) => ({\n start,\n end\n }));\n };\n const listIndentation = (editor, lists, indentation) => {\n const entrySets = parseLists(lists, getItemSelection(editor));\n each$1(entrySets, entrySet => {\n indentSelectedEntries(entrySet.entries, indentation);\n const composedLists = composeEntries(editor, entrySet.entries);\n each$1(composedLists, composedList => {\n fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom);\n });\n before(entrySet.sourceList, composedLists);\n remove(entrySet.sourceList);\n });\n };\n\n const selectionIndentation = (editor, indentation) => {\n const lists = fromDom(getSelectedListRoots(editor));\n const dlItems = fromDom(getSelectedDlItems(editor));\n let isHandled = false;\n if (lists.length || dlItems.length) {\n const bookmark = editor.selection.getBookmark();\n listIndentation(editor, lists, indentation);\n dlIndentation(editor, indentation, dlItems);\n editor.selection.moveToBookmark(bookmark);\n editor.selection.setRng(normalizeRange(editor.selection.getRng()));\n editor.nodeChanged();\n isHandled = true;\n }\n return isHandled;\n };\n const handleIndentation = (editor, indentation) => !selectionIsWithinNonEditableList(editor) && selectionIndentation(editor, indentation);\n const indentListSelection = editor => handleIndentation(editor, 'Indent');\n const outdentListSelection = editor => handleIndentation(editor, 'Outdent');\n const flattenListSelection = editor => handleIndentation(editor, 'Flatten');\n\n const zeroWidth = '\\uFEFF';\n const isZwsp = char => char === zeroWidth;\n\n const ancestor$1 = (scope, predicate, isRoot) => ancestor$3(scope, predicate, isRoot).isSome();\n\n const ancestor = (element, target) => ancestor$1(element, curry(eq, target));\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');\n\n const DOM$1 = global$3.DOM;\n const createBookmark = rng => {\n const bookmark = {};\n const setupEndPoint = start => {\n let container = rng[start ? 'startContainer' : 'endContainer'];\n let offset = rng[start ? 'startOffset' : 'endOffset'];\n if (isElement(container)) {\n const offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' });\n if (container.hasChildNodes()) {\n offset = Math.min(offset, container.childNodes.length - 1);\n if (start) {\n container.insertBefore(offsetNode, container.childNodes[offset]);\n } else {\n DOM$1.insertAfter(offsetNode, container.childNodes[offset]);\n }\n } else {\n container.appendChild(offsetNode);\n }\n container = offsetNode;\n offset = 0;\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n setupEndPoint(true);\n if (!rng.collapsed) {\n setupEndPoint();\n }\n return bookmark;\n };\n const resolveBookmark = bookmark => {\n const restoreEndPoint = start => {\n const nodeIndex = container => {\n var _a;\n let node = (_a = container.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild;\n let idx = 0;\n while (node) {\n if (node === container) {\n return idx;\n }\n if (!isElement(node) || node.getAttribute('data-mce-type') !== 'bookmark') {\n idx++;\n }\n node = node.nextSibling;\n }\n return -1;\n };\n let container = bookmark[start ? 'startContainer' : 'endContainer'];\n let offset = bookmark[start ? 'startOffset' : 'endOffset'];\n if (!container) {\n return;\n }\n if (isElement(container) && container.parentNode) {\n const node = container;\n offset = nodeIndex(container);\n container = container.parentNode;\n DOM$1.remove(node);\n if (!container.hasChildNodes() && DOM$1.isBlock(container)) {\n container.appendChild(DOM$1.create('br'));\n }\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n restoreEndPoint(true);\n restoreEndPoint();\n const rng = DOM$1.createRng();\n rng.setStart(bookmark.startContainer, bookmark.startOffset);\n if (bookmark.endContainer) {\n rng.setEnd(bookmark.endContainer, bookmark.endOffset);\n }\n return normalizeRange(rng);\n };\n\n const listToggleActionFromListName = listName => {\n switch (listName) {\n case 'UL':\n return 'ToggleUlList';\n case 'OL':\n return 'ToggleOlList';\n case 'DL':\n return 'ToggleDLList';\n }\n };\n\n const updateListStyle = (dom, el, detail) => {\n const type = detail['list-style-type'] ? detail['list-style-type'] : null;\n dom.setStyle(el, 'list-style-type', type);\n };\n const setAttribs = (elm, attrs) => {\n global$2.each(attrs, (value, key) => {\n elm.setAttribute(key, value);\n });\n };\n const updateListAttrs = (dom, el, detail) => {\n setAttribs(el, detail['list-attributes']);\n global$2.each(dom.select('li', el), li => {\n setAttribs(li, detail['list-item-attributes']);\n });\n };\n const updateListWithDetails = (dom, el, detail) => {\n updateListStyle(dom, el, detail);\n updateListAttrs(dom, el, detail);\n };\n const removeStyles = (dom, element, styles) => {\n global$2.each(styles, style => dom.setStyle(element, style, ''));\n };\n const isInline = (editor, node) => isNonNullable(node) && !isBlock(node, editor.schema.getBlockElements());\n const getEndPointNode = (editor, rng, start, root) => {\n let container = rng[start ? 'startContainer' : 'endContainer'];\n const offset = rng[start ? 'startOffset' : 'endOffset'];\n if (isElement(container)) {\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n }\n if (!start && isBr(container.nextSibling)) {\n container = container.nextSibling;\n }\n const findBlockAncestor = node => {\n while (!editor.dom.isBlock(node) && node.parentNode && root !== node) {\n node = node.parentNode;\n }\n return node;\n };\n const findBetterContainer = (container, forward) => {\n var _a;\n const walker = new global$5(container, findBlockAncestor(container));\n const dir = forward ? 'next' : 'prev';\n let node;\n while (node = walker[dir]()) {\n if (!(isVoid(editor, node) || isZwsp(node.textContent) || ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.length) === 0)) {\n return Optional.some(node);\n }\n }\n return Optional.none();\n };\n if (start && isTextNode$1(container)) {\n if (isZwsp(container.textContent)) {\n container = findBetterContainer(container, false).getOr(container);\n } else {\n if (container.parentNode !== null && isInline(editor, container.parentNode)) {\n container = container.parentNode;\n }\n while (container.previousSibling !== null && (isInline(editor, container.previousSibling) || isTextNode$1(container.previousSibling))) {\n container = container.previousSibling;\n }\n }\n }\n if (!start && isTextNode$1(container)) {\n if (isZwsp(container.textContent)) {\n container = findBetterContainer(container, true).getOr(container);\n } else {\n if (container.parentNode !== null && isInline(editor, container.parentNode)) {\n container = container.parentNode;\n }\n while (container.nextSibling !== null && (isInline(editor, container.nextSibling) || isTextNode$1(container.nextSibling))) {\n container = container.nextSibling;\n }\n }\n }\n while (container.parentNode !== root) {\n const parent = container.parentNode;\n if (isTextBlock(editor, container)) {\n return container;\n }\n if (/^(TD|TH)$/.test(parent.nodeName)) {\n return container;\n }\n container = parent;\n }\n return container;\n };\n const getSelectedTextBlocks = (editor, rng, root) => {\n const textBlocks = [];\n const dom = editor.dom;\n const startNode = getEndPointNode(editor, rng, true, root);\n const endNode = getEndPointNode(editor, rng, false, root);\n let block;\n const siblings = [];\n for (let node = startNode; node; node = node.nextSibling) {\n siblings.push(node);\n if (node === endNode) {\n break;\n }\n }\n global$2.each(siblings, node => {\n var _a;\n if (isTextBlock(editor, node)) {\n textBlocks.push(node);\n block = null;\n return;\n }\n if (dom.isBlock(node) || isBr(node)) {\n if (isBr(node)) {\n dom.remove(node);\n }\n block = null;\n return;\n }\n const nextSibling = node.nextSibling;\n if (global$1.isBookmarkNode(node)) {\n if (isListNode(nextSibling) || isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {\n block = null;\n return;\n }\n }\n if (!block) {\n block = dom.create('p');\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(block, node);\n textBlocks.push(block);\n }\n block.appendChild(node);\n });\n return textBlocks;\n };\n const hasCompatibleStyle = (dom, sib, detail) => {\n const sibStyle = dom.getStyle(sib, 'list-style-type');\n let detailStyle = detail ? detail['list-style-type'] : '';\n detailStyle = detailStyle === null ? '' : detailStyle;\n return sibStyle === detailStyle;\n };\n const getRootSearchStart = (editor, range) => {\n const start = editor.selection.getStart(true);\n const startPoint = getEndPointNode(editor, range, true, editor.getBody());\n if (ancestor(SugarElement.fromDom(startPoint), SugarElement.fromDom(range.commonAncestorContainer))) {\n return range.commonAncestorContainer;\n } else {\n return start;\n }\n };\n const applyList = (editor, listName, detail) => {\n const rng = editor.selection.getRng();\n let listItemName = 'LI';\n const root = getClosestListHost(editor, getRootSearchStart(editor, rng));\n const dom = editor.dom;\n if (dom.getContentEditable(editor.selection.getNode()) === 'false') {\n return;\n }\n listName = listName.toUpperCase();\n if (listName === 'DL') {\n listItemName = 'DT';\n }\n const bookmark = createBookmark(rng);\n const selectedTextBlocks = filter$1(getSelectedTextBlocks(editor, rng, root), editor.dom.isEditable);\n global$2.each(selectedTextBlocks, block => {\n let listBlock;\n const sibling = block.previousSibling;\n const parent = block.parentNode;\n if (!isListItemNode(parent)) {\n if (sibling && isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {\n listBlock = sibling;\n block = dom.rename(block, listItemName);\n sibling.appendChild(block);\n } else {\n listBlock = dom.create(listName);\n parent.insertBefore(listBlock, block);\n listBlock.appendChild(block);\n block = dom.rename(block, listItemName);\n }\n removeStyles(dom, block, [\n 'margin',\n 'margin-right',\n 'margin-bottom',\n 'margin-left',\n 'margin-top',\n 'padding',\n 'padding-right',\n 'padding-bottom',\n 'padding-left',\n 'padding-top'\n ]);\n updateListWithDetails(dom, listBlock, detail);\n mergeWithAdjacentLists(editor.dom, listBlock);\n }\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n };\n const isValidLists = (list1, list2) => {\n return isListNode(list1) && list1.nodeName === (list2 === null || list2 === void 0 ? void 0 : list2.nodeName);\n };\n const hasSameListStyle = (dom, list1, list2) => {\n const targetStyle = dom.getStyle(list1, 'list-style-type', true);\n const style = dom.getStyle(list2, 'list-style-type', true);\n return targetStyle === style;\n };\n const hasSameClasses = (elm1, elm2) => {\n return elm1.className === elm2.className;\n };\n const shouldMerge = (dom, list1, list2) => {\n return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);\n };\n const mergeWithAdjacentLists = (dom, listBlock) => {\n let node;\n let sibling = listBlock.nextSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n const liSibling = sibling;\n while (node = liSibling.firstChild) {\n listBlock.appendChild(node);\n }\n dom.remove(liSibling);\n }\n sibling = listBlock.previousSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n const liSibling = sibling;\n while (node = liSibling.lastChild) {\n listBlock.insertBefore(node, listBlock.firstChild);\n }\n dom.remove(liSibling);\n }\n };\n const updateList$1 = (editor, list, listName, detail) => {\n if (list.nodeName !== listName) {\n const newList = editor.dom.rename(list, listName);\n updateListWithDetails(editor.dom, newList, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n } else {\n updateListWithDetails(editor.dom, list, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), list);\n }\n };\n const updateCustomList = (editor, list, listName, detail) => {\n list.classList.forEach((cls, _, classList) => {\n if (cls.startsWith('tox-')) {\n classList.remove(cls);\n if (classList.length === 0) {\n list.removeAttribute('class');\n }\n }\n });\n if (list.nodeName !== listName) {\n const newList = editor.dom.rename(list, listName);\n updateListWithDetails(editor.dom, newList, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n } else {\n updateListWithDetails(editor.dom, list, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), list);\n }\n };\n const toggleMultipleLists = (editor, parentList, lists, listName, detail) => {\n const parentIsList = isListNode(parentList);\n if (parentIsList && parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {\n flattenListSelection(editor);\n } else {\n applyList(editor, listName, detail);\n const bookmark = createBookmark(editor.selection.getRng());\n const allLists = parentIsList ? [\n parentList,\n ...lists\n ] : lists;\n const updateFunction = parentIsList && isCustomList(parentList) ? updateCustomList : updateList$1;\n global$2.each(allLists, elm => {\n updateFunction(editor, elm, listName, detail);\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n const hasListStyleDetail = detail => {\n return 'list-style-type' in detail;\n };\n const toggleSingleList = (editor, parentList, listName, detail) => {\n if (parentList === editor.getBody()) {\n return;\n }\n if (parentList) {\n if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {\n flattenListSelection(editor);\n } else {\n const bookmark = createBookmark(editor.selection.getRng());\n if (isCustomList(parentList)) {\n parentList.classList.forEach((cls, _, classList) => {\n if (cls.startsWith('tox-')) {\n classList.remove(cls);\n if (classList.length === 0) {\n parentList.removeAttribute('class');\n }\n }\n });\n }\n updateListWithDetails(editor.dom, parentList, detail);\n const newList = editor.dom.rename(parentList, listName);\n mergeWithAdjacentLists(editor.dom, newList);\n editor.selection.setRng(resolveBookmark(bookmark));\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n }\n } else {\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), parentList);\n }\n };\n const toggleList = (editor, listName, _detail) => {\n const parentList = getParentList(editor);\n if (isWithinNonEditableList(editor, parentList)) {\n return;\n }\n const selectedSubLists = getSelectedSubLists(editor);\n const detail = isObject(_detail) ? _detail : {};\n if (selectedSubLists.length > 0) {\n toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);\n } else {\n toggleSingleList(editor, parentList, listName, detail);\n }\n };\n\n const DOM = global$3.DOM;\n const normalizeList = (dom, list) => {\n const parentNode = list.parentElement;\n if (parentNode && parentNode.nodeName === 'LI' && parentNode.firstChild === list) {\n const sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(list);\n if (isEmpty$2(dom, parentNode)) {\n DOM.remove(parentNode);\n }\n } else {\n DOM.setStyle(parentNode, 'listStyleType', 'none');\n }\n }\n if (isListNode(parentNode)) {\n const sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(list);\n }\n }\n };\n const normalizeLists = (dom, element) => {\n const lists = global$2.grep(dom.select('ol,ul', element));\n global$2.each(lists, list => {\n normalizeList(dom, list);\n });\n };\n\n const findNextCaretContainer = (editor, rng, isForward, root) => {\n let node = rng.startContainer;\n const offset = rng.startOffset;\n if (isTextNode$1(node) && (isForward ? offset < node.data.length : offset > 0)) {\n return node;\n }\n const nonEmptyBlocks = editor.schema.getNonEmptyElements();\n if (isElement(node)) {\n node = global$6.getNode(node, offset);\n }\n const walker = new global$5(node, root);\n if (isForward) {\n if (isBogusBr(editor.dom, node)) {\n walker.next();\n }\n }\n const walkFn = isForward ? walker.next.bind(walker) : walker.prev2.bind(walker);\n while (node = walkFn()) {\n if (node.nodeName === 'LI' && !node.hasChildNodes()) {\n return node;\n }\n if (nonEmptyBlocks[node.nodeName]) {\n return node;\n }\n if (isTextNode$1(node) && node.data.length > 0) {\n return node;\n }\n }\n return null;\n };\n const hasOnlyOneBlockChild = (dom, elm) => {\n const childNodes = elm.childNodes;\n return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);\n };\n const isUnwrappable = node => Optional.from(node).map(SugarElement.fromDom).filter(isHTMLElement).exists(el => isEditable(el) && !contains$1(['details'], name(el)));\n const unwrapSingleBlockChild = (dom, elm) => {\n if (hasOnlyOneBlockChild(dom, elm) && isUnwrappable(elm.firstChild)) {\n dom.remove(elm.firstChild, true);\n }\n };\n const moveChildren = (dom, fromElm, toElm) => {\n let node;\n const targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;\n unwrapSingleBlockChild(dom, fromElm);\n if (!isEmpty$2(dom, fromElm, true)) {\n while (node = fromElm.firstChild) {\n targetElm.appendChild(node);\n }\n }\n };\n const mergeLiElements = (dom, fromElm, toElm) => {\n let listNode;\n const ul = fromElm.parentNode;\n if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) {\n return;\n }\n if (isListNode(toElm.lastChild)) {\n listNode = toElm.lastChild;\n }\n if (ul === toElm.lastChild) {\n if (isBr(ul.previousSibling)) {\n dom.remove(ul.previousSibling);\n }\n }\n const node = toElm.lastChild;\n if (node && isBr(node) && fromElm.hasChildNodes()) {\n dom.remove(node);\n }\n if (isEmpty$2(dom, toElm, true)) {\n empty(SugarElement.fromDom(toElm));\n }\n moveChildren(dom, fromElm, toElm);\n if (listNode) {\n toElm.appendChild(listNode);\n }\n const contains$1 = contains(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm));\n const nestedLists = contains$1 ? dom.getParents(fromElm, isListNode, toElm) : [];\n dom.remove(fromElm);\n each$1(nestedLists, list => {\n if (isEmpty$2(dom, list) && list !== dom.getRoot()) {\n dom.remove(list);\n }\n });\n };\n const mergeIntoEmptyLi = (editor, fromLi, toLi) => {\n empty(SugarElement.fromDom(toLi));\n mergeLiElements(editor.dom, fromLi, toLi);\n editor.selection.setCursorLocation(toLi, 0);\n };\n const mergeForward = (editor, rng, fromLi, toLi) => {\n const dom = editor.dom;\n if (dom.isEmpty(toLi)) {\n mergeIntoEmptyLi(editor, fromLi, toLi);\n } else {\n const bookmark = createBookmark(rng);\n mergeLiElements(dom, fromLi, toLi);\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n const mergeBackward = (editor, rng, fromLi, toLi) => {\n const bookmark = createBookmark(rng);\n mergeLiElements(editor.dom, fromLi, toLi);\n const resolvedBookmark = resolveBookmark(bookmark);\n editor.selection.setRng(resolvedBookmark);\n };\n const backspaceDeleteFromListToListCaret = (editor, isForward) => {\n const dom = editor.dom, selection = editor.selection;\n const selectionStartElm = selection.getStart();\n const root = getClosestEditingHost(editor, selectionStartElm);\n const li = dom.getParent(selection.getStart(), 'LI', root);\n if (li) {\n const ul = li.parentElement;\n if (ul === editor.getBody() && isEmpty$2(dom, ul)) {\n return true;\n }\n const rng = normalizeRange(selection.getRng());\n const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\n const willMergeParentIntoChild = otherLi && (isForward ? dom.isChildOf(li, otherLi) : dom.isChildOf(otherLi, li));\n if (otherLi && otherLi !== li && !willMergeParentIntoChild) {\n editor.undoManager.transact(() => {\n if (isForward) {\n mergeForward(editor, rng, otherLi, li);\n } else {\n if (isFirstChild(li)) {\n outdentListSelection(editor);\n } else {\n mergeBackward(editor, rng, li, otherLi);\n }\n }\n });\n return true;\n } else if (willMergeParentIntoChild && !isForward && otherLi !== li) {\n editor.undoManager.transact(() => {\n if (rng.commonAncestorContainer.parentElement) {\n const bookmark = createBookmark(rng);\n const oldParentElRef = rng.commonAncestorContainer.parentElement;\n moveChildren(dom, rng.commonAncestorContainer.parentElement, otherLi);\n oldParentElRef.remove();\n const resolvedBookmark = resolveBookmark(bookmark);\n editor.selection.setRng(resolvedBookmark);\n }\n });\n return true;\n } else if (!otherLi) {\n if (!isForward && rng.startOffset === 0 && rng.endOffset === 0) {\n editor.undoManager.transact(() => {\n flattenListSelection(editor);\n });\n return true;\n }\n }\n }\n return false;\n };\n const removeBlock = (dom, block, root) => {\n const parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);\n dom.remove(block);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n dom.remove(parentBlock);\n }\n };\n const backspaceDeleteIntoListCaret = (editor, isForward) => {\n const dom = editor.dom;\n const selectionStartElm = editor.selection.getStart();\n const root = getClosestEditingHost(editor, selectionStartElm);\n const block = dom.getParent(selectionStartElm, dom.isBlock, root);\n if (block && dom.isEmpty(block, undefined, { checkRootAsContent: true })) {\n const rng = normalizeRange(editor.selection.getRng());\n const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\n if (otherLi) {\n const findValidElement = element => contains$1([\n 'td',\n 'th',\n 'caption'\n ], name(element));\n const findRoot = node => node.dom === root;\n const otherLiCell = closest$2(SugarElement.fromDom(otherLi), findValidElement, findRoot);\n const caretCell = closest$2(SugarElement.fromDom(rng.startContainer), findValidElement, findRoot);\n if (!equals(otherLiCell, caretCell, eq)) {\n return false;\n }\n editor.undoManager.transact(() => {\n const parentNode = otherLi.parentNode;\n removeBlock(dom, block, root);\n mergeWithAdjacentLists(dom, parentNode);\n editor.selection.select(otherLi, true);\n editor.selection.collapse(isForward);\n });\n return true;\n }\n }\n return false;\n };\n const backspaceDeleteCaret = (editor, isForward) => {\n return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);\n };\n const hasListSelection = editor => {\n const selectionStartElm = editor.selection.getStart();\n const root = getClosestEditingHost(editor, selectionStartElm);\n const startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);\n return startListParent || getSelectedListItems(editor).length > 0;\n };\n const backspaceDeleteRange = editor => {\n if (hasListSelection(editor)) {\n editor.undoManager.transact(() => {\n let shouldFireInput = true;\n const inputHandler = () => shouldFireInput = false;\n editor.on('input', inputHandler);\n editor.execCommand('Delete');\n editor.off('input', inputHandler);\n if (shouldFireInput) {\n editor.dispatch('input');\n }\n normalizeLists(editor.dom, editor.getBody());\n });\n return true;\n }\n return false;\n };\n const backspaceDelete = (editor, isForward) => {\n const selection = editor.selection;\n return !isWithinNonEditableList(editor, selection.getNode()) && (selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor));\n };\n const setup$2 = editor => {\n editor.on('ExecCommand', e => {\n const cmd = e.command.toLowerCase();\n if ((cmd === 'delete' || cmd === 'forwarddelete') && hasListSelection(editor)) {\n normalizeLists(editor.dom, editor.getBody());\n }\n });\n editor.on('keydown', e => {\n if (e.keyCode === global$4.BACKSPACE) {\n if (backspaceDelete(editor, false)) {\n e.preventDefault();\n }\n } else if (e.keyCode === global$4.DELETE) {\n if (backspaceDelete(editor, true)) {\n e.preventDefault();\n }\n }\n });\n };\n\n const get = editor => ({\n backspaceDelete: isForward => {\n backspaceDelete(editor, isForward);\n }\n });\n\n const updateList = (editor, update) => {\n const parentList = getParentList(editor);\n if (parentList === null || isWithinNonEditableList(editor, parentList)) {\n return;\n }\n editor.undoManager.transact(() => {\n if (isObject(update.styles)) {\n editor.dom.setStyles(parentList, update.styles);\n }\n if (isObject(update.attrs)) {\n each(update.attrs, (v, k) => editor.dom.setAttrib(parentList, k, v));\n }\n });\n };\n\n const parseAlphabeticBase26 = str => {\n const chars = reverse(trim(str).split(''));\n const values = map(chars, (char, i) => {\n const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, (sum, v) => sum + v, 0);\n };\n const composeAlphabeticBase26 = value => {\n value--;\n if (value < 0) {\n return '';\n } else {\n const remainder = value % 26;\n const quotient = Math.floor(value / 26);\n const rest = composeAlphabeticBase26(quotient);\n const char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n const isUppercase = str => /^[A-Z]+$/.test(str);\n const isLowercase = str => /^[a-z]+$/.test(str);\n const isNumeric = str => /^[0-9]+$/.test(str);\n const deduceListType = start => {\n if (isNumeric(start)) {\n return 2;\n } else if (isUppercase(start)) {\n return 0;\n } else if (isLowercase(start)) {\n return 1;\n } else if (isEmpty$1(start)) {\n return 3;\n } else {\n return 4;\n }\n };\n const parseStartValue = start => {\n switch (deduceListType(start)) {\n case 2:\n return Optional.some({\n listStyleType: Optional.none(),\n start\n });\n case 0:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 1:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 3:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n case 4:\n return Optional.none();\n }\n };\n const parseDetail = detail => {\n const start = parseInt(detail.start, 10);\n if (is$2(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n } else if (is$2(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n } else {\n return detail.start;\n }\n };\n\n const open = editor => {\n const currentList = getParentList(editor);\n if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) {\n return;\n }\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [{\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: api => {\n const data = api.getData();\n parseStartValue(data.start).each(detail => {\n editor.execCommand('mceListUpdate', false, {\n attrs: { start: detail.start === '1' ? '' : detail.start },\n styles: { 'list-style-type': detail.listStyleType.getOr('') }\n });\n });\n api.close();\n }\n });\n };\n\n const queryListCommandState = (editor, listName) => () => {\n const parentList = getParentList(editor);\n return isNonNullable(parentList) && parentList.nodeName === listName;\n };\n const registerDialog = editor => {\n editor.addCommand('mceListProps', () => {\n open(editor);\n });\n };\n const register$2 = editor => {\n editor.on('BeforeExecCommand', e => {\n const cmd = e.command.toLowerCase();\n if (cmd === 'indent') {\n indentListSelection(editor);\n } else if (cmd === 'outdent') {\n outdentListSelection(editor);\n }\n });\n editor.addCommand('InsertUnorderedList', (ui, detail) => {\n toggleList(editor, 'UL', detail);\n });\n editor.addCommand('InsertOrderedList', (ui, detail) => {\n toggleList(editor, 'OL', detail);\n });\n editor.addCommand('InsertDefinitionList', (ui, detail) => {\n toggleList(editor, 'DL', detail);\n });\n editor.addCommand('RemoveList', () => {\n flattenListSelection(editor);\n });\n registerDialog(editor);\n editor.addCommand('mceListUpdate', (ui, detail) => {\n if (isObject(detail)) {\n updateList(editor, detail);\n }\n });\n editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));\n editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));\n editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.html.Node');\n\n const isTextNode = node => node.type === 3;\n const isEmpty = nodeBuffer => nodeBuffer.length === 0;\n const wrapInvalidChildren = list => {\n const insertListItem = (buffer, refNode) => {\n const li = global.create('li');\n each$1(buffer, node => li.append(node));\n if (refNode) {\n list.insert(li, refNode, true);\n } else {\n list.append(li);\n }\n };\n const reducer = (buffer, node) => {\n if (isTextNode(node)) {\n return [\n ...buffer,\n node\n ];\n } else if (!isEmpty(buffer) && !isTextNode(node)) {\n insertListItem(buffer, node);\n return [];\n } else {\n return buffer;\n }\n };\n const restBuffer = foldl(list.children(), reducer, []);\n if (!isEmpty(restBuffer)) {\n insertListItem(restBuffer);\n }\n };\n const setup$1 = editor => {\n editor.on('PreInit', () => {\n const {parser} = editor;\n parser.addNodeFilter('ul,ol', nodes => each$1(nodes, wrapInvalidChildren));\n });\n };\n\n const setupTabKey = editor => {\n editor.on('keydown', e => {\n if (e.keyCode !== global$4.TAB || global$4.metaKeyPressed(e)) {\n return;\n }\n editor.undoManager.transact(() => {\n if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {\n e.preventDefault();\n }\n });\n });\n };\n const setup = editor => {\n if (shouldIndentOnTab(editor)) {\n setupTabKey(editor);\n }\n setup$2(editor);\n };\n\n const setupToggleButtonHandler = (editor, listName) => api => {\n const toggleButtonHandler = e => {\n api.setActive(inList(e.parents, listName));\n api.setEnabled(!isWithinNonEditableList(editor, e.element) && editor.selection.isEditable());\n };\n api.setEnabled(editor.selection.isEditable());\n return setNodeChangeHandler(editor, toggleButtonHandler);\n };\n const register$1 = editor => {\n const exec = command => () => editor.execCommand(command);\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: setupToggleButtonHandler(editor, 'OL')\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: setupToggleButtonHandler(editor, 'UL')\n });\n }\n };\n\n const setupMenuButtonHandler = (editor, listName) => api => {\n const menuButtonHandler = e => api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element));\n return setNodeChangeHandler(editor, menuButtonHandler);\n };\n const register = editor => {\n const listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: () => editor.execCommand('mceListProps'),\n onSetup: setupMenuButtonHandler(editor, 'OL')\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: node => {\n const parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n var Plugin = () => {\n global$7.add('lists', editor => {\n register$3(editor);\n setup$1(editor);\n if (!editor.hasPlugin('rtc', true)) {\n setup(editor);\n register$2(editor);\n } else {\n registerDialog(editor);\n }\n register$1(editor);\n register(editor);\n return get(editor);\n });\n };\n\n Plugin();\n\n})();\n","// Exports the \"silver\" theme for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/themes/silver')\n// ES2015:\n// import 'tinymce/themes/silver'\nrequire('./theme.js');","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n const getPrototypeOf$2 = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$1 = t => a => t === a;\n const is$2 = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf$2(o) === proto);\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isPlainObject = value => is$2(value, Object);\n const isArray = isType$1('array');\n const isNull = eq$1(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$1(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n const noarg = f => () => f();\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant$1 = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply$1 = f => {\n return f();\n };\n const never = constant$1(false);\n const always = constant$1(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const indexOf = (xs, x) => {\n const r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const range$2 = (num, f) => {\n const r = [];\n for (let i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n const chunk$1 = (array, size) => {\n const r = [];\n for (let i = 0; i < array.length; i += size) {\n const s = nativeSlice.call(array, i, i + size);\n r.push(s);\n }\n return r;\n };\n const map$2 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition$3 = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$2 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$5 = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const findIndex$1 = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$3 = (xs, f) => flatten(map$2(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const difference = (a1, a2) => filter$2(a1, x => !contains$2(a2, x));\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const pure$2 = x => [x];\n const sort = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$i = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$i(xs, 0);\n const last$1 = xs => get$i(xs, xs.length - 1);\n const from = isFunction(Array.from) ? Array.from : x => nativeSlice.call(x);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map$1 = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const bifilter = (obj, pred) => {\n const t = {};\n const f = {};\n internalFilter(obj, pred, objAcc(t), objAcc(f));\n return {\n t,\n f\n };\n };\n const filter$1 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const find$4 = (obj, pred) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n if (pred(x, i, obj)) {\n return Optional.some(x);\n }\n }\n return Optional.none();\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$h = (obj, key) => {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$2 = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const is$1 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const sequence = arr => {\n const r = [];\n for (let i = 0; i < arr.length; i++) {\n const x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Optional.none();\n }\n }\n return Optional.some(r);\n };\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n const lift3 = (oa, ob, oc, f) => oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n const mapFrom = (a, f) => a !== undefined && a !== null ? Optional.some(f(a)) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const addToEnd = (str, suffix) => {\n return str + suffix;\n };\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const ensureTrailing = (str, suffix) => {\n return endsWith(str, suffix) ? str : addToEnd(str, suffix);\n };\n const contains$1 = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim$1 = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty = s => !isNotEmpty(s);\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const fromHtml$2 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml: fromHtml$2,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path$1 = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve = (p, scope) => {\n const parts = p.split('.');\n return path$1(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve(name, scope);\n };\n const getOrDie$1 = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf$1 = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie$1('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf$1(x).constructor.name));\n };\n\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name$3 = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type$1 = element => element.dom.nodeType;\n const isType = t => element => type$1(element) === t;\n const isHTMLElement = element => isElement$1(element) && isPrototypeOf(element.dom);\n const isElement$1 = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocument = isType(DOCUMENT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement$1(e) && name$3(e) === tag;\n\n const is = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all$3 = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$2(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n const owner$4 = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument(dos) ? dos : owner$4(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentNode = element => parent(element);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const offsetParent = element => Optional.from(element.dom.offsetParent).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children = element => map$2(element.dom.childNodes, SugarElement.fromDom);\n const child$2 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$2(element, 0);\n const spot = (element, offset) => ({\n element,\n offset\n });\n const leaf = (element, offset) => {\n const cs = children(element);\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\n };\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const isInShadowRoot = e => getShadowRoot(e).isSome();\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement$1(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n const body = () => getBody(SugarElement.fromDom(document));\n const getBody = doc => {\n const b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$9 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const get$g = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$g(element, key));\n const has$1 = (element, key) => {\n const dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n const remove$8 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const clone$2 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$8 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const setOptions = (element, css) => {\n const dom = element.dom;\n each(css, (v, k) => {\n v.fold(() => {\n internalRemove(dom, k);\n }, value => {\n internalSet(dom, k, value);\n });\n });\n };\n const get$f = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const getAllRaw = element => {\n const css = {};\n const dom = element.dom;\n if (isSupported(dom)) {\n for (let i = 0; i < dom.style.length; i++) {\n const ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n const isValidValue$1 = (tag, property, value) => {\n const element = SugarElement.fromTag(tag);\n set$8(element, property, value);\n const style = getRaw(element, property);\n return style.isSome();\n };\n const remove$7 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is$1(getOpt(element, 'style').map(trim$1), '')) {\n remove$8(element, 'style');\n }\n };\n const reflow = e => e.dom.offsetWidth;\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$f(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$f(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const api$2 = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$e = element => api$2.get(element);\n const getOuter$2 = element => api$2.getOuter(element);\n const setMax$1 = (element, value) => {\n const inclusions = [\n 'margin-top',\n 'border-top-width',\n 'padding-top',\n 'padding-bottom',\n 'border-bottom-width',\n 'margin-bottom'\n ];\n const absMax = api$2.max(element, value, inclusions);\n set$8(element, 'max-height', absMax + 'px');\n };\n\n const r$1 = (left, top) => {\n const translate = (x, y) => r$1(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r$1;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute$3 = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport$1(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport$1 = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const api$1 = Dimension('width', element => element.dom.offsetWidth);\n const set$7 = (element, h) => api$1.set(element, h);\n const get$d = element => api$1.get(element);\n const getOuter$1 = element => api$1.getOuter(element);\n const setMax = (element, value) => {\n const inclusions = [\n 'margin-left',\n 'border-left-width',\n 'padding-left',\n 'padding-right',\n 'border-right-width',\n 'margin-right'\n ];\n const absMax = api$1.max(element, value, inclusions);\n set$8(element, 'max-width', absMax + 'px');\n };\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant$1(isiPad),\n isiPhone: constant$1(isiPhone),\n isTablet: constant$1(isTablet),\n isPhone: constant$1(isPhone),\n isTouch: constant$1(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant$1(iOSwebview),\n isDesktop: constant$1(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find$3 = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$d(group(1), group(2));\n };\n const detect$4 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$3();\n }\n return find$3(versionRegexes, cleanedAgent);\n };\n const unknown$3 = () => {\n return nu$d(0, 0);\n };\n const nu$d = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$d,\n detect: detect$4,\n unknown: unknown$3\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$5(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$3 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$5(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$3(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$3(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains$1(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant$1(browsers),\n oses: constant$1(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$2 = () => {\n return nu$c({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$c = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$2,\n nu: nu$c,\n edge: constant$1(edge),\n chromium: constant$1(chromium),\n ie: constant$1(ie),\n opera: constant$1(opera),\n firefox: constant$1(firefox),\n safari: constant$1(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown$1 = () => {\n return nu$b({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$b = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown: unknown$1,\n nu: nu$b,\n windows: constant$1(windows),\n ios: constant$1(ios),\n android: constant$1(android),\n linux: constant$1(linux),\n macos: constant$1(macos),\n solaris: constant$1(solaris),\n freebsd: constant$1(freebsd),\n chromeos: constant$1(chromeos)\n };\n\n const detect$2 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$2 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$1 = () => platform();\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent$1 = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const capture$1 = (element, event, filter, handler) => binder(element, event, filter, handler, true);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const before$1 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$2 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$2(v, element);\n });\n }, v => {\n before$1(v, element);\n });\n };\n const prepend$1 = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$2(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$2 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const appendAt = (parent, element, index) => {\n child$2(parent, index).fold(() => {\n append$2(parent, element);\n }, v => {\n before$1(v, element);\n });\n };\n\n const append$1 = (parent, elements) => {\n each$1(elements, x => {\n append$2(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$1(children(element), rogue => {\n remove$6(rogue);\n });\n };\n const remove$6 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n const get$c = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const to = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n\n const get$b = _win => {\n const win = _win === undefined ? window : _win;\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win.visualViewport);\n }\n };\n const bounds$1 = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const getBounds$3 = _win => {\n const win = _win === undefined ? window : _win;\n const doc = win.document;\n const scroll = get$c(SugarElement.fromDom(doc));\n return get$b(win).fold(() => {\n const html = win.document.documentElement;\n const width = html.clientWidth;\n const height = html.clientHeight;\n return bounds$1(scroll.left, scroll.top, width, height);\n }, visualViewport => bounds$1(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));\n };\n\n const getDocument = () => SugarElement.fromDom(document);\n\n const walkUp = (navigation, doc) => {\n const frame = navigation.view(doc);\n return frame.fold(constant$1([]), f => {\n const parent = navigation.owner(f);\n const rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n const pathTo = (element, navigation) => {\n const d = navigation.owner(element);\n const paths = walkUp(navigation, d);\n return Optional.some(paths);\n };\n\n const view = doc => {\n var _a;\n const element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n const owner$3 = element => owner$4(element);\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner$3\n });\n\n const find$2 = element => {\n const doc = getDocument();\n const scroll = get$c(doc);\n const path = pathTo(element, Navigation);\n return path.fold(curry(absolute$3, element), frames => {\n const offset = viewport$1(element);\n const r = foldr(frames, (b, a) => {\n const loc = viewport$1(a);\n return {\n left: b.left + loc.left,\n top: b.top + loc.top\n };\n }, {\n left: 0,\n top: 0\n });\n return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n });\n };\n\n const pointed = (point, width, height) => ({\n point,\n width,\n height\n });\n const rect = (x, y, width, height) => ({\n x,\n y,\n width,\n height\n });\n const bounds = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const box$1 = element => {\n const xy = absolute$3(element);\n const w = getOuter$1(element);\n const h = getOuter$2(element);\n return bounds(xy.left, xy.top, w, h);\n };\n const absolute$2 = element => {\n const position = find$2(element);\n const width = getOuter$1(element);\n const height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n const constrain = (original, constraint) => {\n const left = Math.max(original.x, constraint.x);\n const top = Math.max(original.y, constraint.y);\n const right = Math.min(original.right, constraint.right);\n const bottom = Math.min(original.bottom, constraint.bottom);\n const width = right - left;\n const height = bottom - top;\n return bounds(left, top, width, height);\n };\n const constrainByMany = (original, constraints) => {\n return foldl(constraints, (acc, c) => constrain(acc, c), original);\n };\n const win = () => getBounds$3(window);\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton$1 = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const destroyable = () => singleton$1(s => s.destroy());\n const unbindable = () => singleton$1(s => s.unbind());\n const value$4 = () => {\n const subject = singleton$1(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n var global$a = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n const value$3 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant$1(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error$1 = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply$1,\n orThunk: apply$1,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error$1(err), value$3);\n const Result = {\n value: value$3,\n error: error$1,\n fromOption\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n const fold$1 = (res, onError, onValue) => res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n const partition$2 = results => {\n const values = [];\n const errors = [];\n each$1(results, obj => {\n fold$1(obj, err => errors.push(err), val => values.push(val));\n });\n return {\n values,\n errors\n };\n };\n const mapError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n const map = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n const bind$1 = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n const bindError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n const svalue = v => ({\n stype: SimpleResultType.Value,\n svalue: v\n });\n const serror = e => ({\n stype: SimpleResultType.Error,\n serror: e\n });\n const toResult$1 = res => fold$1(res, Result.error, Result.value);\n const fromResult$1 = res => res.fold(serror, svalue);\n const SimpleResult = {\n fromResult: fromResult$1,\n toResult: toResult$1,\n svalue,\n partition: partition$2,\n serror,\n bind: bind$1,\n bindError,\n map,\n mapError,\n fold: fold$1\n };\n\n const field$2 = (key, newKey, presence, prop) => ({\n tag: 'field',\n key,\n newKey,\n presence,\n prop\n });\n const customField$1 = (newKey, instantiator) => ({\n tag: 'custom',\n newKey,\n instantiator\n });\n const fold = (value, ifField, ifCustom) => {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n const shallow$1 = (old, nu) => {\n return nu;\n };\n const deep$1 = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep$1);\n const merge$1 = baseMerge(shallow$1);\n\n const required$2 = () => ({\n tag: 'required',\n process: {}\n });\n const defaultedThunk = fallbackThunk => ({\n tag: 'defaultedThunk',\n process: fallbackThunk\n });\n const defaulted$1 = fallback => defaultedThunk(constant$1(fallback));\n const asOption = () => ({\n tag: 'option',\n process: {}\n });\n const mergeWithThunk = baseThunk => ({\n tag: 'mergeWithThunk',\n process: baseThunk\n });\n const mergeWith = base => mergeWithThunk(constant$1(base));\n\n const mergeValues$1 = (values, base) => values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge$1.apply(undefined, values))) : SimpleResult.svalue(base);\n const mergeErrors$1 = errors => compose(SimpleResult.serror, flatten)(errors);\n const consolidateObj = (objects, base) => {\n const partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors$1(partition.errors) : mergeValues$1(partition.values, base);\n };\n const consolidateArr = objects => {\n const partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n const ResultCombine = {\n consolidateObj,\n consolidateArr\n };\n\n const formatObj = input => {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n const formatErrors = errors => {\n const es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: constant$1('... (only showing first ten failures)')\n }]) : errors;\n return map$2(es, e => {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n const nu$a = (path, getErrorInfo) => {\n return SimpleResult.serror([{\n path,\n getErrorInfo\n }]);\n };\n const missingRequired = (path, key, obj) => nu$a(path, () => 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj));\n const missingKey = (path, key) => nu$a(path, () => 'Choice schema did not contain choice key: \"' + key + '\"');\n const missingBranch = (path, branches, branch) => nu$a(path, () => 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches));\n const unsupportedFields = (path, unsupported) => nu$a(path, () => 'There are unsupported fields: [' + unsupported.join(', ') + '] specified');\n const custom = (path, err) => nu$a(path, constant$1(err));\n\n const value$2 = validator => {\n const extract = (path, val) => {\n return SimpleResult.bindError(validator(val), err => custom(path, err));\n };\n const toString = constant$1('val');\n return {\n extract,\n toString\n };\n };\n const anyValue$1 = value$2(SimpleResult.svalue);\n\n const requiredAccess = (path, obj, key, bundle) => get$h(obj, key).fold(() => missingRequired(path, key, obj), bundle);\n const fallbackAccess = (obj, key, fallback, bundle) => {\n const v = get$h(obj, key).getOrThunk(() => fallback(obj));\n return bundle(v);\n };\n const optionAccess = (obj, key, bundle) => bundle(get$h(obj, key));\n const optionDefaultedAccess = (obj, key, fallback, bundle) => {\n const opt = get$h(obj, key).map(val => val === true ? fallback(obj) : val);\n return bundle(opt);\n };\n const extractField = (field, path, obj, key, prop) => {\n const bundle = av => prop.extract(path.concat([key]), av);\n const bundleAsOption = optValue => optValue.fold(() => SimpleResult.svalue(Optional.none()), ov => {\n const result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n case 'mergeWithThunk': {\n return fallbackAccess(obj, key, constant$1({}), v => {\n const result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n const extractFields = (path, obj, fields) => {\n const success = {};\n const errors = [];\n for (const field of fields) {\n fold(field, (key, newKey, presence, prop) => {\n const result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, err => {\n errors.push(...err);\n }, res => {\n success[newKey] = res;\n });\n }, (newKey, instantiator) => {\n success[newKey] = instantiator(obj);\n });\n }\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n const valueThunk = getDelegate => {\n const extract = (path, val) => getDelegate().extract(path, val);\n const toString = () => getDelegate().toString();\n return {\n extract,\n toString\n };\n };\n const getSetKeys = obj => keys(filter$1(obj, isNonNullable));\n const objOfOnly = fields => {\n const delegate = objOf(fields);\n const fieldNames = foldr(fields, (acc, value) => {\n return fold(value, key => deepMerge(acc, { [key]: true }), constant$1(acc));\n }, {});\n const extract = (path, o) => {\n const keys = isBoolean(o) ? [] : getSetKeys(o);\n const extra = filter$2(keys, k => !hasNonNullableKey(fieldNames, k));\n return extra.length === 0 ? delegate.extract(path, o) : unsupportedFields(path, extra);\n };\n return {\n extract,\n toString: delegate.toString\n };\n };\n const objOf = values => {\n const extract = (path, o) => extractFields(path, o, values);\n const toString = () => {\n const fieldStrings = map$2(values, value => fold(value, (key, _okey, _presence, prop) => key + ' -> ' + prop.toString(), (newKey, _instantiator) => 'state(' + newKey + ')'));\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract,\n toString\n };\n };\n const arrOf = prop => {\n const extract = (path, array) => {\n const results = map$2(array, (a, i) => prop.extract(path.concat(['[' + i + ']']), a));\n return ResultCombine.consolidateArr(results);\n };\n const toString = () => 'array(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const oneOf = (props, rawF) => {\n const f = rawF !== undefined ? rawF : identity;\n const extract = (path, val) => {\n const errors = [];\n for (const prop of props) {\n const res = prop.extract(path, val);\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n }\n errors.push(res);\n }\n return ResultCombine.consolidateArr(errors);\n };\n const toString = () => 'oneOf(' + map$2(props, prop => prop.toString()).join(', ') + ')';\n return {\n extract,\n toString\n };\n };\n const setOf$1 = (validator, prop) => {\n const validateKeys = (path, keys) => arrOf(value$2(validator)).extract(path, keys);\n const extract = (path, o) => {\n const keys$1 = keys(o);\n const validatedKeys = validateKeys(path, keys$1);\n return SimpleResult.bind(validatedKeys, validKeys => {\n const schema = map$2(validKeys, vk => {\n return field$2(vk, vk, required$2(), prop);\n });\n return objOf(schema).extract(path, o);\n });\n };\n const toString = () => 'setOf(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const thunk = (_desc, processor) => {\n const getP = cached(processor);\n const extract = (path, val) => getP().extract(path, val);\n const toString = () => getP().toString();\n return {\n extract,\n toString\n };\n };\n const arrOfObj = compose(arrOf, objOf);\n\n const anyValue = constant$1(anyValue$1);\n const typedValue = (validator, expectedType) => value$2(a => {\n const actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror(`Expected type: ${ expectedType } but got: ${ actualType }`);\n });\n const number = typedValue(isNumber, 'number');\n const string = typedValue(isString, 'string');\n const boolean = typedValue(isBoolean, 'boolean');\n const functionProcessor = typedValue(isFunction, 'function');\n const isPostMessageable = val => {\n if (Object(val) !== val) {\n return true;\n }\n switch ({}.toString.call(val).slice(8, -1)) {\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'RegExp':\n case 'Blob':\n case 'FileList':\n case 'ImageData':\n case 'ImageBitmap':\n case 'ArrayBuffer':\n return true;\n case 'Array':\n case 'Object':\n return Object.keys(val).every(prop => isPostMessageable(val[prop]));\n default:\n return false;\n }\n };\n const postMessageable = value$2(a => {\n if (isPostMessageable(a)) {\n return SimpleResult.svalue(a);\n } else {\n return SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n }\n });\n\n const chooseFrom = (path, input, branches, ch) => {\n const fields = get$h(branches, ch);\n return fields.fold(() => missingBranch(path, branches, ch), vp => vp.extract(path.concat(['branch: ' + ch]), input));\n };\n const choose$2 = (key, branches) => {\n const extract = (path, input) => {\n const choice = get$h(input, key);\n return choice.fold(() => missingKey(path, key), chosen => chooseFrom(path, input, branches, chosen));\n };\n const toString = () => 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n return {\n extract,\n toString\n };\n };\n\n const arrOfVal = () => arrOf(anyValue$1);\n const valueOf = validator => value$2(v => validator(v).fold(SimpleResult.serror, SimpleResult.svalue));\n const setOf = (validator, prop) => setOf$1(v => SimpleResult.fromResult(validator(v)), prop);\n const extractValue = (label, prop, obj) => {\n const res = prop.extract([label], obj);\n return SimpleResult.mapError(res, errs => ({\n input: obj,\n errors: errs\n }));\n };\n const asRaw = (label, prop, obj) => SimpleResult.toResult(extractValue(label, prop, obj));\n const getOrDie = extraction => {\n return extraction.fold(errInfo => {\n throw new Error(formatError(errInfo));\n }, identity);\n };\n const asRawOrDie$1 = (label, prop, obj) => getOrDie(asRaw(label, prop, obj));\n const formatError = errInfo => {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n const choose$1 = (key, branches) => choose$2(key, map$1(branches, objOf));\n const thunkOf = (desc, schema) => thunk(desc, schema);\n\n const field$1 = field$2;\n const customField = customField$1;\n const validateEnum = values => valueOf(value => contains$2(values, value) ? Result.value(value) : Result.error(`Unsupported value: \"${ value }\", choose one of \"${ values.join(', ') }\".`));\n const required$1 = key => field$1(key, key, required$2(), anyValue());\n const requiredOf = (key, schema) => field$1(key, key, required$2(), schema);\n const requiredNumber = key => requiredOf(key, number);\n const requiredString = key => requiredOf(key, string);\n const requiredStringEnum = (key, values) => field$1(key, key, required$2(), validateEnum(values));\n const requiredFunction = key => requiredOf(key, functionProcessor);\n const forbid = (key, message) => field$1(key, key, asOption(), value$2(_v => SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message)));\n const requiredObjOf = (key, objSchema) => field$1(key, key, required$2(), objOf(objSchema));\n const requiredArrayOfObj = (key, objFields) => field$1(key, key, required$2(), arrOfObj(objFields));\n const requiredArrayOf = (key, schema) => field$1(key, key, required$2(), arrOf(schema));\n const option$3 = key => field$1(key, key, asOption(), anyValue());\n const optionOf = (key, schema) => field$1(key, key, asOption(), schema);\n const optionNumber = key => optionOf(key, number);\n const optionString = key => optionOf(key, string);\n const optionStringEnum = (key, values) => optionOf(key, validateEnum(values));\n const optionFunction = key => optionOf(key, functionProcessor);\n const optionArrayOf = (key, schema) => optionOf(key, arrOf(schema));\n const optionObjOf = (key, objSchema) => optionOf(key, objOf(objSchema));\n const optionObjOfOnly = (key, objSchema) => optionOf(key, objOfOnly(objSchema));\n const defaulted = (key, fallback) => field$1(key, key, defaulted$1(fallback), anyValue());\n const defaultedOf = (key, fallback, schema) => field$1(key, key, defaulted$1(fallback), schema);\n const defaultedNumber = (key, fallback) => defaultedOf(key, fallback, number);\n const defaultedString = (key, fallback) => defaultedOf(key, fallback, string);\n const defaultedStringEnum = (key, fallback, values) => defaultedOf(key, fallback, validateEnum(values));\n const defaultedBoolean = (key, fallback) => defaultedOf(key, fallback, boolean);\n const defaultedFunction = (key, fallback) => defaultedOf(key, fallback, functionProcessor);\n const defaultedPostMsg = (key, fallback) => defaultedOf(key, fallback, postMessageable);\n const defaultedArrayOf = (key, fallback, schema) => defaultedOf(key, fallback, arrOf(schema));\n const defaultedObjOf = (key, fallback, objSchema) => defaultedOf(key, fallback, objOf(objSchema));\n\n const generate$7 = cases => {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$1(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate: generate$7 };\n\n Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n const partition$1 = results => {\n const errors = [];\n const values = [];\n each$1(results, result => {\n result.fold(err => {\n errors.push(err);\n }, value => {\n values.push(value);\n });\n });\n return {\n errors,\n values\n };\n };\n\n const exclude$1 = (obj, fields) => {\n const r = {};\n each(obj, (v, k) => {\n if (!contains$2(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n const wrap$2 = (key, value) => ({ [key]: value });\n const wrapAll$1 = keyvalues => {\n const r = {};\n each$1(keyvalues, kv => {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n const exclude = (obj, fields) => exclude$1(obj, fields);\n const wrap$1 = (key, value) => wrap$2(key, value);\n const wrapAll = keyvalues => wrapAll$1(keyvalues);\n const mergeValues = (values, base) => {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge$1.apply(undefined, values)));\n };\n const mergeErrors = errors => Result.error(flatten(errors));\n const consolidate = (objs, base) => {\n const partitions = partition$1(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n\n const ensureIsRoot = isRoot => isFunction(isRoot) ? isRoot : never;\n const ancestor$2 = (scope, transform, isRoot) => {\n let element = scope.dom;\n const stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n const transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$4 = (scope, transform, isRoot) => {\n const current = transform(scope);\n const stop = ensureIsRoot(isRoot);\n return current.orThunk(() => stop(scope) ? Optional.none() : ancestor$2(scope, transform, stop));\n };\n\n const isSource = (component, simulatedEvent) => eq(component.element, simulatedEvent.event.target);\n\n const defaultEventHandler = {\n can: always,\n abort: never,\n run: noop\n };\n const nu$9 = parts => {\n if (!hasNonNullableKey(parts, 'can') && !hasNonNullableKey(parts, 'abort') && !hasNonNullableKey(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + JSON.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n return {\n ...defaultEventHandler,\n ...parts\n };\n };\n const all$2 = (handlers, f) => (...args) => foldl(handlers, (acc, handler) => acc && f(handler).apply(undefined, args), true);\n const any = (handlers, f) => (...args) => foldl(handlers, (acc, handler) => acc || f(handler).apply(undefined, args), false);\n const read$2 = handler => isFunction(handler) ? {\n can: always,\n abort: never,\n run: handler\n } : handler;\n const fuse$1 = handlers => {\n const can = all$2(handlers, handler => handler.can);\n const abort = any(handlers, handler => handler.abort);\n const run = (...args) => {\n each$1(handlers, handler => {\n handler.run.apply(undefined, args);\n });\n };\n return {\n can,\n abort,\n run\n };\n };\n\n const constant = constant$1;\n const touchstart = constant('touchstart');\n const touchmove = constant('touchmove');\n const touchend = constant('touchend');\n const touchcancel = constant('touchcancel');\n const mousedown = constant('mousedown');\n const mousemove = constant('mousemove');\n const mouseout = constant('mouseout');\n const mouseup = constant('mouseup');\n const mouseover = constant('mouseover');\n const focusin = constant('focusin');\n const focusout = constant('focusout');\n const keydown = constant('keydown');\n const keyup = constant('keyup');\n const input = constant('input');\n const change = constant('change');\n const click = constant('click');\n const transitioncancel = constant('transitioncancel');\n const transitionend = constant('transitionend');\n const transitionstart = constant('transitionstart');\n const selectstart = constant('selectstart');\n\n const prefixName = name => constant$1('alloy.' + name);\n const alloy = { tap: prefixName('tap') };\n const focus$4 = prefixName('focus');\n const postBlur = prefixName('blur.post');\n const postPaste = prefixName('paste.post');\n const receive = prefixName('receive');\n const execute$5 = prefixName('execute');\n const focusItem = prefixName('focus.item');\n const tap = alloy.tap;\n const longpress = prefixName('longpress');\n const sandboxClose = prefixName('sandbox.close');\n const typeaheadCancel = prefixName('typeahead.cancel');\n const systemInit = prefixName('system.init');\n const documentTouchmove = prefixName('system.touchmove');\n const documentTouchend = prefixName('system.touchend');\n const windowScroll = prefixName('system.scroll');\n const windowResize = prefixName('system.resize');\n const attachedToDom = prefixName('system.attached');\n const detachedFromDom = prefixName('system.detached');\n const dismissRequested = prefixName('system.dismissRequested');\n const repositionRequested = prefixName('system.repositionRequested');\n const focusShifted = prefixName('focusmanager.shifted');\n const slotVisibility = prefixName('slotcontainer.visibility');\n const externalElementScroll = prefixName('system.external.element.scroll');\n const changeTab = prefixName('change.tab');\n const dismissTab = prefixName('dismiss.tab');\n const highlight$1 = prefixName('highlight');\n const dehighlight$1 = prefixName('dehighlight');\n\n const emit = (component, event) => {\n dispatchWith(component, component.element, event, {});\n };\n const emitWith = (component, event, properties) => {\n dispatchWith(component, component.element, event, properties);\n };\n const emitExecute = component => {\n emit(component, execute$5());\n };\n const dispatch = (component, target, event) => {\n dispatchWith(component, target, event, {});\n };\n const dispatchWith = (component, target, event, properties) => {\n const data = {\n target,\n ...properties\n };\n component.getSystem().triggerEvent(event, target, data);\n };\n const retargetAndDispatchWith = (component, target, eventName, properties) => {\n const data = {\n ...properties,\n target\n };\n component.getSystem().triggerEvent(eventName, target, data);\n };\n const dispatchEvent = (component, target, event, simulatedEvent) => {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event);\n };\n\n const derive$2 = configs => wrapAll(configs);\n const abort = (name, predicate) => {\n return {\n key: name,\n value: nu$9({ abort: predicate })\n };\n };\n const can = (name, predicate) => {\n return {\n key: name,\n value: nu$9({ can: predicate })\n };\n };\n const preventDefault = name => {\n return {\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n simulatedEvent.event.prevent();\n }\n })\n };\n };\n const run$1 = (name, handler) => {\n return {\n key: name,\n value: nu$9({ run: handler })\n };\n };\n const runActionExtra = (name, action, extra) => {\n return {\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n action.apply(undefined, [\n component,\n simulatedEvent\n ].concat(extra));\n }\n })\n };\n };\n const runOnName = name => {\n return handler => run$1(name, handler);\n };\n const runOnSourceName = name => {\n return handler => ({\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n });\n };\n const redirectToUid = (name, uid) => {\n return run$1(name, (component, simulatedEvent) => {\n component.getSystem().getByUid(uid).each(redirectee => {\n dispatchEvent(redirectee, redirectee.element, name, simulatedEvent);\n });\n });\n };\n const redirectToPart = (name, detail, partName) => {\n const uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n const runWithTarget = (name, f) => {\n return run$1(name, (component, simulatedEvent) => {\n const ev = simulatedEvent.event;\n const target = component.getSystem().getByDom(ev.target).getOrThunk(() => {\n const closest = closest$4(ev.target, el => component.getSystem().getByDom(el).toOptional(), never);\n return closest.getOr(component);\n });\n f(component, target, simulatedEvent);\n });\n };\n const cutter = name => {\n return run$1(name, (component, simulatedEvent) => {\n simulatedEvent.cut();\n });\n };\n const stopper = name => {\n return run$1(name, (component, simulatedEvent) => {\n simulatedEvent.stop();\n });\n };\n const runOnSource = (name, f) => {\n return runOnSourceName(name)(f);\n };\n const runOnAttached = runOnSourceName(attachedToDom());\n const runOnDetached = runOnSourceName(detachedFromDom());\n const runOnInit = runOnSourceName(systemInit());\n const runOnExecute$1 = runOnName(execute$5());\n\n const markAsBehaviourApi = (f, apiName, apiFunction) => {\n const delegate = apiFunction.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n });\n return f;\n };\n const cleanParameters = parameters => map$2(parameters, p => endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p);\n const markAsExtraApi = (f, extraName) => {\n const delegate = f.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: extraName,\n parameters: cleanParameters(parameters)\n });\n return f;\n };\n const markAsSketchApi = (f, apiFunction) => {\n const delegate = apiFunction.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n });\n return f;\n };\n\n const nu$8 = s => ({\n classes: isUndefined(s.classes) ? [] : s.classes,\n attributes: isUndefined(s.attributes) ? {} : s.attributes,\n styles: isUndefined(s.styles) ? {} : s.styles\n });\n const merge = (defnA, mod) => ({\n ...defnA,\n attributes: {\n ...defnA.attributes,\n ...mod.attributes\n },\n styles: {\n ...defnA.styles,\n ...mod.styles\n },\n classes: defnA.classes.concat(mod.classes)\n });\n\n const executeEvent = (bConfig, bState, executor) => runOnExecute$1(component => {\n executor(component, bConfig, bState);\n });\n const loadEvent = (bConfig, bState, f) => runOnInit((component, _simulatedEvent) => {\n f(component, bConfig, bState);\n });\n const create$5 = (schema, name, active, apis, extra, state) => {\n const configSchema = objOfOnly(schema);\n const schemaSchema = optionObjOf(name, [optionObjOfOnly('config', schema)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n const createModes$1 = (modes, name, active, apis, extra, state) => {\n const configSchema = modes;\n const schemaSchema = optionObjOf(name, [optionOf('config', modes)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n const wrapApi = (bName, apiFunction, apiName) => {\n const f = (component, ...rest) => {\n const args = [component].concat(rest);\n return component.config({ name: constant$1(bName) }).fold(() => {\n throw new Error('We could not find any behaviour configuration for: ' + bName + '. Using API: ' + apiName);\n }, info => {\n const rest = Array.prototype.slice.call(args, 1);\n return apiFunction.apply(undefined, [\n component,\n info.config,\n info.state\n ].concat(rest));\n });\n };\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n const revokeBehaviour = name => ({\n key: name,\n value: undefined\n });\n const doCreate = (configSchema, schemaSchema, name, active, apis, extra, state) => {\n const getConfig = info => hasNonNullableKey(info, name) ? info[name]() : Optional.none();\n const wrappedApis = map$1(apis, (apiF, apiName) => wrapApi(name, apiF, apiName));\n const wrappedExtra = map$1(extra, (extraF, extraName) => markAsExtraApi(extraF, extraName));\n const me = {\n ...wrappedExtra,\n ...wrappedApis,\n revoke: curry(revokeBehaviour, name),\n config: spec => {\n const prepared = asRawOrDie$1(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me,\n configAsRaw: cached(() => asRawOrDie$1(name + '-config', configSchema, spec)),\n initialConfig: spec,\n state\n }\n };\n },\n schema: constant$1(schemaSchema),\n exhibit: (info, base) => {\n return lift2(getConfig(info), get$h(active, 'exhibit'), (behaviourInfo, exhibitor) => {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n }).getOrThunk(() => nu$8({}));\n },\n name: constant$1(name),\n handlers: info => {\n return getConfig(info).map(behaviourInfo => {\n const getEvents = get$h(active, 'events').getOr(() => ({}));\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n };\n return me;\n };\n\n const NoState = { init: () => nu$7({ readState: constant$1('No State required') }) };\n const nu$7 = spec => spec;\n\n const derive$1 = capabilities => wrapAll(capabilities);\n const simpleSchema = objOfOnly([\n required$1('fields'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n const create$4 = data => {\n const value = asRawOrDie$1('Creating behaviour: ' + data.name, simpleSchema, data);\n return create$5(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n const modeSchema = objOfOnly([\n required$1('branchKey'),\n required$1('branches'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n const createModes = data => {\n const value = asRawOrDie$1('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes$1(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n const revoke = constant$1(undefined);\n\n const read$1 = (element, attr) => {\n const value = get$g(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$4 = (element, attr, id) => {\n const old = read$1(element, attr);\n const nu = old.concat([id]);\n set$9(element, attr, nu.join(' '));\n return true;\n };\n const remove$5 = (element, attr, id) => {\n const nu = filter$2(read$1(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$9(element, attr, nu.join(' '));\n } else {\n remove$8(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$a = element => read$1(element, 'class');\n const add$3 = (element, clazz) => add$4(element, 'class', clazz);\n const remove$4 = (element, clazz) => remove$5(element, 'class', clazz);\n const toggle$5 = (element, clazz) => {\n if (contains$2(get$a(element), clazz)) {\n return remove$4(element, clazz);\n } else {\n return add$3(element, clazz);\n }\n };\n\n const add$2 = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$a(element);\n if (classList.length === 0) {\n remove$8(element, 'class');\n }\n };\n const remove$3 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$4(element, clazz);\n }\n cleanClass(element);\n };\n const toggle$4 = (element, clazz) => {\n const result = supports(element) ? element.dom.classList.toggle(clazz) : toggle$5(element, clazz);\n cleanClass(element);\n return result;\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const add$1 = (element, classes) => {\n each$1(classes, x => {\n add$2(element, x);\n });\n };\n const remove$2 = (element, classes) => {\n each$1(classes, x => {\n remove$3(element, x);\n });\n };\n const toggle$3 = (element, classes) => {\n each$1(classes, x => {\n toggle$4(element, x);\n });\n };\n const hasAll = (element, classes) => forall(classes, clazz => has(element, clazz));\n const getNative = element => {\n const classList = element.dom.classList;\n const r = new Array(classList.length);\n for (let i = 0; i < classList.length; i++) {\n const item = classList.item(i);\n if (item !== null) {\n r[i] = item;\n }\n }\n return r;\n };\n const get$9 = element => supports(element) ? getNative(element) : get$a(element);\n\n const NuPositionCss = (position, left, top, right, bottom) => {\n const toPx = num => num + 'px';\n return {\n position,\n left: left.map(toPx),\n top: top.map(toPx),\n right: right.map(toPx),\n bottom: bottom.map(toPx)\n };\n };\n const toOptions = position => ({\n ...position,\n position: Optional.some(position.position)\n });\n const applyPositionCss = (element, position) => {\n setOptions(element, toOptions(position));\n };\n\n const getOffsetParent = element => {\n const isFixed = is$1(getRaw(element, 'position'), 'fixed');\n const offsetParent$1 = isFixed ? Optional.none() : offsetParent(element);\n return offsetParent$1.orThunk(() => {\n const marker = SugarElement.fromTag('span');\n return parent(element).bind(parent => {\n append$2(parent, marker);\n const offsetParent$1 = offsetParent(marker);\n remove$6(marker);\n return offsetParent$1;\n });\n });\n };\n const getOrigin = element => getOffsetParent(element).map(absolute$3).getOrThunk(() => SugarPosition(0, 0));\n\n const appear = (component, contextualInfo) => {\n const elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$3(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n const disappear = (component, contextualInfo) => {\n const elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$3(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n const isPartiallyVisible = (box, bounds) => box.y < bounds.bottom && box.bottom > bounds.y;\n const isTopCompletelyVisible = (box, bounds) => box.y >= bounds.y;\n const isBottomCompletelyVisible = (box, bounds) => box.bottom <= bounds.bottom;\n const forceTopPosition = (winBox, leftX, viewport) => ({\n location: 'top',\n leftX,\n topY: viewport.bounds.y - winBox.y\n });\n const forceBottomPosition = (winBox, leftX, viewport) => ({\n location: 'bottom',\n leftX,\n bottomY: winBox.bottom - viewport.bounds.bottom\n });\n const getDockedLeftPosition = bounds => {\n return bounds.box.x - bounds.win.x;\n };\n const tryDockingPosition = (modes, bounds, viewport) => {\n const winBox = bounds.win;\n const box = bounds.box;\n const leftX = getDockedLeftPosition(bounds);\n return findMap(modes, mode => {\n switch (mode) {\n case 'bottom':\n return !isBottomCompletelyVisible(box, viewport.bounds) ? Optional.some(forceBottomPosition(winBox, leftX, viewport)) : Optional.none();\n case 'top':\n return !isTopCompletelyVisible(box, viewport.bounds) ? Optional.some(forceTopPosition(winBox, leftX, viewport)) : Optional.none();\n default:\n return Optional.none();\n }\n }).getOr({ location: 'no-dock' });\n };\n const isVisibleForModes = (modes, box, viewport) => forall(modes, mode => {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport.bounds);\n case 'top':\n return isTopCompletelyVisible(box, viewport.bounds);\n }\n });\n const getXYForRestoring = (pos, viewport) => {\n const priorY = viewport.optScrollEnv.fold(constant$1(pos.bounds.y), scrollEnv => scrollEnv.scrollElmTop + (pos.bounds.y - scrollEnv.currentScrollTop));\n return SugarPosition(pos.bounds.x, priorY);\n };\n const getXYForSaving = (box, viewport) => {\n const priorY = viewport.optScrollEnv.fold(constant$1(box.y), scrollEnv => box.y + scrollEnv.currentScrollTop - scrollEnv.scrollElmTop);\n return SugarPosition(box.x, priorY);\n };\n const getPrior = (elem, viewport, state) => state.getInitialPos().map(pos => {\n const xy = getXYForRestoring(pos, viewport);\n return {\n box: bounds(xy.left, xy.top, get$d(elem), get$e(elem)),\n location: pos.location\n };\n });\n const storePrior = (elem, box, viewport, state, decision) => {\n const xy = getXYForSaving(box, viewport);\n const bounds$1 = bounds(xy.left, xy.top, box.width, box.height);\n state.setInitialPos({\n style: getAllRaw(elem),\n position: get$f(elem, 'position') || 'static',\n bounds: bounds$1,\n location: decision.location\n });\n };\n const storePriorIfNone = (elem, box, viewport, state, decision) => {\n state.getInitialPos().fold(() => storePrior(elem, box, viewport, state, decision), () => noop);\n };\n const revertToOriginal = (elem, box, state) => state.getInitialPos().bind(position => {\n var _a;\n state.clearInitialPos();\n switch (position.position) {\n case 'static':\n return Optional.some({ morph: 'static' });\n case 'absolute':\n const offsetParent = getOffsetParent(elem).getOr(body());\n const offsetBox = box$1(offsetParent);\n const scrollDelta = (_a = offsetParent.dom.scrollTop) !== null && _a !== void 0 ? _a : 0;\n return Optional.some({\n morph: 'absolute',\n positionCss: NuPositionCss('absolute', get$h(position.style, 'left').map(_left => box.x - offsetBox.x), get$h(position.style, 'top').map(_top => box.y - offsetBox.y + scrollDelta), get$h(position.style, 'right').map(_right => offsetBox.right - box.right), get$h(position.style, 'bottom').map(_bottom => offsetBox.bottom - box.bottom))\n });\n default:\n return Optional.none();\n }\n });\n const tryMorphToOriginal = (elem, viewport, state) => getPrior(elem, viewport, state).filter(({box}) => isVisibleForModes(state.getModes(), box, viewport)).bind(({box}) => revertToOriginal(elem, box, state));\n const tryDecisionToFixedMorph = decision => {\n switch (decision.location) {\n case 'top': {\n return Optional.some({\n morph: 'fixed',\n positionCss: NuPositionCss('fixed', Optional.some(decision.leftX), Optional.some(decision.topY), Optional.none(), Optional.none())\n });\n }\n case 'bottom': {\n return Optional.some({\n morph: 'fixed',\n positionCss: NuPositionCss('fixed', Optional.some(decision.leftX), Optional.none(), Optional.none(), Optional.some(decision.bottomY))\n });\n }\n default:\n return Optional.none();\n }\n };\n const tryMorphToFixed = (elem, viewport, state) => {\n const box = box$1(elem);\n const winBox = win();\n const decision = tryDockingPosition(state.getModes(), {\n win: winBox,\n box\n }, viewport);\n if (decision.location === 'top' || decision.location === 'bottom') {\n storePrior(elem, box, viewport, state, decision);\n return tryDecisionToFixedMorph(decision);\n } else {\n return Optional.none();\n }\n };\n const tryMorphToOriginalOrUpdateFixed = (elem, viewport, state) => {\n return tryMorphToOriginal(elem, viewport, state).orThunk(() => {\n return viewport.optScrollEnv.bind(_ => getPrior(elem, viewport, state)).bind(({box, location}) => {\n const winBox = win();\n const leftX = getDockedLeftPosition({\n win: winBox,\n box\n });\n const decision = location === 'top' ? forceTopPosition(winBox, leftX, viewport) : forceBottomPosition(winBox, leftX, viewport);\n return tryDecisionToFixedMorph(decision);\n });\n });\n };\n const tryMorph = (component, viewport, state) => {\n const elem = component.element;\n const isDocked = is$1(getRaw(elem, 'position'), 'fixed');\n return isDocked ? tryMorphToOriginalOrUpdateFixed(elem, viewport, state) : tryMorphToFixed(elem, viewport, state);\n };\n const calculateMorphToOriginal = (component, viewport, state) => {\n const elem = component.element;\n return getPrior(elem, viewport, state).bind(({box}) => revertToOriginal(elem, box, state));\n };\n const forceDockWith = (elem, viewport, state, getDecision) => {\n const box = box$1(elem);\n const winBox = win();\n const leftX = getDockedLeftPosition({\n win: winBox,\n box\n });\n const decision = getDecision(winBox, leftX, viewport);\n if (decision.location === 'bottom' || decision.location === 'top') {\n storePriorIfNone(elem, box, viewport, state, decision);\n return tryDecisionToFixedMorph(decision);\n } else {\n return Optional.none();\n }\n };\n\n const morphToStatic = (component, config, state) => {\n state.setDocked(false);\n each$1([\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'position'\n ], prop => remove$7(component.element, prop));\n config.onUndocked(component);\n };\n const morphToCoord = (component, config, state, position) => {\n const isDocked = position.position === 'fixed';\n state.setDocked(isDocked);\n applyPositionCss(component.element, position);\n const method = isDocked ? config.onDocked : config.onUndocked;\n method(component);\n };\n const updateVisibility = (component, config, state, viewport, morphToDocked = false) => {\n config.contextual.each(contextInfo => {\n contextInfo.lazyContext(component).each(box => {\n const isVisible = isPartiallyVisible(box, viewport.bounds);\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n if (morphToDocked && !isVisible) {\n add$1(component.element, [contextInfo.fadeOutClass]);\n contextInfo.onHide(component);\n } else {\n const method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n const applyFixedMorph = (component, config, state, viewport, morph) => {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, state, morph.positionCss);\n };\n const applyMorph = (component, config, state, viewport, morph) => {\n switch (morph.morph) {\n case 'static': {\n return morphToStatic(component, config, state);\n }\n case 'absolute': {\n return morphToCoord(component, config, state, morph.positionCss);\n }\n case 'fixed': {\n return applyFixedMorph(component, config, state, viewport, morph);\n }\n }\n };\n const refreshInternal = (component, config, state) => {\n const viewport = config.lazyViewport(component);\n updateVisibility(component, config, state, viewport);\n tryMorph(component, viewport, state).each(morph => {\n applyMorph(component, config, state, viewport, morph);\n });\n };\n const resetInternal = (component, config, state) => {\n const elem = component.element;\n state.setDocked(false);\n const viewport = config.lazyViewport(component);\n calculateMorphToOriginal(component, viewport, state).each(staticOrAbsoluteMorph => {\n switch (staticOrAbsoluteMorph.morph) {\n case 'static': {\n morphToStatic(component, config, state);\n break;\n }\n case 'absolute': {\n morphToCoord(component, config, state, staticOrAbsoluteMorph.positionCss);\n break;\n }\n }\n });\n state.setVisible(true);\n config.contextual.each(contextInfo => {\n remove$2(elem, [\n contextInfo.fadeInClass,\n contextInfo.fadeOutClass,\n contextInfo.transitionClass\n ]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n const refresh$4 = (component, config, state) => {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n const reset$2 = (component, config, state) => {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n const forceDockWithDecision = getDecision => (component, config, state) => {\n const viewport = config.lazyViewport(component);\n const optMorph = forceDockWith(component.element, viewport, state, getDecision);\n optMorph.each(morph => {\n applyFixedMorph(component, config, state, viewport, morph);\n });\n };\n const forceDockToTop = forceDockWithDecision(forceTopPosition);\n const forceDockToBottom = forceDockWithDecision(forceBottomPosition);\n const isDocked$2 = (component, config, state) => state.isDocked();\n const setModes = (component, config, state, modes) => state.setModes(modes);\n const getModes = (component, config, state) => state.getModes();\n\n var DockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$4,\n reset: reset$2,\n isDocked: isDocked$2,\n getModes: getModes,\n setModes: setModes,\n forceDockToTop: forceDockToTop,\n forceDockToBottom: forceDockToBottom\n });\n\n const events$i = (dockInfo, dockState) => derive$2([\n runOnSource(transitionend(), (component, simulatedEvent) => {\n dockInfo.contextual.each(contextInfo => {\n if (has(component.element, contextInfo.transitionClass)) {\n remove$2(component.element, [\n contextInfo.transitionClass,\n contextInfo.fadeInClass\n ]);\n const notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }),\n run$1(windowScroll(), (component, _) => {\n refresh$4(component, dockInfo, dockState);\n }),\n run$1(externalElementScroll(), (component, _) => {\n refresh$4(component, dockInfo, dockState);\n }),\n run$1(windowResize(), (component, _) => {\n reset$2(component, dockInfo, dockState);\n })\n ]);\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$i\n });\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children(SugarElement.fromDom(div));\n };\n\n const get$8 = element => element.dom.innerHTML;\n const set$6 = (element, content) => {\n const owner = owner$4(element);\n const docDom = owner.dom;\n const fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n const contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append$2(element, fragment);\n };\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$2(container, clone);\n return get$8(container);\n };\n\n const clone$1 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow = original => clone$1(original, false);\n const deep = original => clone$1(original, true);\n\n const getHtml = element => {\n if (isShadowRoot(element)) {\n return '#shadow-root';\n } else {\n const clone = shallow(element);\n return getOuter(clone);\n }\n };\n\n const element = elem => getHtml(elem);\n\n const unknown = 'unknown';\n var EventConfiguration;\n (function (EventConfiguration) {\n EventConfiguration[EventConfiguration['STOP'] = 0] = 'STOP';\n EventConfiguration[EventConfiguration['NORMAL'] = 1] = 'NORMAL';\n EventConfiguration[EventConfiguration['LOGGING'] = 2] = 'LOGGING';\n }(EventConfiguration || (EventConfiguration = {})));\n const eventConfig = Cell({});\n const makeEventLogger = (eventName, initialTarget) => {\n const sequence = [];\n const startTime = new Date().getTime();\n return {\n logEventCut: (_name, target, purpose) => {\n sequence.push({\n outcome: 'cut',\n target,\n purpose\n });\n },\n logEventStopped: (_name, target, purpose) => {\n sequence.push({\n outcome: 'stopped',\n target,\n purpose\n });\n },\n logNoParent: (_name, target, purpose) => {\n sequence.push({\n outcome: 'no-parent',\n target,\n purpose\n });\n },\n logEventNoHandlers: (_name, target) => {\n sequence.push({\n outcome: 'no-handlers-left',\n target\n });\n },\n logEventResponse: (_name, target, purpose) => {\n sequence.push({\n outcome: 'response',\n purpose,\n target\n });\n },\n write: () => {\n const finishTime = new Date().getTime();\n if (contains$2([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom,\n sequence: map$2(sequence, s => {\n if (!contains$2([\n 'cut',\n 'stopped',\n 'response'\n ], s.outcome)) {\n return s.outcome;\n } else {\n return '{' + s.purpose + '} ' + s.outcome + ' at (' + element(s.target) + ')';\n }\n })\n });\n }\n };\n };\n const processEvent = (eventName, initialTarget, f) => {\n const status = get$h(eventConfig.get(), eventName).orThunk(() => {\n const patterns = keys(eventConfig.get());\n return findMap(patterns, p => eventName.indexOf(p) > -1 ? Optional.some(eventConfig.get()[p]) : Optional.none());\n }).getOr(EventConfiguration.NORMAL);\n switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n case EventConfiguration.LOGGING: {\n const logger = makeEventLogger(eventName, initialTarget);\n const output = f(logger);\n logger.write();\n return output;\n }\n case EventConfiguration.STOP:\n return true;\n }\n };\n const path = [\n 'alloy/data/Fields',\n 'alloy/debugging/Debugging'\n ];\n const getTrace = () => {\n const err = new Error();\n if (err.stack !== undefined) {\n const lines = err.stack.split('\\n');\n return find$5(lines, line => line.indexOf('alloy') > 0 && !exists(path, p => line.indexOf(p) > -1)).getOr(unknown);\n } else {\n return unknown;\n }\n };\n const ignoreEvent = {\n logEventCut: noop,\n logEventStopped: noop,\n logNoParent: noop,\n logEventNoHandlers: noop,\n logEventResponse: noop,\n write: noop\n };\n const monitorEvent = (eventName, initialTarget, f) => processEvent(eventName, initialTarget, f);\n const noLogger = constant$1(ignoreEvent);\n\n const menuFields = constant$1([\n required$1('menu'),\n required$1('selectedMenu')\n ]);\n const itemFields = constant$1([\n required$1('item'),\n required$1('selectedItem')\n ]);\n constant$1(objOf(itemFields().concat(menuFields())));\n const itemSchema$3 = constant$1(objOf(itemFields()));\n\n const _initSize = requiredObjOf('initSize', [\n required$1('numColumns'),\n required$1('numRows')\n ]);\n const itemMarkers = () => requiredOf('markers', itemSchema$3());\n const tieredMenuMarkers = () => requiredObjOf('markers', [required$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n const markers$1 = required => requiredObjOf('markers', map$2(required, required$1));\n const onPresenceHandler = (label, fieldName, presence) => {\n getTrace();\n return field$1(fieldName, fieldName, presence, valueOf(f => Result.value((...args) => {\n return f.apply(undefined, args);\n })));\n };\n const onHandler = fieldName => onPresenceHandler('onHandler', fieldName, defaulted$1(noop));\n const onKeyboardHandler = fieldName => onPresenceHandler('onKeyboardHandler', fieldName, defaulted$1(Optional.none));\n const onStrictHandler = fieldName => onPresenceHandler('onHandler', fieldName, required$2());\n const onStrictKeyboardHandler = fieldName => onPresenceHandler('onKeyboardHandler', fieldName, required$2());\n const output$1 = (name, value) => customField(name, constant$1(value));\n const snapshot = name => customField(name, identity);\n const initSize = constant$1(_initSize);\n\n var DockingSchema = [\n optionObjOf('contextual', [\n requiredString('fadeInClass'),\n requiredString('fadeOutClass'),\n requiredString('transitionClass'),\n requiredFunction('lazyContext'),\n onHandler('onShow'),\n onHandler('onShown'),\n onHandler('onHide'),\n onHandler('onHidden')\n ]),\n defaultedFunction('lazyViewport', () => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n })),\n defaultedArrayOf('modes', [\n 'top',\n 'bottom'\n ], string),\n onHandler('onDocked'),\n onHandler('onUndocked')\n ];\n\n const init$g = spec => {\n const docked = Cell(false);\n const visible = Cell(true);\n const initialBounds = value$4();\n const modes = Cell(spec.modes);\n const readState = () => `docked: ${ docked.get() }, visible: ${ visible.get() }, modes: ${ modes.get().join(',') }`;\n return nu$7({\n isDocked: docked.get,\n setDocked: docked.set,\n getInitialPos: initialBounds.get,\n setInitialPos: initialBounds.set,\n clearInitialPos: initialBounds.clear,\n isVisible: visible.get,\n setVisible: visible.set,\n getModes: modes.get,\n setModes: modes.set,\n readState\n });\n };\n\n var DockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$g\n });\n\n const Docking = create$4({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n\n const isRecursive = (component, originator, target) => eq(originator, component.element) && !eq(originator, target);\n const events$h = derive$2([can(focus$4(), (component, simulatedEvent) => {\n const event = simulatedEvent.event;\n const originator = event.originator;\n const target = event.target;\n if (isRecursive(component, originator, target)) {\n console.warn(focus$4() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus$4() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$h\n });\n\n const cycleBy = (value, delta, min, max) => {\n const r = value + delta;\n if (r > max) {\n return min;\n } else if (r < min) {\n return max;\n } else {\n return r;\n }\n };\n const clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n const random = () => window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295;\n\n let unique = 0;\n const generate$6 = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random$1 = Math.floor(random() * 1000000000);\n unique++;\n return prefix + '_' + random$1 + unique + String(time);\n };\n\n const prefix$1 = constant$1('alloy-id-');\n const idAttr$1 = constant$1('data-alloy-id');\n\n const prefix = prefix$1();\n const idAttr = idAttr$1();\n const write = (label, elem) => {\n const id = generate$6(prefix + label);\n writeOnly(elem, id);\n return id;\n };\n const writeOnly = (elem, uid) => {\n Object.defineProperty(elem.dom, idAttr, {\n value: uid,\n writable: true\n });\n };\n const read = elem => {\n const id = isElement$1(elem) ? elem.dom[idAttr] : null;\n return Optional.from(id);\n };\n const generate$5 = prefix => generate$6(prefix);\n\n const make$8 = identity;\n\n const NoContextApi = getComp => {\n const getMessage = event => `The component must be in a context to execute: ${ event }` + (getComp ? '\\n' + element(getComp().element) + ' is not in context.' : '');\n const fail = event => () => {\n throw new Error(getMessage(event));\n };\n const warn = event => () => {\n console.warn(getMessage(event));\n };\n return {\n debugInfo: constant$1('fake'),\n triggerEvent: warn('triggerEvent'),\n triggerFocus: warn('triggerFocus'),\n triggerEscape: warn('triggerEscape'),\n broadcast: warn('broadcast'),\n broadcastOn: warn('broadcastOn'),\n broadcastEvent: warn('broadcastEvent'),\n build: fail('build'),\n buildOrPatch: fail('buildOrPatch'),\n addToWorld: fail('addToWorld'),\n removeFromWorld: fail('removeFromWorld'),\n addToGui: fail('addToGui'),\n removeFromGui: fail('removeFromGui'),\n getByUid: fail('getByUid'),\n getByDom: fail('getByDom'),\n isConnected: never\n };\n };\n const singleton = NoContextApi();\n\n const premadeTag = generate$6('alloy-premade');\n const premade$1 = comp => {\n Object.defineProperty(comp.element.dom, premadeTag, {\n value: comp.uid,\n writable: true\n });\n return wrap$1(premadeTag, comp);\n };\n const isPremade = element => has$2(element.dom, premadeTag);\n const getPremade = spec => get$h(spec, premadeTag);\n const makeApi = f => markAsSketchApi((component, ...rest) => f(component.getApis(), component, ...rest), f);\n\n const generateFrom$1 = (spec, all) => {\n const schema = map$2(all, a => optionObjOf(a.name(), [\n required$1('config'),\n defaulted('state', NoState)\n ]));\n const validated = asRaw('component.behaviours', objOf(schema), spec.behaviours).fold(errInfo => {\n throw new Error(formatError(errInfo) + '\\nComplete spec:\\n' + JSON.stringify(spec, null, 2));\n }, identity);\n return {\n list: all,\n data: map$1(validated, optBlobThunk => {\n const output = optBlobThunk.map(blob => ({\n config: blob.config,\n state: blob.state.init(blob.config)\n }));\n return constant$1(output);\n })\n };\n };\n const getBehaviours$3 = bData => bData.list;\n const getData$2 = bData => bData.data;\n\n const byInnerKey = (data, tuple) => {\n const r = {};\n each(data, (detail, key) => {\n each(detail, (value, indexKey) => {\n const chain = get$h(r, indexKey).getOr([]);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n const combine$2 = (info, baseMod, behaviours, base) => {\n const modsByBehaviour = { ...baseMod };\n each$1(behaviours, behaviour => {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n const byAspect = byInnerKey(modsByBehaviour, (name, modification) => ({\n name,\n modification\n }));\n const combineObjects = objects => foldr(objects, (b, a) => ({\n ...a.modification,\n ...b\n }), {});\n const combinedClasses = foldr(byAspect.classes, (b, a) => a.modification.concat(b), []);\n const combinedAttributes = combineObjects(byAspect.attributes);\n const combinedStyles = combineObjects(byAspect.styles);\n return nu$8({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n const sortKeys = (label, keyName, array, order) => {\n try {\n const sorted = sort(array, (a, b) => {\n const aKey = a[keyName];\n const bKey = b[keyName];\n const aIndex = order.indexOf(aKey);\n const bIndex = order.indexOf(bKey);\n if (aIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + aKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (bIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + bKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (aIndex < bIndex) {\n return -1;\n } else if (bIndex < aIndex) {\n return 1;\n } else {\n return 0;\n }\n });\n return Result.value(sorted);\n } catch (err) {\n return Result.error([err]);\n }\n };\n\n const uncurried = (handler, purpose) => ({\n handler,\n purpose\n });\n const curried = (handler, purpose) => ({\n cHandler: handler,\n purpose\n });\n const curryArgs = (descHandler, extraArgs) => curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose);\n const getCurried = descHandler => descHandler.cHandler;\n\n const behaviourTuple = (name, handler) => ({\n name,\n handler\n });\n const nameToHandlers = (behaviours, info) => {\n const r = {};\n each$1(behaviours, behaviour => {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n const groupByEvents = (info, behaviours, base) => {\n const behaviourEvents = {\n ...base,\n ...nameToHandlers(behaviours, info)\n };\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n const combine$1 = (info, eventOrder, behaviours, base) => {\n const byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n const assemble = rawHandler => {\n const handler = read$2(rawHandler);\n return (component, simulatedEvent, ...rest) => {\n const args = [\n component,\n simulatedEvent\n ].concat(rest);\n if (handler.abort.apply(undefined, args)) {\n simulatedEvent.stop();\n } else if (handler.can.apply(undefined, args)) {\n handler.run.apply(undefined, args);\n }\n };\n };\n const missingOrderError = (eventName, tuples) => Result.error(['The event (' + eventName + ') has more than one behaviour that listens to it.\\nWhen this occurs, you must ' + 'specify an event ordering for the behaviours in your spec (e.g. [ \"listing\", \"toggling\" ]).\\nThe behaviours that ' + 'can trigger it are: ' + JSON.stringify(map$2(tuples, c => c.name), null, 2)]);\n const fuse = (tuples, eventOrder, eventName) => {\n const order = eventOrder[eventName];\n if (!order) {\n return missingOrderError(eventName, tuples);\n } else {\n return sortKeys('Event: ' + eventName, 'name', tuples, order).map(sortedTuples => {\n const handlers = map$2(sortedTuples, tuple => tuple.handler);\n return fuse$1(handlers);\n });\n }\n };\n const combineGroups = (byEventName, eventOrder) => {\n const r = mapToArray(byEventName, (tuples, eventName) => {\n const combined = tuples.length === 1 ? Result.value(tuples[0].handler) : fuse(tuples, eventOrder, eventName);\n return combined.map(handler => {\n const assembled = assemble(handler);\n const purpose = tuples.length > 1 ? filter$2(eventOrder[eventName], o => exists(tuples, t => t.name === o)).join(' > ') : tuples[0].name;\n return wrap$1(eventName, uncurried(assembled, purpose));\n });\n });\n return consolidate(r, {});\n };\n\n const baseBehaviour = 'alloy.base.behaviour';\n const schema$z = objOf([\n field$1('dom', 'dom', required$2(), objOf([\n required$1('tag'),\n defaulted('styles', {}),\n defaulted('classes', []),\n defaulted('attributes', {}),\n option$3('value'),\n option$3('innerHtml')\n ])),\n required$1('components'),\n required$1('uid'),\n defaulted('events', {}),\n defaulted('apis', {}),\n field$1('eventOrder', 'eventOrder', mergeWith({\n [execute$5()]: [\n 'disabling',\n baseBehaviour,\n 'toggling',\n 'typeaheadevents'\n ],\n [focus$4()]: [\n baseBehaviour,\n 'focusing',\n 'keying'\n ],\n [systemInit()]: [\n baseBehaviour,\n 'disabling',\n 'toggling',\n 'representing',\n 'tooltipping'\n ],\n [input()]: [\n baseBehaviour,\n 'representing',\n 'streaming',\n 'invalidating'\n ],\n [detachedFromDom()]: [\n baseBehaviour,\n 'representing',\n 'item-events',\n 'toolbar-button-events',\n 'tooltipping'\n ],\n [mousedown()]: [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ],\n [touchstart()]: [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ],\n [mouseover()]: [\n 'item-type-events',\n 'tooltipping'\n ],\n [receive()]: [\n 'receiving',\n 'reflecting',\n 'tooltipping'\n ]\n }), anyValue()),\n option$3('domModification')\n ]);\n const toInfo = spec => asRaw('custom.definition', schema$z, spec);\n const toDefinition = detail => ({\n ...detail.dom,\n uid: detail.uid,\n domChildren: map$2(detail.components, comp => comp.element)\n });\n const toModification = detail => detail.domModification.fold(() => nu$8({}), nu$8);\n const toEvents = info => info.events;\n\n const get$7 = element => element.dom.value;\n const set$5 = (element, value) => {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n element.dom.value = value;\n };\n\n const determineObsoleted = (parent, index, oldObsoleted) => {\n const newObsoleted = child$2(parent, index);\n return newObsoleted.map(newObs => {\n const elemChanged = oldObsoleted.exists(o => !eq(o, newObs));\n if (elemChanged) {\n const oldTag = oldObsoleted.map(name$3).getOr('span');\n const marker = SugarElement.fromTag(oldTag);\n before$1(newObs, marker);\n return marker;\n } else {\n return newObs;\n }\n });\n };\n const ensureInDom = (parent, child, obsoleted) => {\n obsoleted.fold(() => append$2(parent, child), obs => {\n if (!eq(obs, child)) {\n before$1(obs, child);\n remove$6(obs);\n }\n });\n };\n const patchChildrenWith = (parent, nu, f) => {\n const builtChildren = map$2(nu, f);\n const currentChildren = children(parent);\n each$1(currentChildren.slice(builtChildren.length), remove$6);\n return builtChildren;\n };\n const patchSpecChild = (parent, index, spec, build) => {\n const oldObsoleted = child$2(parent, index);\n const childComp = build(spec, oldObsoleted);\n const obsoleted = determineObsoleted(parent, index, oldObsoleted);\n ensureInDom(parent, childComp.element, obsoleted);\n return childComp;\n };\n const patchSpecChildren = (parent, specs, build) => patchChildrenWith(parent, specs, (spec, index) => patchSpecChild(parent, index, spec, build));\n const patchDomChildren = (parent, nodes) => patchChildrenWith(parent, nodes, (node, index) => {\n const optObsoleted = child$2(parent, index);\n ensureInDom(parent, node, optObsoleted);\n return node;\n });\n\n const diffKeyValueSet = (newObj, oldObj) => {\n const newKeys = keys(newObj);\n const oldKeys = keys(oldObj);\n const toRemove = difference(oldKeys, newKeys);\n const toSet = bifilter(newObj, (v, k) => {\n return !has$2(oldObj, k) || v !== oldObj[k];\n }).t;\n return {\n toRemove,\n toSet\n };\n };\n const reconcileToDom = (definition, obsoleted) => {\n const {\n class: clazz,\n style,\n ...existingAttributes\n } = clone$2(obsoleted);\n const {\n toSet: attrsToSet,\n toRemove: attrsToRemove\n } = diffKeyValueSet(definition.attributes, existingAttributes);\n const updateAttrs = () => {\n each$1(attrsToRemove, a => remove$8(obsoleted, a));\n setAll$1(obsoleted, attrsToSet);\n };\n const existingStyles = getAllRaw(obsoleted);\n const {\n toSet: stylesToSet,\n toRemove: stylesToRemove\n } = diffKeyValueSet(definition.styles, existingStyles);\n const updateStyles = () => {\n each$1(stylesToRemove, s => remove$7(obsoleted, s));\n setAll(obsoleted, stylesToSet);\n };\n const existingClasses = get$9(obsoleted);\n const classesToRemove = difference(existingClasses, definition.classes);\n const classesToAdd = difference(definition.classes, existingClasses);\n const updateClasses = () => {\n add$1(obsoleted, classesToAdd);\n remove$2(obsoleted, classesToRemove);\n };\n const updateHtml = html => {\n set$6(obsoleted, html);\n };\n const updateChildren = () => {\n const children = definition.domChildren;\n patchDomChildren(obsoleted, children);\n };\n const updateValue = () => {\n const valueElement = obsoleted;\n const value = definition.value.getOrUndefined();\n if (value !== get$7(valueElement)) {\n set$5(valueElement, value !== null && value !== void 0 ? value : '');\n }\n };\n updateAttrs();\n updateClasses();\n updateStyles();\n definition.innerHtml.fold(updateChildren, updateHtml);\n updateValue();\n return obsoleted;\n };\n\n const introduceToDom = definition => {\n const subject = SugarElement.fromTag(definition.tag);\n setAll$1(subject, definition.attributes);\n add$1(subject, definition.classes);\n setAll(subject, definition.styles);\n definition.innerHtml.each(html => set$6(subject, html));\n const children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(value => {\n set$5(subject, value);\n });\n return subject;\n };\n const attemptPatch = (definition, obsoleted) => {\n try {\n const e = reconcileToDom(definition, obsoleted);\n return Optional.some(e);\n } catch (err) {\n return Optional.none();\n }\n };\n const hasMixedChildren = definition => definition.innerHtml.isSome() && definition.domChildren.length > 0;\n const renderToDom = (definition, optObsoleted) => {\n const canBePatched = candidate => name$3(candidate) === definition.tag && !hasMixedChildren(definition) && !isPremade(candidate);\n const elem = optObsoleted.filter(canBePatched).bind(obsoleted => attemptPatch(definition, obsoleted)).getOrThunk(() => introduceToDom(definition));\n writeOnly(elem, definition.uid);\n return elem;\n };\n\n const getBehaviours$2 = spec => {\n const behaviours = get$h(spec, 'behaviours').getOr({});\n return bind$3(keys(behaviours), name => {\n const behaviour = behaviours[name];\n return isNonNullable(behaviour) ? [behaviour.me] : [];\n });\n };\n const generateFrom = (spec, all) => generateFrom$1(spec, all);\n const generate$4 = spec => {\n const all = getBehaviours$2(spec);\n return generateFrom(spec, all);\n };\n\n const getDomDefinition = (info, bList, bData) => {\n const definition = toDefinition(info);\n const infoModification = toModification(info);\n const baseModification = { 'alloy.base.modification': infoModification };\n const modification = bList.length > 0 ? combine$2(bData, baseModification, bList, definition) : infoModification;\n return merge(definition, modification);\n };\n const getEvents = (info, bList, bData) => {\n const baseEvents = { 'alloy.base.behaviour': toEvents(info) };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n const build$2 = (spec, obsoleted) => {\n const getMe = () => me;\n const systemApi = Cell(singleton);\n const info = getOrDie(toInfo(spec));\n const bBlob = generate$4(spec);\n const bList = getBehaviours$3(bBlob);\n const bData = getData$2(bBlob);\n const modDefinition = getDomDefinition(info, bList, bData);\n const item = renderToDom(modDefinition, obsoleted);\n const events = getEvents(info, bList, bData);\n const subcomponents = Cell(info.components);\n const connect = newApi => {\n systemApi.set(newApi);\n };\n const disconnect = () => {\n systemApi.set(NoContextApi(getMe));\n };\n const syncComponents = () => {\n const children$1 = children(item);\n const subs = bind$3(children$1, child => systemApi.get().getByDom(child).fold(() => [], pure$2));\n subcomponents.set(subs);\n };\n const config = behaviour => {\n const b = bData;\n const f = isFunction(b[behaviour.name()]) ? b[behaviour.name()] : () => {\n throw new Error('Could not find ' + behaviour.name() + ' in ' + JSON.stringify(spec, null, 2));\n };\n return f();\n };\n const hasConfigured = behaviour => isFunction(bData[behaviour.name()]);\n const getApis = () => info.apis;\n const readState = behaviourName => bData[behaviourName]().map(b => b.state.readState()).getOr('not enabled');\n const me = {\n uid: spec.uid,\n getSystem: systemApi.get,\n config,\n hasConfigured,\n spec,\n readState,\n getApis,\n connect,\n disconnect,\n element: item,\n syncComponents,\n components: subcomponents.get,\n events\n };\n return me;\n };\n\n const buildSubcomponents = (spec, obsoleted) => {\n const components = get$h(spec, 'components').getOr([]);\n return obsoleted.fold(() => map$2(components, build$1), obs => map$2(components, (c, i) => {\n return buildOrPatch(c, child$2(obs, i));\n }));\n };\n const buildFromSpec = (userSpec, obsoleted) => {\n const {\n events: specEvents,\n ...spec\n } = make$8(userSpec);\n const components = buildSubcomponents(spec, obsoleted);\n const completeSpec = {\n ...spec,\n events: {\n ...DefaultEvents,\n ...specEvents\n },\n components\n };\n return Result.value(build$2(completeSpec, obsoleted));\n };\n const text$2 = textContent => {\n const element = SugarElement.fromText(textContent);\n return external$1({ element });\n };\n const external$1 = spec => {\n const extSpec = asRawOrDie$1('external.component', objOfOnly([\n required$1('element'),\n option$3('uid')\n ]), spec);\n const systemApi = Cell(NoContextApi());\n const connect = newApi => {\n systemApi.set(newApi);\n };\n const disconnect = () => {\n systemApi.set(NoContextApi(() => me));\n };\n const uid = extSpec.uid.getOrThunk(() => generate$5('external'));\n writeOnly(extSpec.element, uid);\n const me = {\n uid,\n getSystem: systemApi.get,\n config: Optional.none,\n hasConfigured: never,\n connect,\n disconnect,\n getApis: () => ({}),\n element: extSpec.element,\n spec,\n readState: constant$1('No state'),\n syncComponents: noop,\n components: constant$1([]),\n events: {}\n };\n return premade$1(me);\n };\n const uids = generate$5;\n const isSketchSpec$1 = spec => has$2(spec, 'uid');\n const buildOrPatch = (spec, obsoleted) => getPremade(spec).getOrThunk(() => {\n const userSpecWithUid = isSketchSpec$1(spec) ? spec : {\n uid: uids(''),\n ...spec\n };\n return buildFromSpec(userSpecWithUid, obsoleted).getOrDie();\n });\n const build$1 = spec => buildOrPatch(spec, Optional.none());\n const premade = premade$1;\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$1 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$3 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);\n };\n const sibling$1 = (scope, predicate) => {\n const element = scope.dom;\n if (!element.parentNode) {\n return Optional.none();\n }\n return child$1(SugarElement.fromDom(element.parentNode), x => !eq(scope, x) && predicate(x));\n };\n const child$1 = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$5(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$1 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const closest$2 = (scope, predicate, isRoot) => closest$3(scope, predicate, isRoot).isSome();\n\n const first$1 = selector => one(selector);\n const ancestor = (scope, selector, isRoot) => ancestor$1(scope, e => is(e, selector), isRoot);\n const sibling = (scope, selector) => sibling$1(scope, e => is(e, selector));\n const child = (scope, selector) => child$1(scope, e => is(e, selector));\n const descendant = (scope, selector) => one(selector, scope);\n const closest$1 = (scope, selector, isRoot) => {\n const is$1 = (element, selector) => is(element, selector);\n return ClosestOrAncestor(is$1, ancestor, scope, selector, isRoot);\n };\n\n const attribute = 'aria-controls';\n const find$1 = queryElem => {\n const dependent = closest$3(queryElem, elem => {\n if (!isElement$1(elem)) {\n return false;\n }\n const id = get$g(elem, 'id');\n return id !== undefined && id.indexOf(attribute) > -1;\n });\n return dependent.bind(dep => {\n const id = get$g(dep, 'id');\n const dos = getRootNode(dep);\n return descendant(dos, `[${ attribute }=\"${ id }\"]`);\n });\n };\n const manager = () => {\n const ariaId = generate$6(attribute);\n const link = elem => {\n set$9(elem, attribute, ariaId);\n };\n const unlink = elem => {\n remove$8(elem, attribute);\n };\n return {\n id: ariaId,\n link,\n unlink\n };\n };\n\n const isAriaPartOf = (component, queryElem) => find$1(queryElem).exists(owner => isPartOf$1(component, owner));\n const isPartOf$1 = (component, queryElem) => closest$2(queryElem, el => eq(el, component.element), never) || isAriaPartOf(component, queryElem);\n\n const nu$6 = (x, y, bubble, direction, placement, boundsRestriction, labelPrefix, alwaysFit = false) => ({\n x,\n y,\n bubble,\n direction,\n placement,\n restriction: boundsRestriction,\n label: `${ labelPrefix }-${ placement }`,\n alwaysFit\n });\n\n const adt$a = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n const cata$2 = (subject, southeast, southwest, northeast, northwest, south, north, east, west) => subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n const cataVertical = (subject, south, middle, north) => subject.fold(south, south, north, north, south, north, middle, middle);\n const cataHorizontal = (subject, east, middle, west) => subject.fold(east, west, east, west, middle, middle, east, west);\n const southeast$3 = adt$a.southeast;\n const southwest$3 = adt$a.southwest;\n const northeast$3 = adt$a.northeast;\n const northwest$3 = adt$a.northwest;\n const south$3 = adt$a.south;\n const north$3 = adt$a.north;\n const east$3 = adt$a.east;\n const west$3 = adt$a.west;\n\n const getRestriction = (anchor, restriction) => {\n switch (restriction) {\n case 1:\n return anchor.x;\n case 0:\n return anchor.x + anchor.width;\n case 2:\n return anchor.y;\n case 3:\n return anchor.y + anchor.height;\n }\n };\n const boundsRestriction = (anchor, restrictions) => mapToObject([\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], dir => get$h(restrictions, dir).map(restriction => getRestriction(anchor, restriction)));\n const adjustBounds = (bounds$1, restriction, bubbleOffset) => {\n const applyRestriction = (dir, current) => restriction[dir].map(pos => {\n const isVerticalAxis = dir === 'top' || dir === 'bottom';\n const offset = isVerticalAxis ? bubbleOffset.top : bubbleOffset.left;\n const comparator = dir === 'left' || dir === 'top' ? Math.max : Math.min;\n const newPos = comparator(pos, current) + offset;\n return isVerticalAxis ? clamp(newPos, bounds$1.y, bounds$1.bottom) : clamp(newPos, bounds$1.x, bounds$1.right);\n }).getOr(current);\n const adjustedLeft = applyRestriction('left', bounds$1.x);\n const adjustedTop = applyRestriction('top', bounds$1.y);\n const adjustedRight = applyRestriction('right', bounds$1.right);\n const adjustedBottom = applyRestriction('bottom', bounds$1.bottom);\n return bounds(adjustedLeft, adjustedTop, adjustedRight - adjustedLeft, adjustedBottom - adjustedTop);\n };\n\n const labelPrefix$2 = 'layout';\n const eastX$1 = anchor => anchor.x;\n const middleX$1 = (anchor, element) => anchor.x + anchor.width / 2 - element.width / 2;\n const westX$1 = (anchor, element) => anchor.x + anchor.width - element.width;\n const northY$2 = (anchor, element) => anchor.y - element.height;\n const southY$2 = anchor => anchor.y + anchor.height;\n const centreY$1 = (anchor, element) => anchor.y + anchor.height / 2 - element.height / 2;\n const eastEdgeX$1 = anchor => anchor.x + anchor.width;\n const westEdgeX$1 = (anchor, element) => anchor.x - element.width;\n const southeast$2 = (anchor, element, bubbles) => nu$6(eastX$1(anchor), southY$2(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n top: 3\n }), labelPrefix$2);\n const southwest$2 = (anchor, element, bubbles) => nu$6(westX$1(anchor, element), southY$2(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n top: 3\n }), labelPrefix$2);\n const northeast$2 = (anchor, element, bubbles) => nu$6(eastX$1(anchor), northY$2(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 2\n }), labelPrefix$2);\n const northwest$2 = (anchor, element, bubbles) => nu$6(westX$1(anchor, element), northY$2(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 2\n }), labelPrefix$2);\n const north$2 = (anchor, element, bubbles) => nu$6(middleX$1(anchor, element), northY$2(anchor, element), bubbles.north(), north$3(), 'north', boundsRestriction(anchor, { bottom: 2 }), labelPrefix$2);\n const south$2 = (anchor, element, bubbles) => nu$6(middleX$1(anchor, element), southY$2(anchor), bubbles.south(), south$3(), 'south', boundsRestriction(anchor, { top: 3 }), labelPrefix$2);\n const east$2 = (anchor, element, bubbles) => nu$6(eastEdgeX$1(anchor), centreY$1(anchor, element), bubbles.east(), east$3(), 'east', boundsRestriction(anchor, { left: 0 }), labelPrefix$2);\n const west$2 = (anchor, element, bubbles) => nu$6(westEdgeX$1(anchor, element), centreY$1(anchor, element), bubbles.west(), west$3(), 'west', boundsRestriction(anchor, { right: 1 }), labelPrefix$2);\n const all$1 = () => [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n const allRtl$1 = () => [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n const aboveOrBelow = () => [\n northeast$2,\n northwest$2,\n southeast$2,\n southwest$2,\n north$2,\n south$2\n ];\n const aboveOrBelowRtl = () => [\n northwest$2,\n northeast$2,\n southwest$2,\n southeast$2,\n north$2,\n south$2\n ];\n const belowOrAbove = () => [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2\n ];\n const belowOrAboveRtl = () => [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2\n ];\n\n const chooseChannels = (channels, message) => message.universal ? channels : filter$2(channels, ch => contains$2(message.channels, ch));\n const events$g = receiveConfig => derive$2([run$1(receive(), (component, message) => {\n const channelMap = receiveConfig.channels;\n const channels = keys(channelMap);\n const receivingData = message;\n const targetChannels = chooseChannels(channels, receivingData);\n each$1(targetChannels, ch => {\n const channelInfo = channelMap[ch];\n const channelSchema = channelInfo.schema;\n const data = asRawOrDie$1('channel[' + ch + '] data\\nReceiver: ' + element(component.element), channelSchema, receivingData.data);\n channelInfo.onReceive(component, data);\n });\n })]);\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$g\n });\n\n var ReceivingSchema = [requiredOf('channels', setOf(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted('schema', anyValue())\n ])))];\n\n const Receiving = create$4({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n const exhibit$6 = (base, posConfig) => nu$8({\n classes: [],\n styles: posConfig.useFixed() ? {} : { position: 'relative' }\n });\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$6\n });\n\n const focus$3 = (element, preventScroll = false) => element.dom.focus({ preventScroll });\n const blur$1 = element => element.dom.blur();\n const hasFocus = element => {\n const root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n const active$1 = (root = getDocument()) => Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n const search = element => active$1(getRootNode(element)).filter(e => element.dom.contains(e.dom));\n\n const preserve$1 = (f, container) => {\n const dos = getRootNode(container);\n const refocus = active$1(dos).bind(focused => {\n const hasFocus = elem => eq(focused, elem);\n return hasFocus(container) ? Optional.some(container) : descendant$1(container, hasFocus);\n });\n const result = f(container);\n refocus.each(oldFocus => {\n active$1(dos).filter(newFocus => eq(newFocus, oldFocus)).fold(() => {\n focus$3(oldFocus);\n }, noop);\n });\n return result;\n };\n\n const adt$9 = Adt.generate([\n { none: [] },\n {\n relative: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n },\n {\n fixed: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n }\n ]);\n const positionWithDirection = (posName, decision, x, y, width, height) => {\n const decisionRect = decision.rect;\n const decisionX = decisionRect.x - x;\n const decisionY = decisionRect.y - y;\n const decisionWidth = decisionRect.width;\n const decisionHeight = decisionRect.height;\n const decisionRight = width - (decisionX + decisionWidth);\n const decisionBottom = height - (decisionY + decisionHeight);\n const left = Optional.some(decisionX);\n const top = Optional.some(decisionY);\n const right = Optional.some(decisionRight);\n const bottom = Optional.some(decisionBottom);\n const none = Optional.none();\n return cata$2(decision.direction, () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, none, top, right, none), () => NuPositionCss(posName, left, none, none, bottom), () => NuPositionCss(posName, none, none, right, bottom), () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, left, none, none, bottom), () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, none, top, right, none));\n };\n const reposition = (origin, decision) => origin.fold(() => {\n const decisionRect = decision.rect;\n return NuPositionCss('absolute', Optional.some(decisionRect.x), Optional.some(decisionRect.y), Optional.none(), Optional.none());\n }, (x, y, width, height) => {\n return positionWithDirection('absolute', decision, x, y, width, height);\n }, (x, y, width, height) => {\n return positionWithDirection('fixed', decision, x, y, width, height);\n });\n const toBox = (origin, element) => {\n const rel = curry(find$2, element);\n const position = origin.fold(rel, rel, () => {\n const scroll = get$c();\n return find$2(element).translate(-scroll.left, -scroll.top);\n });\n const width = getOuter$1(element);\n const height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n const viewport = (origin, optBounds) => optBounds.fold(() => origin.fold(win, win, bounds), bounds$1 => origin.fold(constant$1(bounds$1), constant$1(bounds$1), () => {\n const pos = translate$2(origin, bounds$1.x, bounds$1.y);\n return bounds(pos.left, pos.top, bounds$1.width, bounds$1.height);\n }));\n const translate$2 = (origin, x, y) => {\n const pos = SugarPosition(x, y);\n const removeScroll = () => {\n const outerScroll = get$c();\n return pos.translate(-outerScroll.left, -outerScroll.top);\n };\n return origin.fold(constant$1(pos), constant$1(pos), removeScroll);\n };\n const cata$1 = (subject, onNone, onRelative, onFixed) => subject.fold(onNone, onRelative, onFixed);\n adt$9.none;\n const relative$1 = adt$9.relative;\n const fixed$1 = adt$9.fixed;\n\n const anchor = (anchorBox, origin) => ({\n anchorBox,\n origin\n });\n const box = (anchorBox, origin) => anchor(anchorBox, origin);\n\n const placementAttribute = 'data-alloy-placement';\n const setPlacement$1 = (element, placement) => {\n set$9(element, placementAttribute, placement);\n };\n const getPlacement = element => getOpt(element, placementAttribute);\n const reset$1 = element => remove$8(element, placementAttribute);\n\n const adt$8 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'visibleW',\n 'visibleH',\n 'isVisible'\n ]\n }\n ]);\n const determinePosition = (box, bounds) => {\n const {\n x: boundsX,\n y: boundsY,\n right: boundsRight,\n bottom: boundsBottom\n } = bounds;\n const {x, y, right, bottom, width, height} = box;\n const xInBounds = x >= boundsX && x <= boundsRight;\n const yInBounds = y >= boundsY && y <= boundsBottom;\n const originInBounds = xInBounds && yInBounds;\n const rightInBounds = right <= boundsRight && right >= boundsX;\n const bottomInBounds = bottom <= boundsBottom && bottom >= boundsY;\n const sizeInBounds = rightInBounds && bottomInBounds;\n const visibleW = Math.min(width, x >= boundsX ? boundsRight - x : right - boundsX);\n const visibleH = Math.min(height, y >= boundsY ? boundsBottom - y : bottom - boundsY);\n return {\n originInBounds,\n sizeInBounds,\n visibleW,\n visibleH\n };\n };\n const calcReposition = (box, bounds$1) => {\n const {\n x: boundsX,\n y: boundsY,\n right: boundsRight,\n bottom: boundsBottom\n } = bounds$1;\n const {x, y, width, height} = box;\n const maxX = Math.max(boundsX, boundsRight - width);\n const maxY = Math.max(boundsY, boundsBottom - height);\n const restrictedX = clamp(x, boundsX, maxX);\n const restrictedY = clamp(y, boundsY, maxY);\n const restrictedWidth = Math.min(restrictedX + width, boundsRight) - restrictedX;\n const restrictedHeight = Math.min(restrictedY + height, boundsBottom) - restrictedY;\n return bounds(restrictedX, restrictedY, restrictedWidth, restrictedHeight);\n };\n const calcMaxSizes = (direction, box, bounds) => {\n const upAvailable = constant$1(box.bottom - bounds.y);\n const downAvailable = constant$1(bounds.bottom - box.y);\n const maxHeight = cataVertical(direction, downAvailable, downAvailable, upAvailable);\n const westAvailable = constant$1(box.right - bounds.x);\n const eastAvailable = constant$1(bounds.right - box.x);\n const maxWidth = cataHorizontal(direction, eastAvailable, eastAvailable, westAvailable);\n return {\n maxWidth,\n maxHeight\n };\n };\n const attempt = (candidate, width, height, bounds$1) => {\n const bubble = candidate.bubble;\n const bubbleOffset = bubble.offset;\n const adjustedBounds = adjustBounds(bounds$1, candidate.restriction, bubbleOffset);\n const newX = candidate.x + bubbleOffset.left;\n const newY = candidate.y + bubbleOffset.top;\n const box = bounds(newX, newY, width, height);\n const {originInBounds, sizeInBounds, visibleW, visibleH} = determinePosition(box, adjustedBounds);\n const fits = originInBounds && sizeInBounds;\n const fittedBox = fits ? box : calcReposition(box, adjustedBounds);\n const isPartlyVisible = fittedBox.width > 0 && fittedBox.height > 0;\n const {maxWidth, maxHeight} = calcMaxSizes(candidate.direction, fittedBox, bounds$1);\n const reposition = {\n rect: fittedBox,\n maxHeight,\n maxWidth,\n direction: candidate.direction,\n placement: candidate.placement,\n classes: {\n on: bubble.classesOn,\n off: bubble.classesOff\n },\n layout: candidate.label,\n testY: newY\n };\n return fits || candidate.alwaysFit ? adt$8.fit(reposition) : adt$8.nofit(reposition, visibleW, visibleH, isPartlyVisible);\n };\n const attempts = (element, candidates, anchorBox, elementBox, bubbles, bounds) => {\n const panelWidth = elementBox.width;\n const panelHeight = elementBox.height;\n const attemptBestFit = (layout, reposition, visibleW, visibleH, isVisible) => {\n const next = layout(anchorBox, elementBox, bubbles, element, bounds);\n const attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(constant$1(attemptLayout), (newReposition, newVisibleW, newVisibleH, newIsVisible) => {\n const improved = isVisible === newIsVisible ? newVisibleH > visibleH || newVisibleW > visibleW : !isVisible && newIsVisible;\n return improved ? attemptLayout : adt$8.nofit(reposition, visibleW, visibleH, isVisible);\n });\n };\n const abc = foldl(candidates, (b, a) => {\n const bestNext = curry(attemptBestFit, a);\n return b.fold(constant$1(b), bestNext);\n }, adt$8.nofit({\n rect: anchorBox,\n maxHeight: elementBox.height,\n maxWidth: elementBox.width,\n direction: southeast$3(),\n placement: 'southeast',\n classes: {\n on: [],\n off: []\n },\n layout: 'none',\n testY: anchorBox.y\n }, -1, -1, false));\n return abc.fold(identity, identity);\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$2(element, event, filter, handler);\n const capture = (element, event, handler) => capture$1(element, event, filter, handler);\n const fromRawEvent = fromRawEvent$1;\n\n const properties = [\n 'top',\n 'bottom',\n 'right',\n 'left'\n ];\n const timerAttr = 'data-alloy-transition-timer';\n const isTransitioning$1 = (element, transition) => hasAll(element, transition.classes);\n const shouldApplyTransitionCss = (transition, decision, lastPlacement) => {\n return lastPlacement.exists(placer => {\n const mode = transition.mode;\n return mode === 'all' ? true : placer[mode] !== decision[mode];\n });\n };\n const hasChanges = (position, intermediate) => {\n const round = value => parseFloat(value).toFixed(3);\n return find$4(intermediate, (value, key) => {\n const newValue = position[key].map(round);\n const val = value.map(round);\n return !equals(newValue, val);\n }).isSome();\n };\n const getTransitionDuration = element => {\n const get = name => {\n const style = get$f(element, name);\n const times = style.split(/\\s*,\\s*/);\n return filter$2(times, isNotEmpty);\n };\n const parse = value => {\n if (isString(value) && /^[\\d.]+/.test(value)) {\n const num = parseFloat(value);\n return endsWith(value, 'ms') ? num : num * 1000;\n } else {\n return 0;\n }\n };\n const delay = get('transition-delay');\n const duration = get('transition-duration');\n return foldl(duration, (acc, dur, i) => {\n const time = parse(delay[i]) + parse(dur);\n return Math.max(acc, time);\n }, 0);\n };\n const setupTransitionListeners = (element, transition) => {\n const transitionEnd = unbindable();\n const transitionCancel = unbindable();\n let timer;\n const isSourceTransition = e => {\n var _a;\n const pseudoElement = (_a = e.raw.pseudoElement) !== null && _a !== void 0 ? _a : '';\n return eq(e.target, element) && isEmpty(pseudoElement) && contains$2(properties, e.raw.propertyName);\n };\n const transitionDone = e => {\n if (isNullable(e) || isSourceTransition(e)) {\n transitionEnd.clear();\n transitionCancel.clear();\n const type = e === null || e === void 0 ? void 0 : e.raw.type;\n if (isNullable(type) || type === transitionend()) {\n clearTimeout(timer);\n remove$8(element, timerAttr);\n remove$2(element, transition.classes);\n }\n }\n };\n const transitionStart = bind(element, transitionstart(), e => {\n if (isSourceTransition(e)) {\n transitionStart.unbind();\n transitionEnd.set(bind(element, transitionend(), transitionDone));\n transitionCancel.set(bind(element, transitioncancel(), transitionDone));\n }\n });\n const duration = getTransitionDuration(element);\n requestAnimationFrame(() => {\n timer = setTimeout(transitionDone, duration + 17);\n set$9(element, timerAttr, timer);\n });\n };\n const startTransitioning = (element, transition) => {\n add$1(element, transition.classes);\n getOpt(element, timerAttr).each(timerId => {\n clearTimeout(parseInt(timerId, 10));\n remove$8(element, timerAttr);\n });\n setupTransitionListeners(element, transition);\n };\n const applyTransitionCss = (element, origin, position, transition, decision, lastPlacement) => {\n const shouldTransition = shouldApplyTransitionCss(transition, decision, lastPlacement);\n if (shouldTransition || isTransitioning$1(element, transition)) {\n set$8(element, 'position', position.position);\n const rect = toBox(origin, element);\n const intermediatePosition = reposition(origin, {\n ...decision,\n rect\n });\n const intermediateCssOptions = mapToObject(properties, prop => intermediatePosition[prop]);\n if (hasChanges(position, intermediateCssOptions)) {\n setOptions(element, intermediateCssOptions);\n if (shouldTransition) {\n startTransitioning(element, transition);\n }\n reflow(element);\n }\n } else {\n remove$2(element, transition.classes);\n }\n };\n\n const elementSize = p => ({\n width: getOuter$1(p),\n height: getOuter$2(p)\n });\n const layout = (anchorBox, element, bubbles, options) => {\n remove$7(element, 'max-height');\n remove$7(element, 'max-width');\n const elementBox = elementSize(element);\n return attempts(element, options.preference, anchorBox, elementBox, bubbles, options.bounds);\n };\n const setClasses = (element, decision) => {\n const classInfo = decision.classes;\n remove$2(element, classInfo.off);\n add$1(element, classInfo.on);\n };\n const setHeight = (element, decision, options) => {\n const maxHeightFunction = options.maxHeightFunction;\n maxHeightFunction(element, decision.maxHeight);\n };\n const setWidth = (element, decision, options) => {\n const maxWidthFunction = options.maxWidthFunction;\n maxWidthFunction(element, decision.maxWidth);\n };\n const position$2 = (element, decision, options) => {\n const positionCss = reposition(options.origin, decision);\n options.transition.each(transition => {\n applyTransitionCss(element, options.origin, positionCss, transition, decision, options.lastPlacement);\n });\n applyPositionCss(element, positionCss);\n };\n const setPlacement = (element, decision) => {\n setPlacement$1(element, decision.placement);\n };\n\n const setMaxHeight = (element, maxHeight) => {\n setMax$1(element, Math.floor(maxHeight));\n };\n const anchored = constant$1((element, available) => {\n setMaxHeight(element, available);\n setAll(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n const expandable$1 = constant$1((element, available) => {\n setMaxHeight(element, available);\n });\n\n const defaultOr = (options, key, dephault) => options[key] === undefined ? dephault : options[key];\n const simple = (anchor, element, bubble, layouts, lastPlacement, optBounds, overrideOptions, transition) => {\n const maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n const maxWidthFunction = defaultOr(overrideOptions, 'maxWidthFunction', noop);\n const anchorBox = anchor.anchorBox;\n const origin = anchor.origin;\n const options = {\n bounds: viewport(origin, optBounds),\n origin,\n preference: layouts,\n maxHeightFunction,\n maxWidthFunction,\n lastPlacement,\n transition\n };\n return go(anchorBox, element, bubble, options);\n };\n const go = (anchorBox, element, bubble, options) => {\n const decision = layout(anchorBox, element, bubble, options);\n position$2(element, decision, options);\n setPlacement(element, decision);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n return {\n layout: decision.layout,\n placement: decision.placement\n };\n };\n\n const allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'inset'\n ];\n const nu$5 = (xOffset, yOffset, classes, insetModifier = 1) => {\n const insetXOffset = xOffset * insetModifier;\n const insetYOffset = yOffset * insetModifier;\n const getClasses = prop => get$h(classes, prop).getOr([]);\n const make = (xDelta, yDelta, alignmentsOn) => {\n const alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: SugarPosition(xDelta, yDelta),\n classesOn: bind$3(alignmentsOn, getClasses),\n classesOff: bind$3(alignmentsOff, getClasses)\n };\n };\n return {\n southeast: () => make(-xOffset, yOffset, [\n 'top',\n 'alignLeft'\n ]),\n southwest: () => make(xOffset, yOffset, [\n 'top',\n 'alignRight'\n ]),\n south: () => make(-xOffset / 2, yOffset, [\n 'top',\n 'alignCentre'\n ]),\n northeast: () => make(-xOffset, -yOffset, [\n 'bottom',\n 'alignLeft'\n ]),\n northwest: () => make(xOffset, -yOffset, [\n 'bottom',\n 'alignRight'\n ]),\n north: () => make(-xOffset / 2, -yOffset, [\n 'bottom',\n 'alignCentre'\n ]),\n east: () => make(xOffset, -yOffset / 2, [\n 'valignCentre',\n 'left'\n ]),\n west: () => make(-xOffset, -yOffset / 2, [\n 'valignCentre',\n 'right'\n ]),\n insetNortheast: () => make(insetXOffset, insetYOffset, [\n 'top',\n 'alignLeft',\n 'inset'\n ]),\n insetNorthwest: () => make(-insetXOffset, insetYOffset, [\n 'top',\n 'alignRight',\n 'inset'\n ]),\n insetNorth: () => make(-insetXOffset / 2, insetYOffset, [\n 'top',\n 'alignCentre',\n 'inset'\n ]),\n insetSoutheast: () => make(insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignLeft',\n 'inset'\n ]),\n insetSouthwest: () => make(-insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignRight',\n 'inset'\n ]),\n insetSouth: () => make(-insetXOffset / 2, -insetYOffset, [\n 'bottom',\n 'alignCentre',\n 'inset'\n ]),\n insetEast: () => make(-insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'right',\n 'inset'\n ]),\n insetWest: () => make(insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'left',\n 'inset'\n ])\n };\n };\n const fallback = () => nu$5(0, 0, {});\n\n const nu$4 = identity;\n\n const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr;\n const getDirection = element => get$f(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n\n var AttributeValue;\n (function (AttributeValue) {\n AttributeValue['TopToBottom'] = 'toptobottom';\n AttributeValue['BottomToTop'] = 'bottomtotop';\n }(AttributeValue || (AttributeValue = {})));\n const Attribute = 'data-alloy-vertical-dir';\n const isBottomToTopDir = el => closest$2(el, current => isElement$1(current) && get$g(current, 'data-alloy-vertical-dir') === AttributeValue.BottomToTop);\n\n const schema$y = () => optionObjOf('layouts', [\n required$1('onLtr'),\n required$1('onRtl'),\n option$3('onBottomLtr'),\n option$3('onBottomRtl')\n ]);\n const get$6 = (elem, info, defaultLtr, defaultRtl, defaultBottomLtr, defaultBottomRtl, dirElement) => {\n const isBottomToTop = dirElement.map(isBottomToTopDir).getOr(false);\n const customLtr = info.layouts.map(ls => ls.onLtr(elem));\n const customRtl = info.layouts.map(ls => ls.onRtl(elem));\n const ltr = isBottomToTop ? info.layouts.bind(ls => ls.onBottomLtr.map(f => f(elem))).or(customLtr).getOr(defaultBottomLtr) : customLtr.getOr(defaultLtr);\n const rtl = isBottomToTop ? info.layouts.bind(ls => ls.onBottomRtl.map(f => f(elem))).or(customRtl).getOr(defaultBottomRtl) : customRtl.getOr(defaultRtl);\n const f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n const placement$4 = (component, anchorInfo, origin) => {\n const hotspot = anchorInfo.hotspot;\n const anchorBox = toBox(origin, hotspot.element);\n const layouts = get$6(component.element, anchorInfo, belowOrAbove(), belowOrAboveRtl(), aboveOrBelow(), aboveOrBelowRtl(), Optional.some(anchorInfo.hotspot.element));\n return Optional.some(nu$4({\n anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts\n }));\n };\n var HotspotAnchor = [\n required$1('hotspot'),\n option$3('bubble'),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$4)\n ];\n\n const placement$3 = (component, anchorInfo, origin) => {\n const pos = translate$2(origin, anchorInfo.x, anchorInfo.y);\n const anchorBox = bounds(pos.left, pos.top, anchorInfo.width, anchorInfo.height);\n const layouts = get$6(component.element, anchorInfo, all$1(), allRtl$1(), all$1(), allRtl$1(), Optional.none());\n return Optional.some(nu$4({\n anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts\n }));\n };\n var MakeshiftAnchor = [\n required$1('x'),\n required$1('y'),\n defaulted('height', 0),\n defaulted('width', 0),\n defaulted('bubble', fallback()),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$3)\n ];\n\n const adt$7 = Adt.generate([\n { screen: ['point'] },\n {\n absolute: [\n 'point',\n 'scrollLeft',\n 'scrollTop'\n ]\n }\n ]);\n const toFixed = pos => pos.fold(identity, (point, scrollLeft, scrollTop) => point.translate(-scrollLeft, -scrollTop));\n const toAbsolute = pos => pos.fold(identity, identity);\n const sum = points => foldl(points, (b, a) => b.translate(a.left, a.top), SugarPosition(0, 0));\n const sumAsFixed = positions => {\n const points = map$2(positions, toFixed);\n return sum(points);\n };\n const sumAsAbsolute = positions => {\n const points = map$2(positions, toAbsolute);\n return sum(points);\n };\n const screen = adt$7.screen;\n const absolute$1 = adt$7.absolute;\n\n const getOffset = (component, origin, anchorInfo) => {\n const win = defaultView(anchorInfo.root).dom;\n const hasSameOwner = frame => {\n const frameOwner = owner$4(frame);\n const compOwner = owner$4(component.element);\n return eq(frameOwner, compOwner);\n };\n return Optional.from(win.frameElement).map(SugarElement.fromDom).filter(hasSameOwner).map(absolute$3);\n };\n const getRootPoint = (component, origin, anchorInfo) => {\n const doc = owner$4(component.element);\n const outerScroll = get$c(doc);\n const offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$1(offset, outerScroll.left, outerScroll.top);\n };\n\n const getBox = (left, top, width, height) => {\n const point = screen(SugarPosition(left, top));\n return Optional.some(pointed(point, width, height));\n };\n const calcNewAnchor = (optBox, rootPoint, anchorInfo, origin, elem) => optBox.map(box => {\n const points = [\n rootPoint,\n box.point\n ];\n const topLeft = cata$1(origin, () => sumAsAbsolute(points), () => sumAsAbsolute(points), () => sumAsFixed(points));\n const anchorBox = rect(topLeft.left, topLeft.top, box.width, box.height);\n const layoutsLtr = anchorInfo.showAbove ? aboveOrBelow() : belowOrAbove();\n const layoutsRtl = anchorInfo.showAbove ? aboveOrBelowRtl() : belowOrAboveRtl();\n const layouts = get$6(elem, anchorInfo, layoutsLtr, layoutsRtl, layoutsLtr, layoutsRtl, Optional.none());\n return nu$4({\n anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts\n });\n });\n\n const placement$2 = (component, anchorInfo, origin) => {\n const rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.filter(inBody).bind(target => {\n const rect = target.dom.getBoundingClientRect();\n const nodeBox = getBox(rect.left, rect.top, rect.width, rect.height);\n const elem = anchorInfo.node.getOr(component.element);\n return calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n var NodeAnchor = [\n required$1('node'),\n required$1('root'),\n option$3('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$2)\n ];\n\n const zeroWidth = '\\uFEFF';\n const nbsp = '\\xA0';\n\n const create$3 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$3 };\n\n const adt$6 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$1 = situ => situ.fold(identity, identity, identity);\n const before = adt$6.before;\n const on$1 = adt$6.on;\n const after$1 = adt$6.after;\n const Situ = {\n before,\n on: on$1,\n after: after$1,\n cata,\n getStart: getStart$1\n };\n\n const adt$5 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt$5.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt$5.domRange;\n const relative = adt$5.relative;\n const exact = adt$5.exact;\n const getWin = selection => {\n const start = getStart(selection);\n return defaultView(start);\n };\n const range$1 = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range: range$1\n };\n\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const toRect = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n });\n const getFirstRect$1 = rng => {\n const rects = rng.getClientRects();\n const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n const getBounds$2 = rng => {\n const rect = rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n const adt$4 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant$1(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$4.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$4.ltr, rng));\n } else {\n return fromRange(win, adt$4.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n const asLtrRange = (win, selection) => {\n const diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n adt$4.ltr;\n adt$4.rtl;\n\n const ancestors = (scope, predicate, isRoot) => filter$2(parents(scope, isRoot), predicate);\n\n const descendants = (scope, selector) => all$3(selector, scope);\n\n const makeRange = (start, soffset, finish, foffset) => {\n const doc = owner$4(start);\n const rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const after = (start, soffset, finish, foffset) => {\n const r = makeRange(start, soffset, finish, foffset);\n const same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n const getNativeSelection = win => Optional.from(win.getSelection());\n const readRange = selection => {\n if (selection.rangeCount > 0) {\n const firstRng = selection.getRangeAt(0);\n const lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n const doGetExact = selection => {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n const anchor = SugarElement.fromDom(selection.anchorNode);\n const focus = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n }\n };\n const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact);\n const getFirstRect = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n const getBounds$1 = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getBounds$2(rng);\n };\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api = NodeValue(isText, 'text');\n const get$5 = element => api.get(element);\n\n const point = (element, offset) => ({\n element,\n offset\n });\n const descendOnce$1 = (element, offset) => {\n const children$1 = children(element);\n if (children$1.length === 0) {\n return point(element, offset);\n } else if (offset < children$1.length) {\n return point(children$1[offset], 0);\n } else {\n const last = children$1[children$1.length - 1];\n const len = isText(last) ? get$5(last).length : children(last).length;\n return point(last, len);\n }\n };\n\n const descendOnce = (element, offset) => isText(element) ? point(element, offset) : descendOnce$1(element, offset);\n const isSimRange = detail => detail.foffset !== undefined;\n const getAnchorSelection = (win, anchorInfo) => {\n const getSelection = anchorInfo.getSelection.getOrThunk(() => () => getExact(win));\n return getSelection().map(sel => {\n if (isSimRange(sel)) {\n const modStart = descendOnce(sel.start, sel.soffset);\n const modFinish = descendOnce(sel.finish, sel.foffset);\n return SimSelection.range(modStart.element, modStart.offset, modFinish.element, modFinish.offset);\n } else {\n return sel;\n }\n });\n };\n const placement$1 = (component, anchorInfo, origin) => {\n const win = defaultView(anchorInfo.root).dom;\n const rootPoint = getRootPoint(component, origin, anchorInfo);\n const selectionBox = getAnchorSelection(win, anchorInfo).bind(sel => {\n if (isSimRange(sel)) {\n const optRect = getBounds$1(win, SimSelection.exactFromRange(sel)).orThunk(() => {\n const zeroWidth$1 = SugarElement.fromText(zeroWidth);\n before$1(sel.start, zeroWidth$1);\n const rect = getFirstRect(win, SimSelection.exact(zeroWidth$1, 0, zeroWidth$1, 1));\n remove$6(zeroWidth$1);\n return rect;\n });\n return optRect.bind(rawRect => {\n return getBox(rawRect.left, rawRect.top, rawRect.width, rawRect.height);\n });\n } else {\n const selectionRect = map$1(sel, cell => cell.dom.getBoundingClientRect());\n const bounds = {\n left: Math.min(selectionRect.firstCell.left, selectionRect.lastCell.left),\n right: Math.max(selectionRect.firstCell.right, selectionRect.lastCell.right),\n top: Math.min(selectionRect.firstCell.top, selectionRect.lastCell.top),\n bottom: Math.max(selectionRect.firstCell.bottom, selectionRect.lastCell.bottom)\n };\n return getBox(bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top);\n }\n });\n const targetElement = getAnchorSelection(win, anchorInfo).bind(sel => {\n if (isSimRange(sel)) {\n return isElement$1(sel.start) ? Optional.some(sel.start) : parentElement(sel.start);\n } else {\n return Optional.some(sel.firstCell);\n }\n });\n const elem = targetElement.getOr(component.element);\n return calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n var SelectionAnchor = [\n option$3('getSelection'),\n required$1('root'),\n option$3('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$1)\n ];\n\n const labelPrefix$1 = 'link-layout';\n const eastX = anchor => anchor.x + anchor.width;\n const westX = (anchor, element) => anchor.x - element.width;\n const northY$1 = (anchor, element) => anchor.y - element.height + anchor.height;\n const southY$1 = anchor => anchor.y;\n const southeast$1 = (anchor, element, bubbles) => nu$6(eastX(anchor), southY$1(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 0,\n top: 2\n }), labelPrefix$1);\n const southwest$1 = (anchor, element, bubbles) => nu$6(westX(anchor, element), southY$1(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 1,\n top: 2\n }), labelPrefix$1);\n const northeast$1 = (anchor, element, bubbles) => nu$6(eastX(anchor), northY$1(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 0,\n bottom: 3\n }), labelPrefix$1);\n const northwest$1 = (anchor, element, bubbles) => nu$6(westX(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 1,\n bottom: 3\n }), labelPrefix$1);\n const all = () => [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1\n ];\n const allRtl = () => [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1\n ];\n\n const placement = (component, submenuInfo, origin) => {\n const anchorBox = toBox(origin, submenuInfo.item.element);\n const layouts = get$6(component.element, submenuInfo, all(), allRtl(), all(), allRtl(), Optional.none());\n return Optional.some(nu$4({\n anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts\n }));\n };\n var SubmenuAnchor = [\n required$1('item'),\n schema$y(),\n defaulted('overrides', {}),\n output$1('placement', placement)\n ];\n\n var AnchorSchema = choose$1('type', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n const TransitionSchema = [\n requiredArrayOf('classes', string),\n defaultedStringEnum('mode', 'all', [\n 'all',\n 'layout',\n 'placement'\n ])\n ];\n const PositionSchema = [\n defaulted('useFixed', never),\n option$3('getBounds')\n ];\n const PlacementSchema = [\n requiredOf('anchor', AnchorSchema),\n optionObjOf('transition', TransitionSchema)\n ];\n\n const getFixedOrigin = () => {\n const html = document.documentElement;\n return fixed$1(0, 0, html.clientWidth, html.clientHeight);\n };\n const getRelativeOrigin = component => {\n const position = absolute$3(component.element);\n const bounds = component.element.dom.getBoundingClientRect();\n return relative$1(position.left, position.top, bounds.width, bounds.height);\n };\n const place = (origin, anchoring, optBounds, placee, lastPlace, transition) => {\n const anchor = box(anchoring.anchorBox, origin);\n return simple(anchor, placee.element, anchoring.bubble, anchoring.layouts, lastPlace, optBounds, anchoring.overrides, transition);\n };\n const position$1 = (component, posConfig, posState, placee, placementSpec) => {\n const optWithinBounds = Optional.none();\n positionWithinBounds(component, posConfig, posState, placee, placementSpec, optWithinBounds);\n };\n const positionWithinBounds = (component, posConfig, posState, placee, placementSpec, optWithinBounds) => {\n const placeeDetail = asRawOrDie$1('placement.info', objOf(PlacementSchema), placementSpec);\n const anchorage = placeeDetail.anchor;\n const element = placee.element;\n const placeeState = posState.get(placee.uid);\n preserve$1(() => {\n set$8(element, 'position', 'fixed');\n const oldVisibility = getRaw(element, 'visibility');\n set$8(element, 'visibility', 'hidden');\n const origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n anchorage.placement(component, anchorage, origin).each(anchoring => {\n const optBounds = optWithinBounds.orThunk(() => posConfig.getBounds.map(apply$1));\n const newState = place(origin, anchoring, optBounds, placee, placeeState, placeeDetail.transition);\n posState.set(placee.uid, newState);\n });\n oldVisibility.fold(() => {\n remove$7(element, 'visibility');\n }, vis => {\n set$8(element, 'visibility', vis);\n });\n if (getRaw(element, 'left').isNone() && getRaw(element, 'top').isNone() && getRaw(element, 'right').isNone() && getRaw(element, 'bottom').isNone() && is$1(getRaw(element, 'position'), 'fixed')) {\n remove$7(element, 'position');\n }\n }, element);\n };\n const getMode = (component, pConfig, _pState) => pConfig.useFixed() ? 'fixed' : 'absolute';\n const reset = (component, pConfig, posState, placee) => {\n const element = placee.element;\n each$1([\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], prop => remove$7(element, prop));\n reset$1(element);\n posState.clear(placee.uid);\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n position: position$1,\n positionWithinBounds: positionWithinBounds,\n getMode: getMode,\n reset: reset\n });\n\n const init$f = () => {\n let state = {};\n const set = (id, data) => {\n state[id] = data;\n };\n const get = id => get$h(state, id);\n const clear = id => {\n if (isNonNullable(id)) {\n delete state[id];\n } else {\n state = {};\n }\n };\n return nu$7({\n readState: () => state,\n clear,\n set,\n get\n });\n };\n\n var PositioningState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$f\n });\n\n const Positioning = create$4({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis,\n state: PositioningState\n });\n\n const isConnected = comp => comp.getSystem().isConnected();\n const fireDetaching = component => {\n emit(component, detachedFromDom());\n const children = component.components();\n each$1(children, fireDetaching);\n };\n const fireAttaching = component => {\n const children = component.components();\n each$1(children, fireAttaching);\n emit(component, attachedToDom());\n };\n const virtualAttach = (parent, child) => {\n parent.getSystem().addToWorld(child);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n };\n const virtualDetach = comp => {\n fireDetaching(comp);\n comp.getSystem().removeFromWorld(comp);\n };\n const attach$1 = (parent, child) => {\n append$2(parent.element, child.element);\n };\n const detachChildren$1 = component => {\n each$1(component.components(), childComp => remove$6(childComp.element));\n empty(component.element);\n component.syncComponents();\n };\n const replaceChildren = (component, newSpecs, buildNewChildren) => {\n const subs = component.components();\n detachChildren$1(component);\n const newChildren = buildNewChildren(newSpecs);\n const deleted = difference(subs, newChildren);\n each$1(deleted, comp => {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each$1(newChildren, childComp => {\n if (!isConnected(childComp)) {\n component.getSystem().addToWorld(childComp);\n attach$1(component, childComp);\n if (inBody(component.element)) {\n fireAttaching(childComp);\n }\n } else {\n attach$1(component, childComp);\n }\n });\n component.syncComponents();\n };\n const virtualReplaceChildren = (component, newSpecs, buildNewChildren) => {\n const subs = component.components();\n const existingComps = bind$3(newSpecs, spec => getPremade(spec).toArray());\n each$1(subs, childComp => {\n if (!contains$2(existingComps, childComp)) {\n virtualDetach(childComp);\n }\n });\n const newChildren = buildNewChildren(newSpecs);\n const deleted = difference(subs, newChildren);\n each$1(deleted, deletedComp => {\n if (isConnected(deletedComp)) {\n virtualDetach(deletedComp);\n }\n });\n each$1(newChildren, childComp => {\n if (!isConnected(childComp)) {\n virtualAttach(component, childComp);\n }\n });\n component.syncComponents();\n };\n\n const attach = (parent, child) => {\n attachWith(parent, child, append$2);\n };\n const attachWith = (parent, child, insertion) => {\n parent.getSystem().addToWorld(child);\n insertion(parent.element, child.element);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n parent.syncComponents();\n };\n const doDetach = component => {\n fireDetaching(component);\n remove$6(component.element);\n component.getSystem().removeFromWorld(component);\n };\n const detach = component => {\n const parent$1 = parent(component.element).bind(p => component.getSystem().getByDom(p).toOptional());\n doDetach(component);\n parent$1.each(p => {\n p.syncComponents();\n });\n };\n const detachChildren = component => {\n const subs = component.components();\n each$1(subs, doDetach);\n empty(component.element);\n component.syncComponents();\n };\n const attachSystem = (element, guiSystem) => {\n attachSystemWith(element, guiSystem, append$2);\n };\n const attachSystemAfter = (element, guiSystem) => {\n attachSystemWith(element, guiSystem, after$2);\n };\n const attachSystemWith = (element, guiSystem, inserter) => {\n inserter(element, guiSystem.element);\n const children$1 = children(guiSystem.element);\n each$1(children$1, child => {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n const detachSystem = guiSystem => {\n const children$1 = children(guiSystem.element);\n each$1(children$1, child => {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove$6(guiSystem.element);\n };\n\n const rebuild = (sandbox, sConfig, sState, data) => {\n sState.get().each(_data => {\n detachChildren(sandbox);\n });\n const point = sConfig.getAttachPoint(sandbox);\n attach(point, sandbox);\n const built = sandbox.getSystem().build(data);\n attach(sandbox, built);\n sState.set(built);\n return built;\n };\n const open$1 = (sandbox, sConfig, sState, data) => {\n const newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n const setContent = (sandbox, sConfig, sState, data) => sState.get().map(() => rebuild(sandbox, sConfig, sState, data));\n const openWhileCloaked = (sandbox, sConfig, sState, data, transaction) => {\n cloak(sandbox, sConfig);\n open$1(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n const close$1 = (sandbox, sConfig, sState) => {\n sState.get().each(data => {\n detachChildren(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n const isOpen$1 = (_sandbox, _sConfig, sState) => sState.isOpen();\n const isPartOf = (sandbox, sConfig, sState, queryElem) => isOpen$1(sandbox, sConfig, sState) && sState.get().exists(data => sConfig.isPartOf(sandbox, data, queryElem));\n const getState$2 = (_sandbox, _sConfig, sState) => sState.get();\n const store = (sandbox, cssKey, attr, newValue) => {\n getRaw(sandbox.element, cssKey).fold(() => {\n remove$8(sandbox.element, attr);\n }, v => {\n set$9(sandbox.element, attr, v);\n });\n set$8(sandbox.element, cssKey, newValue);\n };\n const restore = (sandbox, cssKey, attr) => {\n getOpt(sandbox.element, attr).fold(() => remove$7(sandbox.element, cssKey), oldValue => set$8(sandbox.element, cssKey, oldValue));\n };\n const cloak = (sandbox, sConfig, _sState) => {\n const sink = sConfig.getAttachPoint(sandbox);\n set$8(sandbox.element, 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n const hasPosition = element => exists([\n 'top',\n 'left',\n 'right',\n 'bottom'\n ], pos => getRaw(element, pos).isSome());\n const decloak = (sandbox, sConfig, _sState) => {\n if (!hasPosition(sandbox.element)) {\n remove$7(sandbox.element, 'position');\n }\n restore(sandbox, 'visibility', sConfig.cloakVisibilityAttr);\n };\n\n var SandboxApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n cloak: cloak,\n decloak: decloak,\n open: open$1,\n openWhileCloaked: openWhileCloaked,\n close: close$1,\n isOpen: isOpen$1,\n isPartOf: isPartOf,\n getState: getState$2,\n setContent: setContent\n });\n\n const events$f = (sandboxConfig, sandboxState) => derive$2([run$1(sandboxClose(), (sandbox, _simulatedEvent) => {\n close$1(sandbox, sandboxConfig, sandboxState);\n })]);\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$f\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n required$1('isPartOf'),\n required$1('getAttachPoint'),\n defaulted('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n const init$e = () => {\n const contents = value$4();\n const readState = constant$1('not-implemented');\n return nu$7({\n readState,\n isOpen: contents.isSet,\n clear: contents.clear,\n set: contents.set,\n get: contents.get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$e\n });\n\n const Sandboxing = create$4({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n const dismissPopups = constant$1('dismiss.popups');\n const repositionPopups = constant$1('reposition.popups');\n const mouseReleased = constant$1('mouse.released');\n\n const schema$x = objOfOnly([\n defaulted('isExtraPart', never),\n optionObjOf('fireEventInstead', [defaulted('event', dismissRequested())])\n ]);\n const receivingChannel$1 = rawSpec => {\n const detail = asRawOrDie$1('Dismissal', schema$x, rawSpec);\n return {\n [dismissPopups()]: {\n schema: objOfOnly([required$1('target')]),\n onReceive: (sandbox, data) => {\n if (Sandboxing.isOpen(sandbox)) {\n const isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\n if (!isPart) {\n detail.fireEventInstead.fold(() => Sandboxing.close(sandbox), fe => emit(sandbox, fe.event));\n }\n }\n }\n }\n };\n };\n\n const schema$w = objOfOnly([\n optionObjOf('fireEventInstead', [defaulted('event', repositionRequested())]),\n requiredFunction('doReposition')\n ]);\n const receivingChannel = rawSpec => {\n const detail = asRawOrDie$1('Reposition', schema$w, rawSpec);\n return {\n [repositionPopups()]: {\n onReceive: sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n detail.fireEventInstead.fold(() => detail.doReposition(sandbox), fe => emit(sandbox, fe.event));\n }\n }\n }\n };\n };\n\n const onLoad$5 = (component, repConfig, repState) => {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n const onUnload$2 = (component, repConfig, repState) => {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n const setValue$3 = (component, repConfig, repState, data) => {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n const getValue$3 = (component, repConfig, repState) => repConfig.store.manager.getValue(component, repConfig, repState);\n const getState$1 = (component, repConfig, repState) => repState;\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad$5,\n onUnload: onUnload$2,\n setValue: setValue$3,\n getValue: getValue$3,\n getState: getState$1\n });\n\n const events$e = (repConfig, repState) => {\n const es = repConfig.resetOnDom ? [\n runOnAttached((comp, _se) => {\n onLoad$5(comp, repConfig, repState);\n }),\n runOnDetached((comp, _se) => {\n onUnload$2(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad$5)];\n return derive$2(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$e\n });\n\n const memory$1 = () => {\n const data = Cell(null);\n const readState = () => ({\n mode: 'memory',\n value: data.get()\n });\n const isNotSet = () => data.get() === null;\n const clear = () => {\n data.set(null);\n };\n return nu$7({\n set: data.set,\n get: data.get,\n isNotSet,\n clear,\n readState\n });\n };\n const manual = () => {\n const readState = noop;\n return nu$7({ readState });\n };\n const dataset = () => {\n const dataByValue = Cell({});\n const dataByText = Cell({});\n const readState = () => ({\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n });\n const clear = () => {\n dataByValue.set({});\n dataByText.set({});\n };\n const lookup = itemString => get$h(dataByValue.get(), itemString).orThunk(() => get$h(dataByText.get(), itemString));\n const update = items => {\n const currentDataByValue = dataByValue.get();\n const currentDataByText = dataByText.get();\n const newDataByValue = {};\n const newDataByText = {};\n each$1(items, item => {\n newDataByValue[item.value] = item;\n get$h(item, 'meta').each(meta => {\n get$h(meta, 'text').each(text => {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set({\n ...currentDataByValue,\n ...newDataByValue\n });\n dataByText.set({\n ...currentDataByText,\n ...newDataByText\n });\n };\n return nu$7({\n readState,\n lookup,\n update,\n clear\n });\n };\n const init$d = spec => spec.store.manager.state(spec);\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n memory: memory$1,\n dataset: dataset,\n manual: manual,\n init: init$d\n });\n\n const setValue$2 = (component, repConfig, repState, data) => {\n const store = repConfig.store;\n repState.update([data]);\n store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n const getValue$2 = (component, repConfig, repState) => {\n const store = repConfig.store;\n const key = store.getDataKey(component);\n return repState.lookup(key).getOrThunk(() => store.getFallbackEntry(key));\n };\n const onLoad$4 = (component, repConfig, repState) => {\n const store = repConfig.store;\n store.initialValue.each(data => {\n setValue$2(component, repConfig, repState, data);\n });\n };\n const onUnload$1 = (component, repConfig, repState) => {\n repState.clear();\n };\n var DatasetStore = [\n option$3('initialValue'),\n required$1('getFallbackEntry'),\n required$1('getDataKey'),\n required$1('setValue'),\n output$1('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$4,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n const getValue$1 = (component, repConfig, _repState) => repConfig.store.getValue(component);\n const setValue$1 = (component, repConfig, _repState, data) => {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n const onLoad$3 = (component, repConfig, _repState) => {\n repConfig.store.initialValue.each(data => {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n required$1('getValue'),\n defaulted('setValue', noop),\n option$3('initialValue'),\n output$1('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$3,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n const setValue = (component, repConfig, repState, data) => {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n const getValue = (component, repConfig, repState) => repState.get();\n const onLoad$2 = (component, repConfig, repState) => {\n repConfig.store.initialValue.each(initVal => {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n const onUnload = (component, repConfig, repState) => {\n repState.clear();\n };\n var MemoryStore = [\n option$3('initialValue'),\n output$1('manager', {\n setValue,\n getValue,\n onLoad: onLoad$2,\n onUnload,\n state: memory$1\n })\n ];\n\n var RepresentSchema = [\n defaultedOf('store', { mode: 'memory' }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })),\n onHandler('onSetValue'),\n defaulted('resetOnDom', false)\n ];\n\n const Representing = create$4({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: (component, source) => {\n const value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n const field = (name, forbidden) => defaultedObjOf(name, {}, map$2(forbidden, f => forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name)).concat([customField('dump', identity)]));\n const get$4 = data => data.dump;\n const augment = (data, original) => ({\n ...derive$1(original),\n ...data.dump\n });\n const SketchBehaviours = {\n field,\n augment,\n get: get$4\n };\n\n const _placeholder = 'placeholder';\n const adt$3 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n const isSubstituted = spec => has$2(spec, 'uiType');\n const subPlaceholder = (owner, detail, compSpec, placeholders) => {\n if (owner.exists(o => o !== compSpec.owner)) {\n return adt$3.single(true, constant$1(compSpec));\n }\n return get$h(placeholders, compSpec.name).fold(() => {\n throw new Error('Unknown placeholder component: ' + compSpec.name + '\\nKnown: [' + keys(placeholders) + ']\\nNamespace: ' + owner.getOr('none') + '\\nSpec: ' + JSON.stringify(compSpec, null, 2));\n }, newSpec => newSpec.replace());\n };\n const scan = (owner, detail, compSpec, placeholders) => {\n if (isSubstituted(compSpec) && compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$3.single(false, constant$1(compSpec));\n }\n };\n const substitute = (owner, detail, compSpec, placeholders) => {\n const base = scan(owner, detail, compSpec, placeholders);\n return base.fold((req, valueThunk) => {\n const value = isSubstituted(compSpec) ? valueThunk(detail, compSpec.config, compSpec.validated) : valueThunk(detail);\n const childSpecs = get$h(value, 'components').getOr([]);\n const substituted = bind$3(childSpecs, c => substitute(owner, detail, c, placeholders));\n return [{\n ...value,\n components: substituted\n }];\n }, (req, valuesThunk) => {\n if (isSubstituted(compSpec)) {\n const values = valuesThunk(detail, compSpec.config, compSpec.validated);\n const preprocessor = compSpec.validated.preprocess.getOr(identity);\n return preprocessor(values);\n } else {\n return valuesThunk(detail);\n }\n });\n };\n const substituteAll = (owner, detail, components, placeholders) => bind$3(components, c => substitute(owner, detail, c, placeholders));\n const oneReplace = (label, replacements) => {\n let called = false;\n const used = () => called;\n const replace = () => {\n if (called) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n called = true;\n return replacements;\n };\n const required = () => replacements.fold((req, _) => req, (req, _) => req);\n return {\n name: constant$1(label),\n required,\n used,\n replace\n };\n };\n const substitutePlaces = (owner, detail, components, placeholders) => {\n const ps = map$1(placeholders, (ph, name) => oneReplace(name, ph));\n const outcome = substituteAll(owner, detail, components, ps);\n each(ps, p => {\n if (p.used() === false && p.required()) {\n throw new Error('Placeholder: ' + p.name() + ' was not found in components list\\nNamespace: ' + owner.getOr('none') + '\\nComponents: ' + JSON.stringify(detail.components, null, 2));\n }\n });\n return outcome;\n };\n const single$2 = adt$3.single;\n const multiple = adt$3.multiple;\n const placeholder = constant$1(_placeholder);\n\n const adt$2 = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n const fFactory = defaulted('factory', { sketch: identity });\n const fSchema = defaulted('schema', []);\n const fName = required$1('name');\n const fPname = field$1('pname', 'pname', defaultedThunk(typeSpec => ''), anyValue());\n const fGroupSchema = customField('schema', () => [option$3('preprocess')]);\n const fDefaults = defaulted('defaults', constant$1({}));\n const fOverrides = defaulted('overrides', constant$1({}));\n const requiredSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n const externalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fDefaults,\n fOverrides\n ]);\n const optionalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n const groupSpec = objOf([\n fFactory,\n fGroupSchema,\n fName,\n required$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n const asNamedPart = part => {\n return part.fold(Optional.some, Optional.none, Optional.some, Optional.some);\n };\n const name$2 = part => {\n const get = data => data.name;\n return part.fold(get, get, get, get);\n };\n const asCommon = part => {\n return part.fold(identity, identity, identity, identity);\n };\n const convert = (adtConstructor, partSchema) => spec => {\n const data = asRawOrDie$1('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n const required = convert(adt$2.required, requiredSpec);\n const external = convert(adt$2.external, externalSpec);\n const optional = convert(adt$2.optional, optionalSpec);\n const group = convert(adt$2.group, groupSpec);\n const original = constant$1('entirety');\n\n var PartType = /*#__PURE__*/Object.freeze({\n __proto__: null,\n required: required,\n external: external,\n optional: optional,\n group: group,\n asNamedPart: asNamedPart,\n name: name$2,\n asCommon: asCommon,\n original: original\n });\n\n const combine = (detail, data, partSpec, partValidated) => deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, { uid: detail.partUids[data.name] }, data.overrides(detail, partSpec, partValidated));\n const subs = (owner, detail, parts) => {\n const internals = {};\n const externals = {};\n each$1(parts, part => {\n part.fold(data => {\n internals[data.pname] = single$2(true, (detail, partSpec, partValidated) => data.factory.sketch(combine(detail, data, partSpec, partValidated)));\n }, data => {\n const partSpec = detail.parts[data.name];\n externals[data.name] = constant$1(data.factory.sketch(combine(detail, data, partSpec[original()]), partSpec));\n }, data => {\n internals[data.pname] = single$2(false, (detail, partSpec, partValidated) => data.factory.sketch(combine(detail, data, partSpec, partValidated)));\n }, data => {\n internals[data.pname] = multiple(true, (detail, _partSpec, _partValidated) => {\n const units = detail[data.name];\n return map$2(units, u => data.factory.sketch(deepMerge(data.defaults(detail, u, _partValidated), u, data.overrides(detail, u))));\n });\n });\n });\n return {\n internals: constant$1(internals),\n externals: constant$1(externals)\n };\n };\n\n const generate$3 = (owner, parts) => {\n const r = {};\n each$1(parts, part => {\n asNamedPart(part).each(np => {\n const g = doGenerateOne(owner, np.pname);\n r[np.name] = config => {\n const validated = asRawOrDie$1('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return {\n ...g,\n config,\n validated\n };\n };\n });\n });\n return r;\n };\n const doGenerateOne = (owner, pname) => ({\n uiType: placeholder(),\n owner,\n name: pname\n });\n const generateOne$1 = (owner, pname, config) => ({\n uiType: placeholder(),\n owner,\n name: pname,\n config,\n validated: {}\n });\n const schemas = parts => bind$3(parts, part => part.fold(Optional.none, Optional.some, Optional.none, Optional.none).map(data => requiredObjOf(data.name, data.schema.concat([snapshot(original())]))).toArray());\n const names = parts => map$2(parts, name$2);\n const substitutes = (owner, detail, parts) => subs(owner, detail, parts);\n const components$1 = (owner, detail, internals) => substitutePlaces(Optional.some(owner), detail, detail.components, internals);\n const getPart = (component, detail, partKey) => {\n const uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOptional();\n };\n const getPartOrDie = (component, detail, partKey) => getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n const getParts = (component, detail, partKeys) => {\n const r = {};\n const uids = detail.partUids;\n const system = component.getSystem();\n each$1(partKeys, pk => {\n r[pk] = constant$1(system.getByUid(uids[pk]));\n });\n return r;\n };\n const getAllParts = (component, detail) => {\n const system = component.getSystem();\n return map$1(detail.partUids, (pUid, _k) => constant$1(system.getByUid(pUid)));\n };\n const getAllPartNames = detail => keys(detail.partUids);\n const getPartsOrDie = (component, detail, partKeys) => {\n const r = {};\n const uids = detail.partUids;\n const system = component.getSystem();\n each$1(partKeys, pk => {\n r[pk] = constant$1(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n const defaultUids = (baseUid, partTypes) => {\n const partNames = names(partTypes);\n return wrapAll(map$2(partNames, pn => ({\n key: pn,\n value: baseUid + '-' + pn\n })));\n };\n const defaultUidsSchema = partTypes => field$1('partUids', 'partUids', mergeWithThunk(spec => defaultUids(spec.uid, partTypes)), anyValue());\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n __proto__: null,\n generate: generate$3,\n generateOne: generateOne$1,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components$1,\n defaultUids: defaultUids,\n defaultUidsSchema: defaultUidsSchema,\n getAllParts: getAllParts,\n getAllPartNames: getAllPartNames,\n getPart: getPart,\n getPartOrDie: getPartOrDie,\n getParts: getParts,\n getPartsOrDie: getPartsOrDie\n });\n\n const base = (partSchemas, partUidsSchemas) => {\n const ps = partSchemas.length > 0 ? [requiredObjOf('parts', partSchemas)] : [];\n return ps.concat([\n required$1('uid'),\n defaulted('dom', {}),\n defaulted('components', []),\n snapshot('originalSpec'),\n defaulted('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n const asRawOrDie = (label, schema, spec, partSchemas, partUidsSchemas) => {\n const baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie$1(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n const single$1 = (owner, schema, factory, spec) => {\n const specWithUid = supplyUid(spec);\n const detail = asRawOrDie(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n const composite$1 = (owner, schema, partTypes, factory, spec) => {\n const specWithUid = supplyUid(spec);\n const partSchemas = schemas(partTypes);\n const partUidsSchema = defaultUidsSchema(partTypes);\n const detail = asRawOrDie(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n const subs = substitutes(owner, detail, partTypes);\n const components = components$1(owner, detail, subs.internals());\n return factory(detail, components, specWithUid, subs.externals());\n };\n const hasUid = spec => has$2(spec, 'uid');\n const supplyUid = spec => {\n return hasUid(spec) ? spec : {\n ...spec,\n uid: generate$5('uid')\n };\n };\n\n const isSketchSpec = spec => {\n return spec.uid !== undefined;\n };\n const singleSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n const compositeSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n required$1('partFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n const single = rawConfig => {\n const config = asRawOrDie$1('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n const sketch = spec => single$1(config.name, config.configFields, config.factory, spec);\n const apis = map$1(config.apis, makeApi);\n const extraApis = map$1(config.extraApis, (f, k) => markAsExtraApi(f, k));\n return {\n name: config.name,\n configFields: config.configFields,\n sketch,\n ...apis,\n ...extraApis\n };\n };\n const composite = rawConfig => {\n const config = asRawOrDie$1('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n const sketch = spec => composite$1(config.name, config.configFields, config.partFields, config.factory, spec);\n const parts = generate$3(config.name, config.partFields);\n const apis = map$1(config.apis, makeApi);\n const extraApis = map$1(config.extraApis, (f, k) => markAsExtraApi(f, k));\n return {\n name: config.name,\n partFields: config.partFields,\n configFields: config.configFields,\n sketch,\n parts,\n ...apis,\n ...extraApis\n };\n };\n\n const inside = target => isTag('input')(target) && get$g(target, 'type') !== 'radio' || isTag('textarea')(target);\n\n const getCurrent = (component, composeConfig, _composeState) => composeConfig.find(component);\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCurrent: getCurrent\n });\n\n const ComposeSchema = [required$1('find')];\n\n const Composing = create$4({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n const nativeDisabled = [\n 'input',\n 'button',\n 'textarea',\n 'select'\n ];\n const onLoad$1 = (component, disableConfig, disableState) => {\n const f = disableConfig.disabled() ? disable : enable;\n f(component, disableConfig);\n };\n const hasNative = (component, config) => config.useNative === true && contains$2(nativeDisabled, name$3(component.element));\n const nativeIsDisabled = component => has$1(component.element, 'disabled');\n const nativeDisable = component => {\n set$9(component.element, 'disabled', 'disabled');\n };\n const nativeEnable = component => {\n remove$8(component.element, 'disabled');\n };\n const ariaIsDisabled = component => get$g(component.element, 'aria-disabled') === 'true';\n const ariaDisable = component => {\n set$9(component.element, 'aria-disabled', 'true');\n };\n const ariaEnable = component => {\n set$9(component.element, 'aria-disabled', 'false');\n };\n const disable = (component, disableConfig, _disableState) => {\n disableConfig.disableClass.each(disableClass => {\n add$2(component.element, disableClass);\n });\n const f = hasNative(component, disableConfig) ? nativeDisable : ariaDisable;\n f(component);\n disableConfig.onDisabled(component);\n };\n const enable = (component, disableConfig, _disableState) => {\n disableConfig.disableClass.each(disableClass => {\n remove$3(component.element, disableClass);\n });\n const f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n const isDisabled = (component, disableConfig) => hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n const set$4 = (component, disableConfig, disableState, disabled) => {\n const f = disabled ? disable : enable;\n f(component, disableConfig);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n enable: enable,\n disable: disable,\n isDisabled: isDisabled,\n onLoad: onLoad$1,\n set: set$4\n });\n\n const exhibit$5 = (base, disableConfig) => nu$8({ classes: disableConfig.disabled() ? disableConfig.disableClass.toArray() : [] });\n const events$d = (disableConfig, disableState) => derive$2([\n abort(execute$5(), (component, _simulatedEvent) => isDisabled(component, disableConfig)),\n loadEvent(disableConfig, disableState, onLoad$1)\n ]);\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$5,\n events: events$d\n });\n\n var DisableSchema = [\n defaultedFunction('disabled', never),\n defaulted('useNative', true),\n option$3('disableClass'),\n onHandler('onDisabled'),\n onHandler('onEnabled')\n ];\n\n const Disabling = create$4({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n const dehighlightAllExcept = (component, hConfig, hState, skip) => {\n const highlighted = descendants(component.element, '.' + hConfig.highlightClass);\n each$1(highlighted, h => {\n const shouldSkip = exists(skip, skipComp => eq(skipComp.element, h));\n if (!shouldSkip) {\n remove$3(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(target => {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n });\n }\n });\n };\n const dehighlightAll = (component, hConfig, hState) => dehighlightAllExcept(component, hConfig, hState, []);\n const dehighlight = (component, hConfig, hState, target) => {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$3(target.element, hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n }\n };\n const highlight = (component, hConfig, hState, target) => {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element, hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight$1());\n }\n };\n const highlightFirst = (component, hConfig, hState) => {\n getFirst(component, hConfig).each(firstComp => {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n const highlightLast = (component, hConfig, hState) => {\n getLast(component, hConfig).each(lastComp => {\n highlight(component, hConfig, hState, lastComp);\n });\n };\n const highlightAt = (component, hConfig, hState, index) => {\n getByIndex(component, hConfig, hState, index).fold(err => {\n throw err;\n }, firstComp => {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n const highlightBy = (component, hConfig, hState, predicate) => {\n const candidates = getCandidates(component, hConfig);\n const targetComp = find$5(candidates, predicate);\n targetComp.each(c => {\n highlight(component, hConfig, hState, c);\n });\n };\n const isHighlighted = (component, hConfig, hState, queryTarget) => has(queryTarget.element, hConfig.highlightClass);\n const getHighlighted = (component, hConfig, _hState) => descendant(component.element, '.' + hConfig.highlightClass).bind(e => component.getSystem().getByDom(e).toOptional());\n const getByIndex = (component, hConfig, hState, index) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n return Optional.from(items[index]).fold(() => Result.error(new Error('No element found with index ' + index)), component.getSystem().getByDom);\n };\n const getFirst = (component, hConfig, _hState) => descendant(component.element, '.' + hConfig.itemClass).bind(e => component.getSystem().getByDom(e).toOptional());\n const getLast = (component, hConfig, _hState) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n const last = items.length > 0 ? Optional.some(items[items.length - 1]) : Optional.none();\n return last.bind(c => component.getSystem().getByDom(c).toOptional());\n };\n const getDelta$2 = (component, hConfig, hState, delta) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n const current = findIndex$1(items, item => has(item, hConfig.highlightClass));\n return current.bind(selected => {\n const dest = cycleBy(selected, delta, 0, items.length - 1);\n return component.getSystem().getByDom(items[dest]).toOptional();\n });\n };\n const getPrevious = (component, hConfig, hState) => getDelta$2(component, hConfig, hState, -1);\n const getNext = (component, hConfig, hState) => getDelta$2(component, hConfig, hState, +1);\n const getCandidates = (component, hConfig, _hState) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n return cat(map$2(items, i => component.getSystem().getByDom(i).toOptional()));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight,\n highlight: highlight,\n highlightFirst: highlightFirst,\n highlightLast: highlightLast,\n highlightAt: highlightAt,\n highlightBy: highlightBy,\n isHighlighted: isHighlighted,\n getHighlighted: getHighlighted,\n getFirst: getFirst,\n getLast: getLast,\n getPrevious: getPrevious,\n getNext: getNext,\n getCandidates: getCandidates\n });\n\n var HighlightSchema = [\n required$1('highlightClass'),\n required$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n const Highlighting = create$4({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n\n const BACKSPACE = [8];\n const TAB = [9];\n const ENTER = [13];\n const ESCAPE = [27];\n const SPACE = [32];\n const LEFT = [37];\n const UP = [38];\n const RIGHT = [39];\n const DOWN = [40];\n\n const cyclePrev = (values, index, predicate) => {\n const before = reverse(values.slice(0, index));\n const after = reverse(values.slice(index + 1));\n return find$5(before.concat(after), predicate);\n };\n const tryPrev = (values, index, predicate) => {\n const before = reverse(values.slice(0, index));\n return find$5(before, predicate);\n };\n const cycleNext = (values, index, predicate) => {\n const before = values.slice(0, index);\n const after = values.slice(index + 1);\n return find$5(after.concat(before), predicate);\n };\n const tryNext = (values, index, predicate) => {\n const after = values.slice(index + 1);\n return find$5(after, predicate);\n };\n\n const inSet = keys => event => {\n const raw = event.raw;\n return contains$2(keys, raw.which);\n };\n const and = preds => event => forall(preds, pred => pred(event));\n const isShift$1 = event => {\n const raw = event.raw;\n return raw.shiftKey === true;\n };\n const isControl = event => {\n const raw = event.raw;\n return raw.ctrlKey === true;\n };\n const isNotShift = not(isShift$1);\n\n const rule = (matches, action) => ({\n matches,\n classification: action\n });\n const choose = (transitions, event) => {\n const transition = find$5(transitions, t => t.matches(event));\n return transition.map(t => t.classification);\n };\n\n const reportFocusShifting = (component, prevFocus, newFocus) => {\n const noChange = prevFocus.exists(p => newFocus.exists(n => eq(n, p)));\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus,\n newFocus\n });\n }\n };\n const dom$2 = () => {\n const get = component => search(component.element);\n const set = (component, focusee) => {\n const prevFocus = get(component);\n component.getSystem().triggerFocus(focusee, component.element);\n const newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get,\n set\n };\n };\n const highlights = () => {\n const get = component => Highlighting.getHighlighted(component).map(item => item.element);\n const set = (component, element) => {\n const prevFocus = get(component);\n component.getSystem().getByDom(element).fold(noop, item => {\n Highlighting.highlight(component, item);\n });\n const newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get,\n set\n };\n };\n\n var FocusInsideModes;\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n }(FocusInsideModes || (FocusInsideModes = {})));\n\n const typical = (infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) => {\n const schema = () => infoSchema.concat([\n defaulted('focusManager', dom$2()),\n defaultedOf('focusInside', 'onFocus', valueOf(val => contains$2([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside'))),\n output$1('handler', me),\n output$1('state', stateInit),\n output$1('sendFocusIn', optFocusIn)\n ]);\n const processKey = (component, simulatedEvent, getRules, keyingConfig, keyingState) => {\n const rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose(rules, simulatedEvent.event).bind(rule => rule(component, simulatedEvent, keyingConfig, keyingState));\n };\n const toEvents = (keyingConfig, keyingState) => {\n const onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Optional.none() : optFocusIn(keyingConfig).map(focusIn => run$1(focus$4(), (component, simulatedEvent) => {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n }));\n const tryGoInsideComponent = (component, simulatedEvent) => {\n const isEnterOrSpace = inSet(SPACE.concat(ENTER))(simulatedEvent.event);\n if (keyingConfig.focusInside === FocusInsideModes.OnEnterOrSpaceMode && isEnterOrSpace && isSource(component, simulatedEvent)) {\n optFocusIn(keyingConfig).each(focusIn => {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n }\n };\n const keyboardEvents = [\n run$1(keydown(), (component, simulatedEvent) => {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(() => {\n tryGoInsideComponent(component, simulatedEvent);\n }, _ => {\n simulatedEvent.stop();\n });\n }),\n run$1(keyup(), (component, simulatedEvent) => {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(_ => {\n simulatedEvent.stop();\n });\n })\n ];\n return derive$2(onFocusHandler.toArray().concat(keyboardEvents));\n };\n const me = {\n schema,\n processKey,\n toEvents\n };\n return me;\n };\n\n const create$2 = cyclicField => {\n const schema = [\n option$3('onEscape'),\n option$3('onEnter'),\n defaulted('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'),\n defaulted('firstTabstop', 0),\n defaulted('useTabstopAt', always),\n option$3('visibilitySelector')\n ].concat([cyclicField]);\n const isVisible = (tabbingConfig, element) => {\n const target = tabbingConfig.visibilitySelector.bind(sel => closest$1(element, sel)).getOr(element);\n return get$e(target) > 0;\n };\n const findInitial = (component, tabbingConfig) => {\n const tabstops = descendants(component.element, tabbingConfig.selector);\n const visibles = filter$2(tabstops, elem => isVisible(tabbingConfig, elem));\n return Optional.from(visibles[tabbingConfig.firstTabstop]);\n };\n const findCurrent = (component, tabbingConfig) => tabbingConfig.focusManager.get(component).bind(elem => closest$1(elem, tabbingConfig.selector));\n const isTabstop = (tabbingConfig, element) => isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n const focusIn = (component, tabbingConfig, _tabbingState) => {\n findInitial(component, tabbingConfig).each(target => {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n const goFromTabstop = (component, tabstops, stopIndex, tabbingConfig, cycle) => cycle(tabstops, stopIndex, elem => isTabstop(tabbingConfig, elem)).fold(() => tabbingConfig.cyclic ? Optional.some(true) : Optional.none(), target => {\n tabbingConfig.focusManager.set(component, target);\n return Optional.some(true);\n });\n const go = (component, _simulatedEvent, tabbingConfig, cycle) => {\n const tabstops = descendants(component.element, tabbingConfig.selector);\n return findCurrent(component, tabbingConfig).bind(tabstop => {\n const optStopIndex = findIndex$1(tabstops, curry(eq, tabstop));\n return optStopIndex.bind(stopIndex => goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle));\n });\n };\n const goBackwards = (component, simulatedEvent, tabbingConfig) => {\n const navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n const goForwards = (component, simulatedEvent, tabbingConfig) => {\n const navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n const isFirstChild = elem => parentNode(elem).bind(firstChild).exists(child => eq(child, elem));\n const goFromPseudoTabstop = (component, simulatedEvent, tabbingConfig) => findCurrent(component, tabbingConfig).filter(elem => !tabbingConfig.useTabstopAt(elem)).bind(elem => (isFirstChild(elem) ? goBackwards : goForwards)(component, simulatedEvent, tabbingConfig));\n const execute = (component, simulatedEvent, tabbingConfig) => tabbingConfig.onEnter.bind(f => f(component, simulatedEvent));\n const exit = (component, simulatedEvent, tabbingConfig) => tabbingConfig.onEscape.bind(f => f(component, simulatedEvent));\n const getKeydownRules = constant$1([\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), goBackwards),\n rule(inSet(TAB), goForwards),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), execute)\n ]);\n const getKeyupRules = constant$1([\n rule(inSet(ESCAPE), exit),\n rule(inSet(TAB), goFromPseudoTabstop)\n ]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, () => Optional.some(focusIn));\n };\n\n var AcyclicType = create$2(customField('cyclic', never));\n\n var CyclicType = create$2(customField('cyclic', always));\n\n const doDefaultExecute = (component, _simulatedEvent, focused) => {\n dispatch(component, focused, execute$5());\n return Optional.some(true);\n };\n const defaultExecute = (component, simulatedEvent, focused) => {\n const isComplex = inside(focused) && inSet(SPACE)(simulatedEvent.event);\n return isComplex ? Optional.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n const stopEventForFirefox = (_component, _simulatedEvent) => Optional.some(true);\n\n const schema$v = [\n defaulted('execute', defaultExecute),\n defaulted('useSpace', false),\n defaulted('useEnter', true),\n defaulted('useControlEnter', false),\n defaulted('useDown', false)\n ];\n const execute$4 = (component, simulatedEvent, executeConfig) => executeConfig.execute(component, simulatedEvent, component.element);\n const getKeydownRules$5 = (component, _simulatedEvent, executeConfig, _executeState) => {\n const spaceExec = executeConfig.useSpace && !inside(component.element) ? SPACE : [];\n const enterExec = executeConfig.useEnter ? ENTER : [];\n const downExec = executeConfig.useDown ? DOWN : [];\n const execKeys = spaceExec.concat(enterExec).concat(downExec);\n return [rule(inSet(execKeys), execute$4)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER)\n ]), execute$4)] : []);\n };\n const getKeyupRules$5 = (component, _simulatedEvent, executeConfig, _executeState) => executeConfig.useSpace && !inside(component.element) ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n var ExecutionType = typical(schema$v, NoState.init, getKeydownRules$5, getKeyupRules$5, () => Optional.none());\n\n const flatgrid$1 = () => {\n const dimensions = value$4();\n const setGridSize = (numRows, numColumns) => {\n dimensions.set({\n numRows,\n numColumns\n });\n };\n const getNumRows = () => dimensions.get().map(d => d.numRows);\n const getNumColumns = () => dimensions.get().map(d => d.numColumns);\n return nu$7({\n readState: () => dimensions.get().map(d => ({\n numRows: String(d.numRows),\n numColumns: String(d.numColumns)\n })).getOr({\n numRows: '?',\n numColumns: '?'\n }),\n setGridSize,\n getNumRows,\n getNumColumns\n });\n };\n const init$c = spec => spec.state(spec);\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n flatgrid: flatgrid$1,\n init: init$c\n });\n\n const useH = movement => (component, simulatedEvent, config, state) => {\n const move = movement(component.element);\n return use(move, component, simulatedEvent, config, state);\n };\n const west$1 = (moveLeft, moveRight) => {\n const movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n const east$1 = (moveLeft, moveRight) => {\n const movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n const useV = move => (component, simulatedEvent, config, state) => use(move, component, simulatedEvent, config, state);\n const use = (move, component, simulatedEvent, config, state) => {\n const outcome = config.focusManager.get(component).bind(focused => move(component.element, focused, config, state));\n return outcome.map(newFocus => {\n config.focusManager.set(component, newFocus);\n return true;\n });\n };\n const north$1 = useV;\n const south$1 = useV;\n const move$1 = useV;\n\n const isHidden$1 = dom => dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n const isVisible = element => !isHidden$1(element.dom);\n\n const locate = (candidates, predicate) => findIndex$1(candidates, predicate).map(index => ({\n index,\n candidates\n }));\n\n const locateVisible = (container, current, selector) => {\n const predicate = x => eq(x, current);\n const candidates = descendants(container, selector);\n const visible = filter$2(candidates, isVisible);\n return locate(visible, predicate);\n };\n const findIndex = (elements, target) => findIndex$1(elements, elem => eq(target, elem));\n\n const withGrid = (values, index, numCols, f) => {\n const oldRow = Math.floor(index / numCols);\n const oldColumn = index % numCols;\n return f(oldRow, oldColumn).bind(address => {\n const newIndex = address.row * numCols + address.column;\n return newIndex >= 0 && newIndex < values.length ? Optional.some(values[newIndex]) : Optional.none();\n });\n };\n const cycleHorizontal$1 = (values, index, numRows, numCols, delta) => withGrid(values, index, numCols, (oldRow, oldColumn) => {\n const onLastRow = oldRow === numRows - 1;\n const colsInRow = onLastRow ? values.length - oldRow * numCols : numCols;\n const newColumn = cycleBy(oldColumn, delta, 0, colsInRow - 1);\n return Optional.some({\n row: oldRow,\n column: newColumn\n });\n });\n const cycleVertical$1 = (values, index, numRows, numCols, delta) => withGrid(values, index, numCols, (oldRow, oldColumn) => {\n const newRow = cycleBy(oldRow, delta, 0, numRows - 1);\n const onLastRow = newRow === numRows - 1;\n const colsInRow = onLastRow ? values.length - newRow * numCols : numCols;\n const newCol = clamp(oldColumn, 0, colsInRow - 1);\n return Optional.some({\n row: newRow,\n column: newCol\n });\n });\n const cycleRight$1 = (values, index, numRows, numCols) => cycleHorizontal$1(values, index, numRows, numCols, +1);\n const cycleLeft$1 = (values, index, numRows, numCols) => cycleHorizontal$1(values, index, numRows, numCols, -1);\n const cycleUp$1 = (values, index, numRows, numCols) => cycleVertical$1(values, index, numRows, numCols, -1);\n const cycleDown$1 = (values, index, numRows, numCols) => cycleVertical$1(values, index, numRows, numCols, +1);\n\n const schema$u = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('captureTab', false),\n initSize()\n ];\n const focusIn$3 = (component, gridConfig, _gridState) => {\n descendant(component.element, gridConfig.selector).each(first => {\n gridConfig.focusManager.set(component, first);\n });\n };\n const findCurrent$1 = (component, gridConfig) => gridConfig.focusManager.get(component).bind(elem => closest$1(elem, gridConfig.selector));\n const execute$3 = (component, simulatedEvent, gridConfig, _gridState) => findCurrent$1(component, gridConfig).bind(focused => gridConfig.execute(component, simulatedEvent, focused));\n const doMove$2 = cycle => (element, focused, gridConfig, gridState) => locateVisible(element, focused, gridConfig.selector).bind(identified => cycle(identified.candidates, identified.index, gridState.getNumRows().getOr(gridConfig.initSize.numRows), gridState.getNumColumns().getOr(gridConfig.initSize.numColumns)));\n const handleTab = (_component, _simulatedEvent, gridConfig) => gridConfig.captureTab ? Optional.some(true) : Optional.none();\n const doEscape$1 = (component, simulatedEvent, gridConfig) => gridConfig.onEscape(component, simulatedEvent);\n const moveLeft$3 = doMove$2(cycleLeft$1);\n const moveRight$3 = doMove$2(cycleRight$1);\n const moveNorth$1 = doMove$2(cycleUp$1);\n const moveSouth$1 = doMove$2(cycleDown$1);\n const getKeydownRules$4 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT), east$1(moveLeft$3, moveRight$3)),\n rule(inSet(UP), north$1(moveNorth$1)),\n rule(inSet(DOWN), south$1(moveSouth$1)),\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), handleTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), handleTab),\n rule(inSet(SPACE.concat(ENTER)), execute$3)\n ]);\n const getKeyupRules$4 = constant$1([\n rule(inSet(ESCAPE), doEscape$1),\n rule(inSet(SPACE), stopEventForFirefox)\n ]);\n var FlatgridType = typical(schema$u, flatgrid$1, getKeydownRules$4, getKeyupRules$4, () => Optional.some(focusIn$3));\n\n const f = (container, selector, current, delta, getNewIndex) => {\n const isDisabledButton = candidate => name$3(candidate) === 'button' && get$g(candidate, 'disabled') === 'disabled';\n const tryNewIndex = (initial, index, candidates) => getNewIndex(initial, index, delta, 0, candidates.length - 1, candidates[index], newIndex => isDisabledButton(candidates[newIndex]) ? tryNewIndex(initial, newIndex, candidates) : Optional.from(candidates[newIndex]));\n return locateVisible(container, current, selector).bind(identified => {\n const index = identified.index;\n const candidates = identified.candidates;\n return tryNewIndex(index, index, candidates);\n });\n };\n const horizontalWithoutCycles = (container, selector, current, delta) => f(container, selector, current, delta, (prevIndex, v, d, min, max, oldCandidate, onNewIndex) => {\n const newIndex = clamp(v + d, min, max);\n return newIndex === prevIndex ? Optional.from(oldCandidate) : onNewIndex(newIndex);\n });\n const horizontal = (container, selector, current, delta) => f(container, selector, current, delta, (prevIndex, v, d, min, max, _oldCandidate, onNewIndex) => {\n const newIndex = cycleBy(v, d, min, max);\n return newIndex === prevIndex ? Optional.none() : onNewIndex(newIndex);\n });\n\n const schema$t = [\n required$1('selector'),\n defaulted('getInitial', Optional.none),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('executeOnMove', false),\n defaulted('allowVertical', true),\n defaulted('allowHorizontal', true),\n defaulted('cycles', true)\n ];\n const findCurrent = (component, flowConfig) => flowConfig.focusManager.get(component).bind(elem => closest$1(elem, flowConfig.selector));\n const execute$2 = (component, simulatedEvent, flowConfig) => findCurrent(component, flowConfig).bind(focused => flowConfig.execute(component, simulatedEvent, focused));\n const focusIn$2 = (component, flowConfig, _state) => {\n flowConfig.getInitial(component).orThunk(() => descendant(component.element, flowConfig.selector)).each(first => {\n flowConfig.focusManager.set(component, first);\n });\n };\n const moveLeft$2 = (element, focused, info) => (info.cycles ? horizontal : horizontalWithoutCycles)(element, info.selector, focused, -1);\n const moveRight$2 = (element, focused, info) => (info.cycles ? horizontal : horizontalWithoutCycles)(element, info.selector, focused, +1);\n const doMove$1 = movement => (component, simulatedEvent, flowConfig, flowState) => movement(component, simulatedEvent, flowConfig, flowState).bind(() => flowConfig.executeOnMove ? execute$2(component, simulatedEvent, flowConfig) : Optional.some(true));\n const doEscape = (component, simulatedEvent, flowConfig) => flowConfig.onEscape(component, simulatedEvent);\n const getKeydownRules$3 = (_component, _se, flowConfig, _flowState) => {\n const westMovers = [...flowConfig.allowHorizontal ? LEFT : []].concat(flowConfig.allowVertical ? UP : []);\n const eastMovers = [...flowConfig.allowHorizontal ? RIGHT : []].concat(flowConfig.allowVertical ? DOWN : []);\n return [\n rule(inSet(westMovers), doMove$1(west$1(moveLeft$2, moveRight$2))),\n rule(inSet(eastMovers), doMove$1(east$1(moveLeft$2, moveRight$2))),\n rule(inSet(ENTER), execute$2),\n rule(inSet(SPACE), execute$2)\n ];\n };\n const getKeyupRules$3 = constant$1([\n rule(inSet(SPACE), stopEventForFirefox),\n rule(inSet(ESCAPE), doEscape)\n ]);\n var FlowType = typical(schema$t, NoState.init, getKeydownRules$3, getKeyupRules$3, () => Optional.some(focusIn$2));\n\n const toCell = (matrix, rowIndex, columnIndex) => Optional.from(matrix[rowIndex]).bind(row => Optional.from(row[columnIndex]).map(cell => ({\n rowIndex,\n columnIndex,\n cell\n })));\n const cycleHorizontal = (matrix, rowIndex, startCol, deltaCol) => {\n const row = matrix[rowIndex];\n const colsInRow = row.length;\n const newColIndex = cycleBy(startCol, deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n const cycleVertical = (matrix, colIndex, startRow, deltaRow) => {\n const nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n const colsInNextRow = matrix[nextRowIndex].length;\n const nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n const moveHorizontal = (matrix, rowIndex, startCol, deltaCol) => {\n const row = matrix[rowIndex];\n const colsInRow = row.length;\n const newColIndex = clamp(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n const moveVertical = (matrix, colIndex, startRow, deltaRow) => {\n const nextRowIndex = clamp(startRow + deltaRow, 0, matrix.length - 1);\n const colsInNextRow = matrix[nextRowIndex].length;\n const nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n const cycleRight = (matrix, startRow, startCol) => cycleHorizontal(matrix, startRow, startCol, +1);\n const cycleLeft = (matrix, startRow, startCol) => cycleHorizontal(matrix, startRow, startCol, -1);\n const cycleUp = (matrix, startRow, startCol) => cycleVertical(matrix, startCol, startRow, -1);\n const cycleDown = (matrix, startRow, startCol) => cycleVertical(matrix, startCol, startRow, +1);\n const moveLeft$1 = (matrix, startRow, startCol) => moveHorizontal(matrix, startRow, startCol, -1);\n const moveRight$1 = (matrix, startRow, startCol) => moveHorizontal(matrix, startRow, startCol, +1);\n const moveUp$1 = (matrix, startRow, startCol) => moveVertical(matrix, startCol, startRow, -1);\n const moveDown$1 = (matrix, startRow, startCol) => moveVertical(matrix, startCol, startRow, +1);\n\n const schema$s = [\n requiredObjOf('selectors', [\n required$1('row'),\n required$1('cell')\n ]),\n defaulted('cycles', true),\n defaulted('previousSelector', Optional.none),\n defaulted('execute', defaultExecute)\n ];\n const focusIn$1 = (component, matrixConfig, _state) => {\n const focused = matrixConfig.previousSelector(component).orThunk(() => {\n const selectors = matrixConfig.selectors;\n return descendant(component.element, selectors.cell);\n });\n focused.each(cell => {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n const execute$1 = (component, simulatedEvent, matrixConfig) => search(component.element).bind(focused => matrixConfig.execute(component, simulatedEvent, focused));\n const toMatrix = (rows, matrixConfig) => map$2(rows, row => descendants(row, matrixConfig.selectors.cell));\n const doMove = (ifCycle, ifMove) => (element, focused, matrixConfig) => {\n const move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$1(focused, matrixConfig.selectors.row).bind(inRow => {\n const cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex(cellsInRow, focused).bind(colIndex => {\n const allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex(allRows, inRow).bind(rowIndex => {\n const matrix = toMatrix(allRows, matrixConfig);\n return move(matrix, rowIndex, colIndex).map(next => next.cell);\n });\n });\n });\n };\n const moveLeft = doMove(cycleLeft, moveLeft$1);\n const moveRight = doMove(cycleRight, moveRight$1);\n const moveNorth = doMove(cycleUp, moveUp$1);\n const moveSouth = doMove(cycleDown, moveDown$1);\n const getKeydownRules$2 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft, moveRight)),\n rule(inSet(RIGHT), east$1(moveLeft, moveRight)),\n rule(inSet(UP), north$1(moveNorth)),\n rule(inSet(DOWN), south$1(moveSouth)),\n rule(inSet(SPACE.concat(ENTER)), execute$1)\n ]);\n const getKeyupRules$2 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MatrixType = typical(schema$s, NoState.init, getKeydownRules$2, getKeyupRules$2, () => Optional.some(focusIn$1));\n\n const schema$r = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n defaulted('moveOnTab', false)\n ];\n const execute = (component, simulatedEvent, menuConfig) => menuConfig.focusManager.get(component).bind(focused => menuConfig.execute(component, simulatedEvent, focused));\n const focusIn = (component, menuConfig, _state) => {\n descendant(component.element, menuConfig.selector).each(first => {\n menuConfig.focusManager.set(component, first);\n });\n };\n const moveUp = (element, focused, info) => horizontal(element, info.selector, focused, -1);\n const moveDown = (element, focused, info) => horizontal(element, info.selector, focused, +1);\n const fireShiftTab = (component, simulatedEvent, menuConfig, menuState) => menuConfig.moveOnTab ? move$1(moveUp)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n const fireTab = (component, simulatedEvent, menuConfig, menuState) => menuConfig.moveOnTab ? move$1(moveDown)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n const getKeydownRules$1 = constant$1([\n rule(inSet(UP), move$1(moveUp)),\n rule(inSet(DOWN), move$1(moveDown)),\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), fireShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), fireTab),\n rule(inSet(ENTER), execute),\n rule(inSet(SPACE), execute)\n ]);\n const getKeyupRules$1 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MenuType = typical(schema$r, NoState.init, getKeydownRules$1, getKeyupRules$1, () => Optional.some(focusIn));\n\n const schema$q = [\n onKeyboardHandler('onSpace'),\n onKeyboardHandler('onEnter'),\n onKeyboardHandler('onShiftEnter'),\n onKeyboardHandler('onLeft'),\n onKeyboardHandler('onRight'),\n onKeyboardHandler('onTab'),\n onKeyboardHandler('onShiftTab'),\n onKeyboardHandler('onUp'),\n onKeyboardHandler('onDown'),\n onKeyboardHandler('onEscape'),\n defaulted('stopSpaceKeyup', false),\n option$3('focusIn')\n ];\n const getKeydownRules = (component, simulatedEvent, specialInfo) => [\n rule(inSet(SPACE), specialInfo.onSpace),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), specialInfo.onEnter),\n rule(and([\n isShift$1,\n inSet(ENTER)\n ]), specialInfo.onShiftEnter),\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), specialInfo.onShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), specialInfo.onTab),\n rule(inSet(UP), specialInfo.onUp),\n rule(inSet(DOWN), specialInfo.onDown),\n rule(inSet(LEFT), specialInfo.onLeft),\n rule(inSet(RIGHT), specialInfo.onRight),\n rule(inSet(SPACE), specialInfo.onSpace)\n ];\n const getKeyupRules = (component, simulatedEvent, specialInfo) => [\n ...specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE), stopEventForFirefox)] : [],\n rule(inSet(ESCAPE), specialInfo.onEscape)\n ];\n var SpecialType = typical(schema$q, NoState.init, getKeydownRules, getKeyupRules, specialInfo => specialInfo.focusIn);\n\n const acyclic = AcyclicType.schema();\n const cyclic = CyclicType.schema();\n const flow = FlowType.schema();\n const flatgrid = FlatgridType.schema();\n const matrix = MatrixType.schema();\n const execution = ExecutionType.schema();\n const menu = MenuType.schema();\n const special = SpecialType.schema();\n\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n const isFlatgridState = keyState => hasNonNullableKey(keyState, 'setGridSize');\n const Keying = createModes({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: (keyingConfig, keyingState) => {\n const handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: (component, keyConfig, keyState) => {\n keyConfig.sendFocusIn(keyConfig).fold(() => {\n component.getSystem().triggerFocus(component.element, component.element);\n }, sendFocusIn => {\n sendFocusIn(component, keyConfig, keyState);\n });\n },\n setGridSize: (component, keyConfig, keyState, numRows, numColumns) => {\n if (!isFlatgridState(keyState)) {\n console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n const withoutReuse = (parent, data) => {\n preserve$1(() => {\n replaceChildren(parent, data, () => map$2(data, parent.getSystem().build));\n }, parent.element);\n };\n const withReuse = (parent, data) => {\n preserve$1(() => {\n virtualReplaceChildren(parent, data, () => {\n return patchSpecChildren(parent.element, data, parent.getSystem().buildOrPatch);\n });\n }, parent.element);\n };\n\n const virtualReplace = (component, replacee, replaceeIndex, childSpec) => {\n virtualDetach(replacee);\n const child = patchSpecChild(component.element, replaceeIndex, childSpec, component.getSystem().buildOrPatch);\n virtualAttach(component, child);\n component.syncComponents();\n };\n const insert = (component, insertion, childSpec) => {\n const child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n const replace = (component, replacee, replaceeIndex, childSpec) => {\n detach(replacee);\n insert(component, (p, c) => appendAt(p, c, replaceeIndex), childSpec);\n };\n const set$3 = (component, replaceConfig, replaceState, data) => {\n const replacer = replaceConfig.reuseDom ? withReuse : withoutReuse;\n return replacer(component, data);\n };\n const append = (component, replaceConfig, replaceState, appendee) => {\n insert(component, append$2, appendee);\n };\n const prepend = (component, replaceConfig, replaceState, prependee) => {\n insert(component, prepend$1, prependee);\n };\n const remove$1 = (component, replaceConfig, replaceState, removee) => {\n const children = contents(component);\n const foundChild = find$5(children, child => eq(removee.element, child.element));\n foundChild.each(detach);\n };\n const contents = (component, _replaceConfig) => component.components();\n const replaceAt = (component, replaceConfig, replaceState, replaceeIndex, replacer) => {\n const children = contents(component);\n return Optional.from(children[replaceeIndex]).map(replacee => {\n replacer.fold(() => detach(replacee), r => {\n const replacer = replaceConfig.reuseDom ? virtualReplace : replace;\n replacer(component, replacee, replaceeIndex, r);\n });\n return replacee;\n });\n };\n const replaceBy = (component, replaceConfig, replaceState, replaceePred, replacer) => {\n const children = contents(component);\n return findIndex$1(children, replaceePred).bind(replaceeIndex => replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer));\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n append: append,\n prepend: prepend,\n remove: remove$1,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$3,\n contents: contents\n });\n\n const Replacing = create$4({\n fields: [defaultedBoolean('reuseDom', true)],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n const events$c = (name, eventHandlers) => {\n const events = derive$2(eventHandlers);\n return create$4({\n fields: [required$1('enabled')],\n name,\n active: { events: constant$1(events) }\n });\n };\n const config = (name, eventHandlers) => {\n const me = events$c(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me,\n configAsRaw: constant$1({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n const focus$2 = (component, focusConfig) => {\n if (!focusConfig.ignore) {\n focus$3(component.element);\n focusConfig.onFocus(component);\n }\n };\n const blur = (component, focusConfig) => {\n if (!focusConfig.ignore) {\n blur$1(component.element);\n }\n };\n const isFocused = component => hasFocus(component.element);\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n focus: focus$2,\n blur: blur,\n isFocused: isFocused\n });\n\n const exhibit$4 = (base, focusConfig) => {\n const mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$8(mod);\n };\n const events$b = focusConfig => derive$2([run$1(focus$4(), (component, simulatedEvent) => {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run$1(mousedown(), (_, simulatedEvent) => {\n simulatedEvent.event.prevent();\n })] : []));\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$4,\n events: events$b\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted('stopMousedown', false),\n defaulted('ignore', false)\n ];\n\n const Focusing = create$4({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n const SetupBehaviourCellState = initialState => {\n const init = () => {\n const cell = Cell(initialState);\n const get = () => cell.get();\n const set = newState => cell.set(newState);\n const clear = () => cell.set(initialState);\n const readState = () => cell.get();\n return {\n get,\n set,\n clear,\n readState\n };\n };\n return { init };\n };\n\n const updateAriaState = (component, toggleConfig, toggleState) => {\n const ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n const updateClass = (component, toggleConfig, toggleState) => {\n toggleConfig.toggleClass.each(toggleClass => {\n if (toggleState.get()) {\n add$2(component.element, toggleClass);\n } else {\n remove$3(component.element, toggleClass);\n }\n });\n };\n const set$2 = (component, toggleConfig, toggleState, state) => {\n const initialState = toggleState.get();\n toggleState.set(state);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n if (initialState !== state) {\n toggleConfig.onToggled(component, state);\n }\n };\n const toggle$2 = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, !toggleState.get());\n };\n const on = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, true);\n };\n const off = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, false);\n };\n const isOn = (component, toggleConfig, toggleState) => toggleState.get();\n const onLoad = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad,\n toggle: toggle$2,\n isOn: isOn,\n on: on,\n off: off,\n set: set$2\n });\n\n const exhibit$3 = () => nu$8({});\n const events$a = (toggleConfig, toggleState) => {\n const execute = executeEvent(toggleConfig, toggleState, toggle$2);\n const load = loadEvent(toggleConfig, toggleState, onLoad);\n return derive$2(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$3,\n events: events$a\n });\n\n const updatePressed = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-pressed', status);\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n const updateSelected = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-selected', status);\n };\n const updateChecked = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-checked', status);\n };\n const updateExpanded = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted('selected', false),\n option$3('toggleClass'),\n defaulted('toggleOnExecute', true),\n onHandler('onToggled'),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted('syncWithExpanded', false),\n output$1('update', updatePressed)\n ],\n checked: [output$1('update', updateChecked)],\n expanded: [output$1('update', updateExpanded)],\n selected: [output$1('update', updateSelected)],\n none: [output$1('update', noop)]\n }))\n ];\n\n const Toggling = create$4({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n const pointerEvents = () => {\n const onClick = (component, simulatedEvent) => {\n simulatedEvent.stop();\n emitExecute(component);\n };\n return [\n run$1(click(), onClick),\n run$1(tap(), onClick),\n cutter(touchstart()),\n cutter(mousedown())\n ];\n };\n const events$9 = optAction => {\n const executeHandler = action => runOnExecute$1((component, simulatedEvent) => {\n action(component);\n simulatedEvent.stop();\n });\n return derive$2(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents()\n ]));\n };\n\n const hoverEvent = 'alloy.item-hover';\n const focusEvent = 'alloy.item-focus';\n const toggledEvent = 'alloy.item-toggled';\n const onHover = item => {\n if (search(item.element).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n emitWith(item, hoverEvent, { item });\n }\n };\n const onFocus$1 = item => {\n emitWith(item, focusEvent, { item });\n };\n const onToggled = (item, state) => {\n emitWith(item, toggledEvent, {\n item,\n state\n });\n };\n const hover = constant$1(hoverEvent);\n const focus$1 = constant$1(focusEvent);\n const toggled = constant$1(toggledEvent);\n\n const getItemRole = detail => detail.role.fold(() => detail.toggling.map(toggling => toggling.exclusive ? 'menuitemradio' : 'menuitemcheckbox').getOr('menuitem'), identity);\n const getTogglingSpec = (tConfig, isOption) => ({\n aria: { mode: isOption ? 'selected' : 'checked' },\n ...filter$1(tConfig, (_value, name) => name !== 'exclusive'),\n onToggled: (component, state) => {\n if (isFunction(tConfig.onToggled)) {\n tConfig.onToggled(component, state);\n }\n onToggled(component, state);\n }\n });\n const builder$2 = detail => ({\n dom: detail.dom,\n domModification: {\n ...detail.domModification,\n attributes: {\n 'role': getItemRole(detail),\n ...detail.domModification.attributes,\n 'aria-haspopup': detail.hasSubmenu,\n ...detail.hasSubmenu ? { 'aria-expanded': false } : {}\n }\n },\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [\n detail.toggling.fold(Toggling.revoke, tConfig => Toggling.config(getTogglingSpec(tConfig, detail.role.exists(role => role === 'option')))),\n Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: component => {\n onFocus$1(component);\n }\n }),\n Keying.config({ mode: 'execution' }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n config('item-type-events', [\n ...pointerEvents(),\n run$1(mouseover(), onHover),\n run$1(focusItem(), Focusing.focus)\n ])\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n });\n const schema$p = [\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('hasSubmenu', false),\n option$3('toggling'),\n option$3('role'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted('ignoreFocus', false),\n defaulted('domModification', {}),\n output$1('builder', builder$2),\n defaulted('eventOrder', {})\n ];\n\n const builder$1 = detail => ({\n dom: detail.dom,\n components: detail.components,\n events: derive$2([stopper(focusItem())])\n });\n const schema$o = [\n required$1('dom'),\n required$1('components'),\n output$1('builder', builder$1)\n ];\n\n const owner$2 = constant$1('item-widget');\n const parts$h = constant$1([required({\n name: 'widget',\n overrides: detail => {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: _component => {\n return detail.data;\n },\n setValue: noop\n }\n })])\n };\n }\n })]);\n\n const builder = detail => {\n const subs = substitutes(owner$2(), detail, parts$h());\n const components = components$1(owner$2(), detail, subs.internals());\n const focusWidget = component => getPart(component, detail, 'widget').map(widget => {\n Keying.focusIn(widget);\n return widget;\n });\n const onHorizontalArrow = (component, simulatedEvent) => inside(simulatedEvent.event.target) ? Optional.none() : (() => {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n })();\n return {\n dom: detail.dom,\n components,\n domModification: detail.domModification,\n events: derive$2([\n runOnExecute$1((component, simulatedEvent) => {\n focusWidget(component).each(_widget => {\n simulatedEvent.stop();\n });\n }),\n run$1(mouseover(), onHover),\n run$1(focusItem(), (component, _simulatedEvent) => {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })\n ]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: component => {\n onFocus$1(component);\n }\n }),\n Keying.config({\n mode: 'special',\n focusIn: detail.autofocus ? component => {\n focusWidget(component);\n } : revoke(),\n onLeft: onHorizontalArrow,\n onRight: onHorizontalArrow,\n onEscape: (component, simulatedEvent) => {\n if (!Focusing.isFocused(component) && !detail.autofocus) {\n Focusing.focus(component);\n return Optional.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }\n })\n ])\n };\n };\n const schema$n = [\n required$1('uid'),\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('autofocus', false),\n defaulted('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted('domModification', {}),\n defaultUidsSchema(parts$h()),\n output$1('builder', builder)\n ];\n\n const itemSchema$2 = choose$1('type', {\n widget: schema$n,\n item: schema$p,\n separator: schema$o\n });\n const configureGrid = (detail, movementInfo) => ({\n mode: 'flatgrid',\n selector: '.' + detail.markers.item,\n initSize: {\n numColumns: movementInfo.initSize.numColumns,\n numRows: movementInfo.initSize.numRows\n },\n focusManager: detail.focusManager\n });\n const configureMatrix = (detail, movementInfo) => ({\n mode: 'matrix',\n selectors: {\n row: movementInfo.rowSelector,\n cell: '.' + detail.markers.item\n },\n previousSelector: movementInfo.previousSelector,\n focusManager: detail.focusManager\n });\n const configureMenu = (detail, movementInfo) => ({\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n });\n const parts$g = constant$1([group({\n factory: {\n sketch: spec => {\n const itemInfo = asRawOrDie$1('menu.spec item', itemSchema$2, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: (detail, u) => {\n return has$2(u, 'uid') ? u : {\n ...u,\n uid: generate$5('item')\n };\n },\n overrides: (detail, u) => {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: { classes: [detail.markers.item] }\n };\n }\n })]);\n const schema$m = constant$1([\n optionString('role'),\n required$1('value'),\n required$1('items'),\n required$1('dom'),\n required$1('components'),\n defaulted('eventOrder', {}),\n field('menuBehaviours', [\n Highlighting,\n Representing,\n Composing,\n Keying\n ]),\n defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [\n initSize(),\n output$1('config', configureGrid)\n ],\n matrix: [\n output$1('config', configureMatrix),\n required$1('rowSelector'),\n defaulted('previousSelector', Optional.none)\n ],\n menu: [\n defaulted('moveOnTab', true),\n output$1('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted('fakeFocus', false),\n defaulted('focusManager', dom$2()),\n onHandler('onHighlight'),\n onHandler('onDehighlight'),\n defaulted('showMenuRole', true)\n ]);\n\n const focus = constant$1('alloy.menu-focus');\n\n const deselectOtherRadioItems = (menu, item) => {\n const checkedRadioItems = descendants(menu.element, '[role=\"menuitemradio\"][aria-checked=\"true\"]');\n each$1(checkedRadioItems, ele => {\n if (!eq(ele, item.element)) {\n menu.getSystem().getByDom(ele).each(c => {\n Toggling.off(c);\n });\n }\n });\n };\n const make$7 = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight,\n onDehighlight: detail.onDehighlight\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }),\n Composing.config({ find: Optional.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive$2([\n run$1(focus$1(), (menu, simulatedEvent) => {\n const event = simulatedEvent.event;\n menu.getSystem().getByDom(event.target).each(item => {\n Highlighting.highlight(menu, item);\n simulatedEvent.stop();\n emitWith(menu, focus(), {\n menu,\n item\n });\n });\n }),\n run$1(hover(), (menu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n Highlighting.highlight(menu, item);\n }),\n run$1(toggled(), (menu, simulatedEvent) => {\n const {item, state} = simulatedEvent.event;\n if (state && get$g(item.element, 'role') === 'menuitemradio') {\n deselectOtherRadioItems(menu, item);\n }\n })\n ]),\n components,\n eventOrder: detail.eventOrder,\n ...detail.showMenuRole ? { domModification: { attributes: { role: detail.role.getOr('menu') } } } : {}\n });\n\n const Menu = composite({\n name: 'Menu',\n configFields: schema$m(),\n partFields: parts$g(),\n factory: make$7\n });\n\n const transpose$1 = obj => tupleMap(obj, (v, k) => ({\n k: v,\n v: k\n }));\n const trace = (items, byItem, byMenu, finish) => get$h(byMenu, finish).bind(triggerItem => get$h(items, triggerItem).bind(triggerMenu => {\n const rest = trace(items, byItem, byMenu, triggerMenu);\n return Optional.some([triggerMenu].concat(rest));\n })).getOr([]);\n const generate$2 = (menus, expansions) => {\n const items = {};\n each(menus, (menuItems, menu) => {\n each$1(menuItems, item => {\n items[item] = menu;\n });\n });\n const byItem = expansions;\n const byMenu = transpose$1(expansions);\n const menuPaths = map$1(byMenu, (_triggerItem, submenu) => [submenu].concat(trace(items, byItem, byMenu, submenu)));\n return map$1(items, menu => get$h(menuPaths, menu).getOr([menu]));\n };\n\n const init$b = () => {\n const expansions = Cell({});\n const menus = Cell({});\n const paths = Cell({});\n const primary = value$4();\n const directory = Cell({});\n const clear = () => {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.clear();\n };\n const isClear = () => primary.get().isNone();\n const setMenuBuilt = (menuName, built) => {\n menus.set({\n ...menus.get(),\n [menuName]: {\n type: 'prepared',\n menu: built\n }\n });\n };\n const setContents = (sPrimary, sMenus, sExpansions, dir) => {\n primary.set(sPrimary);\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n const sPaths = generate$2(dir, sExpansions);\n paths.set(sPaths);\n };\n const getTriggeringItem = menuValue => find$4(expansions.get(), (v, _k) => v === menuValue);\n const getTriggerData = (menuValue, getItemByValue, path) => getPreparedMenu(menuValue).bind(menu => getTriggeringItem(menuValue).bind(triggeringItemValue => getItemByValue(triggeringItemValue).map(triggeredItem => ({\n triggeredMenu: menu,\n triggeringItem: triggeredItem,\n triggeringPath: path\n }))));\n const getTriggeringPath = (itemValue, getItemByValue) => {\n const extraPath = filter$2(lookupItem(itemValue).toArray(), menuValue => getPreparedMenu(menuValue).isSome());\n return get$h(paths.get(), itemValue).bind(path => {\n const revPath = reverse(extraPath.concat(path));\n const triggers = bind$3(revPath, (menuValue, menuIndex) => getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(() => is$1(primary.get(), menuValue) ? [] : [Optional.none()], data => [Optional.some(data)]));\n return sequence(triggers);\n });\n };\n const expand = itemValue => get$h(expansions.get(), itemValue).map(menu => {\n const current = get$h(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n const collapse = itemValue => get$h(paths.get(), itemValue).bind(path => path.length > 1 ? Optional.some(path.slice(1)) : Optional.none());\n const refresh = itemValue => get$h(paths.get(), itemValue);\n const getPreparedMenu = menuValue => lookupMenu(menuValue).bind(extractPreparedMenu);\n const lookupMenu = menuValue => get$h(menus.get(), menuValue);\n const lookupItem = itemValue => get$h(expansions.get(), itemValue);\n const otherMenus = path => {\n const menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n const getPrimary = () => primary.get().bind(getPreparedMenu);\n const getMenus = () => menus.get();\n return {\n setMenuBuilt,\n setContents,\n expand,\n refresh,\n collapse,\n lookupMenu,\n lookupItem,\n otherMenus,\n getPrimary,\n getMenus,\n clear,\n isClear,\n getTriggeringPath\n };\n };\n const extractPreparedMenu = prep => prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n const LayeredState = {\n init: init$b,\n extractPreparedMenu\n };\n\n const onMenuItemHighlightedEvent = generate$6('tiered-menu-item-highlight');\n const onMenuItemDehighlightedEvent = generate$6('tiered-menu-item-dehighlight');\n\n var HighlightOnOpen;\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightMenuAndItem'] = 0] = 'HighlightMenuAndItem';\n HighlightOnOpen[HighlightOnOpen['HighlightJustMenu'] = 1] = 'HighlightJustMenu';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 2] = 'HighlightNone';\n }(HighlightOnOpen || (HighlightOnOpen = {})));\n\n const make$6 = (detail, _rawUiSpec) => {\n const submenuParentItems = value$4();\n const buildMenus = (container, primaryName, menus) => map$1(menus, (spec, name) => {\n const makeSketch = () => Menu.sketch({\n ...spec,\n value: name,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: (menuComp, itemComp) => {\n const highlightData = {\n menuComp,\n itemComp\n };\n emitWith(menuComp, onMenuItemHighlightedEvent, highlightData);\n },\n onDehighlight: (menuComp, itemComp) => {\n const dehighlightData = {\n menuComp,\n itemComp\n };\n emitWith(menuComp, onMenuItemDehighlightedEvent, dehighlightData);\n },\n focusManager: detail.fakeFocus ? highlights() : dom$2()\n });\n return name === primaryName ? {\n type: 'prepared',\n menu: container.getSystem().build(makeSketch())\n } : {\n type: 'notbuilt',\n nbMenu: makeSketch\n };\n });\n const layeredState = LayeredState.init();\n const setup = container => {\n const componentMap = buildMenus(container, detail.data.primary, detail.data.menus);\n const directory = toDirectory();\n layeredState.setContents(detail.data.primary, componentMap, detail.data.expansions, directory);\n return layeredState.getPrimary();\n };\n const getItemValue = item => Representing.getValue(item).value;\n const getItemByValue = (_container, menus, itemValue) => findMap(menus, menu => {\n if (!menu.getSystem().isConnected()) {\n return Optional.none();\n }\n const candidates = Highlighting.getCandidates(menu);\n return find$5(candidates, c => getItemValue(c) === itemValue);\n });\n const toDirectory = _container => map$1(detail.data.menus, (data, _menuName) => bind$3(data.items, item => item.type === 'separator' ? [] : [item.data.value]));\n const setActiveMenu = Highlighting.highlight;\n const setActiveMenuAndItem = (container, menu) => {\n setActiveMenu(container, menu);\n Highlighting.getHighlighted(menu).orThunk(() => Highlighting.getFirst(menu)).each(item => {\n if (detail.fakeFocus) {\n Highlighting.highlight(menu, item);\n } else {\n dispatch(container, item.element, focusItem());\n }\n });\n };\n const getMenus = (state, menuValues) => cat(map$2(menuValues, mv => state.lookupMenu(mv).bind(prep => prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none())));\n const closeOthers = (container, state, path) => {\n const others = getMenus(state, state.otherMenus(path));\n each$1(others, o => {\n remove$2(o.element, [detail.markers.backgroundMenu]);\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n const getSubmenuParents = container => submenuParentItems.get().getOrThunk(() => {\n const r = {};\n const items = descendants(container.element, `.${ detail.markers.item }`);\n const parentItems = filter$2(items, i => get$g(i, 'aria-haspopup') === 'true');\n each$1(parentItems, i => {\n container.getSystem().getByDom(i).each(itemComp => {\n const key = getItemValue(itemComp);\n r[key] = itemComp;\n });\n });\n submenuParentItems.set(r);\n return r;\n });\n const updateAriaExpansions = (container, path) => {\n const parentItems = getSubmenuParents(container);\n each(parentItems, (v, k) => {\n const expanded = contains$2(path, k);\n set$9(v.element, 'aria-expanded', expanded);\n });\n };\n const updateMenuPath = (container, state, path) => Optional.from(path[0]).bind(latestMenuName => state.lookupMenu(latestMenuName).bind(menuPrep => {\n if (menuPrep.type === 'notbuilt') {\n return Optional.none();\n } else {\n const activeMenu = menuPrep.menu;\n const rest = getMenus(state, path.slice(1));\n each$1(rest, r => {\n add$2(r.element, detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n remove$2(activeMenu.element, [detail.markers.backgroundMenu]);\n setActiveMenuAndItem(container, activeMenu);\n closeOthers(container, state, path);\n return Optional.some(activeMenu);\n }\n }));\n let ExpandHighlightDecision;\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n }(ExpandHighlightDecision || (ExpandHighlightDecision = {})));\n const buildIfRequired = (container, menuName, menuPrep) => {\n if (menuPrep.type === 'notbuilt') {\n const menu = container.getSystem().build(menuPrep.nbMenu());\n layeredState.setMenuBuilt(menuName, menu);\n return menu;\n } else {\n return menuPrep.menu;\n }\n };\n const expandRight = (container, item, decision = ExpandHighlightDecision.HighlightSubmenu) => {\n if (item.hasConfigured(Disabling) && Disabling.isDisabled(item)) {\n return Optional.some(item);\n } else {\n const value = getItemValue(item);\n return layeredState.expand(value).bind(path => {\n updateAriaExpansions(container, path);\n return Optional.from(path[0]).bind(menuName => layeredState.lookupMenu(menuName).bind(activeMenuPrep => {\n const activeMenu = buildIfRequired(container, menuName, activeMenuPrep);\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Optional.some(item);\n }\n }));\n });\n }\n };\n const collapseLeft = (container, item) => {\n const value = getItemValue(item);\n return layeredState.collapse(value).bind(path => {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path).map(activeMenu => {\n detail.onCollapseMenu(container, item, activeMenu);\n return activeMenu;\n });\n });\n };\n const updateView = (container, item) => {\n const value = getItemValue(item);\n return layeredState.refresh(value).bind(path => {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path);\n });\n };\n const onRight = (container, item) => inside(item.element) ? Optional.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n const onLeft = (container, item) => inside(item.element) ? Optional.none() : collapseLeft(container, item);\n const onEscape = (container, item) => collapseLeft(container, item).orThunk(() => detail.onEscape(container, item).map(() => container));\n const keyOnItem = f => (container, simulatedEvent) => {\n return closest$1(simulatedEvent.getSource(), `.${ detail.markers.item }`).bind(target => container.getSystem().getByDom(target).toOptional().bind(item => f(container, item).map(always)));\n };\n const events = derive$2([\n run$1(focus(), (tmenu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n layeredState.lookupItem(getItemValue(item)).each(() => {\n const menu = simulatedEvent.event.menu;\n Highlighting.highlight(tmenu, menu);\n const value = getItemValue(simulatedEvent.event.item);\n layeredState.refresh(value).each(path => closeOthers(tmenu, layeredState, path));\n });\n }),\n runOnExecute$1((component, simulatedEvent) => {\n const target = simulatedEvent.event.target;\n component.getSystem().getByDom(target).each(item => {\n const itemValue = getItemValue(item);\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(() => {\n detail.onExecute(component, item);\n }, noop);\n });\n }),\n runOnAttached((container, _simulatedEvent) => {\n setup(container).each(primary => {\n Replacing.append(container, premade(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightOnOpen === HighlightOnOpen.HighlightMenuAndItem) {\n setActiveMenuAndItem(container, primary);\n } else if (detail.highlightOnOpen === HighlightOnOpen.HighlightJustMenu) {\n setActiveMenu(container, primary);\n }\n });\n }),\n run$1(onMenuItemHighlightedEvent, (tmenuComp, se) => {\n detail.onHighlightItem(tmenuComp, se.event.menuComp, se.event.itemComp);\n }),\n run$1(onMenuItemDehighlightedEvent, (tmenuComp, se) => {\n detail.onDehighlightItem(tmenuComp, se.event.menuComp, se.event.itemComp);\n }),\n ...detail.navigateOnHover ? [run$1(hover(), (tmenu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n updateView(tmenu, item);\n expandRight(tmenu, item, ExpandHighlightDecision.HighlightParent);\n detail.onHover(tmenu, item);\n })] : []\n ]);\n const getActiveItem = container => Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n const collapseMenuApi = container => {\n getActiveItem(container).each(currentItem => {\n collapseLeft(container, currentItem);\n });\n };\n const highlightPrimary = container => {\n layeredState.getPrimary().each(primary => {\n setActiveMenuAndItem(container, primary);\n });\n };\n const extractMenuFromContainer = container => Optional.from(container.components()[0]).filter(comp => get$g(comp.element, 'role') === 'menu');\n const repositionMenus = container => {\n const maybeActivePrimary = layeredState.getPrimary().bind(primary => getActiveItem(container).bind(currentItem => {\n const itemValue = getItemValue(currentItem);\n const allMenus = values(layeredState.getMenus());\n const preparedMenus = cat(map$2(allMenus, LayeredState.extractPreparedMenu));\n return layeredState.getTriggeringPath(itemValue, v => getItemByValue(container, preparedMenus, v));\n }).map(triggeringPath => ({\n primary,\n triggeringPath\n })));\n maybeActivePrimary.fold(() => {\n extractMenuFromContainer(container).each(primaryMenu => {\n detail.onRepositionMenu(container, primaryMenu, []);\n });\n }, ({primary, triggeringPath}) => {\n detail.onRepositionMenu(container, primary, triggeringPath);\n });\n };\n const apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary,\n repositionMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.tmenuBehaviours, [\n Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: (container, _keyInfo) => {\n layeredState.getPrimary().each(primary => {\n dispatch(container, primary.element, focusItem());\n });\n }\n }),\n Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }),\n Composing.config({\n find: container => {\n return Highlighting.getHighlighted(container);\n }\n }),\n Replacing.config({})\n ]),\n eventOrder: detail.eventOrder,\n apis,\n events\n };\n };\n const collapseItem$1 = constant$1('collapse-item');\n\n const tieredData = (primary, menus, expansions) => ({\n primary,\n menus,\n expansions\n });\n const singleData = (name, menu) => ({\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n });\n const collapseItem = text => ({\n value: generate$6(collapseItem$1()),\n meta: { text }\n });\n const tieredMenu = single({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onHandler('onRepositionMenu'),\n onHandler('onCollapseMenu'),\n defaulted('highlightOnOpen', HighlightOnOpen.HighlightMenuAndItem),\n requiredObjOf('data', [\n required$1('primary'),\n required$1('menus'),\n required$1('expansions')\n ]),\n defaulted('fakeFocus', false),\n onHandler('onHighlightItem'),\n onHandler('onDehighlightItem'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n required$1('dom'),\n defaulted('navigateOnHover', true),\n defaulted('stayInDom', false),\n field('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted('eventOrder', {})\n ],\n apis: {\n collapseMenu: (apis, tmenu) => {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: (apis, tmenu) => {\n apis.highlightPrimary(tmenu);\n },\n repositionMenus: (apis, tmenu) => {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$6,\n extraApis: {\n tieredData,\n singleData,\n collapseItem\n }\n });\n\n const makeMenu = (detail, menuSandbox, placementSpec, menuSpec, getBounds) => {\n const lazySink = () => detail.lazySink(menuSandbox);\n const layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: () => belowOrAbove(),\n onRtl: () => belowOrAboveRtl()\n }\n } : {};\n const isFirstTierSubmenu = triggeringPaths => triggeringPaths.length === 2;\n const getSubmenuLayouts = triggeringPaths => isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n highlightOnOpen: menuSpec.menu.highlightOnOpen,\n fakeFocus: menuSpec.menu.fakeFocus,\n onEscape: () => {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(handler => handler(menuSandbox));\n return Optional.some(true);\n },\n onExecute: () => {\n return Optional.some(true);\n },\n onOpenMenu: (tmenu, menu) => {\n Positioning.positionWithinBounds(lazySink().getOrDie(), menu, placementSpec, getBounds());\n },\n onOpenSubmenu: (tmenu, item, submenu, triggeringPaths) => {\n const sink = lazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item,\n ...getSubmenuLayouts(triggeringPaths)\n }\n });\n },\n onRepositionMenu: (tmenu, primaryMenu, submenuTriggers) => {\n const sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, primaryMenu, placementSpec, getBounds());\n each$1(submenuTriggers, st => {\n const submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem,\n ...submenuLayouts\n }\n });\n });\n }\n });\n };\n const factory$o = (detail, spec) => {\n const isPartOfRelated = (sandbox, queryElem) => {\n const related = detail.getRelated(sandbox);\n return related.exists(rel => isPartOf$1(rel, queryElem));\n };\n const setContent = (sandbox, thing) => {\n Sandboxing.setContent(sandbox, thing);\n };\n const showAt = (sandbox, thing, placementSpec) => {\n const getBounds = Optional.none;\n showWithinBounds(sandbox, thing, placementSpec, getBounds);\n };\n const showWithinBounds = (sandbox, thing, placementSpec, getBounds) => {\n const sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, () => Positioning.positionWithinBounds(sink, sandbox, placementSpec, getBounds()));\n Representing.setValue(sandbox, Optional.some({\n mode: 'position',\n config: placementSpec,\n getBounds\n }));\n };\n const showMenuAt = (sandbox, placementSpec, menuSpec) => {\n showMenuWithinBounds(sandbox, placementSpec, menuSpec, Optional.none);\n };\n const showMenuWithinBounds = (sandbox, placementSpec, menuSpec, getBounds) => {\n const menu = makeMenu(detail, sandbox, placementSpec, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Optional.some({\n mode: 'menu',\n menu\n }));\n };\n const hide = sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.setValue(sandbox, Optional.none());\n Sandboxing.close(sandbox);\n }\n };\n const getContent = sandbox => Sandboxing.getState(sandbox);\n const reposition = sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.getValue(sandbox).each(state => {\n switch (state.mode) {\n case 'menu':\n Sandboxing.getState(sandbox).each(tieredMenu.repositionMenus);\n break;\n case 'position':\n const sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, sandbox, state.config, state.getBounds());\n break;\n }\n });\n }\n };\n const apis = {\n setContent,\n showAt,\n showWithinBounds,\n showMenuAt,\n showMenuWithinBounds,\n hide,\n getContent,\n reposition,\n isOpen: Sandboxing.isOpen\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.inlineBehaviours, [\n Sandboxing.config({\n isPartOf: (sandbox, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: sandbox => {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: sandbox => {\n detail.onShow(sandbox);\n },\n onClose: sandbox => {\n detail.onHide(sandbox);\n }\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: Optional.none()\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({\n isExtraPart: spec.isExtraPart,\n ...detail.fireDismissalEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({})\n }),\n ...receivingChannel({\n ...detail.fireRepositionEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({}),\n doReposition: reposition\n })\n }\n })\n ]),\n eventOrder: detail.eventOrder,\n apis\n };\n };\n const InlineView = single({\n name: 'InlineView',\n configFields: [\n required$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field('inlineBehaviours', [\n Sandboxing,\n Representing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n optionObjOf('fireRepositionEventInstead', [defaulted('event', repositionRequested())]),\n defaulted('getRelated', Optional.none),\n defaulted('isExtraPart', never),\n defaulted('eventOrder', Optional.none)\n ],\n factory: factory$o,\n apis: {\n showAt: (apis, component, anchor, thing) => {\n apis.showAt(component, anchor, thing);\n },\n showWithinBounds: (apis, component, anchor, thing, bounds) => {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: (apis, component, anchor, menuSpec) => {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: (apis, component, anchor, menuSpec, bounds) => {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\n },\n hide: (apis, component) => {\n apis.hide(component);\n },\n isOpen: (apis, component) => apis.isOpen(component),\n getContent: (apis, component) => apis.getContent(component),\n setContent: (apis, component, thing) => {\n apis.setContent(component, thing);\n },\n reposition: (apis, component) => {\n apis.reposition(component);\n }\n }\n });\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var ToolbarMode$1;\n (function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n }(ToolbarMode$1 || (ToolbarMode$1 = {})));\n var ToolbarLocation$1;\n (function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n }(ToolbarLocation$1 || (ToolbarLocation$1 = {})));\n const option$2 = name => editor => editor.options.get(name);\n const wrapOptional = fn => editor => Optional.from(fn(editor));\n const register$f = editor => {\n const isPhone = global$6.deviceType.isPhone();\n const isMobile = global$6.deviceType.isTablet() || isPhone;\n const registerOption = editor.options.register;\n const stringOrFalseProcessor = value => isString(value) || value === false;\n const stringOrNumberProcessor = value => isString(value) || isNumber(value);\n registerOption('skin', {\n processor: value => isString(value) || value === false,\n default: 'oxide'\n });\n registerOption('skin_url', { processor: 'string' });\n registerOption('height', {\n processor: stringOrNumberProcessor,\n default: Math.max(editor.getElement().offsetHeight, 400)\n });\n registerOption('width', {\n processor: stringOrNumberProcessor,\n default: global$8.DOM.getStyle(editor.getElement(), 'width')\n });\n registerOption('min_height', {\n processor: 'number',\n default: 100\n });\n registerOption('min_width', { processor: 'number' });\n registerOption('max_height', { processor: 'number' });\n registerOption('max_width', { processor: 'number' });\n registerOption('style_formats', { processor: 'object[]' });\n registerOption('style_formats_merge', {\n processor: 'boolean',\n default: false\n });\n registerOption('style_formats_autohide', {\n processor: 'boolean',\n default: false\n });\n registerOption('line_height_formats', {\n processor: 'string',\n default: '1 1.1 1.2 1.3 1.4 1.5 2'\n });\n registerOption('font_family_formats', {\n processor: 'string',\n default: 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats'\n });\n registerOption('font_size_formats', {\n processor: 'string',\n default: '8pt 10pt 12pt 14pt 18pt 24pt 36pt'\n });\n registerOption('font_size_input_default_unit', {\n processor: 'string',\n default: 'pt'\n });\n registerOption('block_formats', {\n processor: 'string',\n default: 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre'\n });\n registerOption('content_langs', { processor: 'object[]' });\n registerOption('removed_menuitems', {\n processor: 'string',\n default: ''\n });\n registerOption('menubar', {\n processor: value => isString(value) || isBoolean(value),\n default: !isPhone\n });\n registerOption('menu', {\n processor: 'object',\n default: {}\n });\n registerOption('toolbar', {\n processor: value => {\n if (isBoolean(value) || isString(value) || isArray(value)) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a boolean, string or array.'\n };\n }\n },\n default: true\n });\n range$2(9, num => {\n registerOption('toolbar' + (num + 1), { processor: 'string' });\n });\n registerOption('toolbar_mode', {\n processor: 'string',\n default: isMobile ? 'scrolling' : 'floating'\n });\n registerOption('toolbar_groups', {\n processor: 'object',\n default: {}\n });\n registerOption('toolbar_location', {\n processor: 'string',\n default: ToolbarLocation$1.auto\n });\n registerOption('toolbar_persist', {\n processor: 'boolean',\n default: false\n });\n registerOption('toolbar_sticky', {\n processor: 'boolean',\n default: editor.inline\n });\n registerOption('toolbar_sticky_offset', {\n processor: 'number',\n default: 0\n });\n registerOption('fixed_toolbar_container', {\n processor: 'string',\n default: ''\n });\n registerOption('fixed_toolbar_container_target', { processor: 'object' });\n registerOption('ui_mode', {\n processor: 'string',\n default: 'combined'\n });\n registerOption('file_picker_callback', { processor: 'function' });\n registerOption('file_picker_validator_handler', { processor: 'function' });\n registerOption('file_picker_types', { processor: 'string' });\n registerOption('typeahead_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('anchor_top', {\n processor: stringOrFalseProcessor,\n default: '#top'\n });\n registerOption('anchor_bottom', {\n processor: stringOrFalseProcessor,\n default: '#bottom'\n });\n registerOption('draggable_modal', {\n processor: 'boolean',\n default: false\n });\n registerOption('statusbar', {\n processor: 'boolean',\n default: true\n });\n registerOption('elementpath', {\n processor: 'boolean',\n default: true\n });\n registerOption('branding', {\n processor: 'boolean',\n default: true\n });\n registerOption('promotion', {\n processor: 'boolean',\n default: true\n });\n registerOption('resize', {\n processor: value => value === 'both' || isBoolean(value),\n default: !global$6.deviceType.isTouch()\n });\n registerOption('sidebar_show', { processor: 'string' });\n registerOption('help_accessibility', {\n processor: 'boolean',\n default: editor.hasPlugin('help')\n });\n registerOption('default_font_stack', {\n processor: 'string[]',\n default: []\n });\n };\n const isReadOnly = option$2('readonly');\n const getHeightOption = option$2('height');\n const getWidthOption = option$2('width');\n const getMinWidthOption = wrapOptional(option$2('min_width'));\n const getMinHeightOption = wrapOptional(option$2('min_height'));\n const getMaxWidthOption = wrapOptional(option$2('max_width'));\n const getMaxHeightOption = wrapOptional(option$2('max_height'));\n const getUserStyleFormats = wrapOptional(option$2('style_formats'));\n const shouldMergeStyleFormats = option$2('style_formats_merge');\n const shouldAutoHideStyleFormats = option$2('style_formats_autohide');\n const getContentLanguages = option$2('content_langs');\n const getRemovedMenuItems = option$2('removed_menuitems');\n const getToolbarMode = option$2('toolbar_mode');\n const getToolbarGroups = option$2('toolbar_groups');\n const getToolbarLocation = option$2('toolbar_location');\n const fixedContainerSelector = option$2('fixed_toolbar_container');\n const fixedToolbarContainerTarget = option$2('fixed_toolbar_container_target');\n const isToolbarPersist = option$2('toolbar_persist');\n const getStickyToolbarOffset = option$2('toolbar_sticky_offset');\n const getMenubar = option$2('menubar');\n const getToolbar = option$2('toolbar');\n const getFilePickerCallback = option$2('file_picker_callback');\n const getFilePickerValidatorHandler = option$2('file_picker_validator_handler');\n const getFontSizeInputDefaultUnit = option$2('font_size_input_default_unit');\n const getFilePickerTypes = option$2('file_picker_types');\n const useTypeaheadUrls = option$2('typeahead_urls');\n const getAnchorTop = option$2('anchor_top');\n const getAnchorBottom = option$2('anchor_bottom');\n const isDraggableModal$1 = option$2('draggable_modal');\n const useStatusBar = option$2('statusbar');\n const useElementPath = option$2('elementpath');\n const useBranding = option$2('branding');\n const getResize = option$2('resize');\n const getPasteAsText = option$2('paste_as_text');\n const getSidebarShow = option$2('sidebar_show');\n const promotionEnabled = option$2('promotion');\n const useHelpAccessibility = option$2('help_accessibility');\n const getDefaultFontStack = option$2('default_font_stack');\n const isSkinDisabled = editor => editor.options.get('skin') === false;\n const isMenubarEnabled = editor => editor.options.get('menubar') !== false;\n const getSkinUrl = editor => {\n const skinUrl = editor.options.get('skin_url');\n if (isSkinDisabled(editor)) {\n return skinUrl;\n } else {\n if (skinUrl) {\n return editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n const skin = editor.options.get('skin');\n return global$7.baseURL + '/skins/ui/' + skin;\n }\n }\n };\n const getSkinUrlOption = editor => Optional.from(editor.options.get('skin_url'));\n const getLineHeightFormats = editor => editor.options.get('line_height_formats').split(' ');\n const isToolbarEnabled = editor => {\n const toolbar = getToolbar(editor);\n const isToolbarString = isString(toolbar);\n const isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || toolbar === true);\n };\n const getMultipleToolbarsOption = editor => {\n const toolbars = range$2(9, num => editor.options.get('toolbar' + (num + 1)));\n const toolbarArray = filter$2(toolbars, isString);\n return someIf(toolbarArray.length > 0, toolbarArray);\n };\n const isMultipleToolbars = editor => getMultipleToolbarsOption(editor).fold(() => {\n const toolbar = getToolbar(editor);\n return isArrayOf(toolbar, isString) && toolbar.length > 0;\n }, always);\n const isToolbarLocationBottom = editor => getToolbarLocation(editor) === ToolbarLocation$1.bottom;\n const fixedContainerTarget = editor => {\n var _a;\n if (!editor.inline) {\n return Optional.none();\n }\n const selector = (_a = fixedContainerSelector(editor)) !== null && _a !== void 0 ? _a : '';\n if (selector.length > 0) {\n return descendant(body(), selector);\n }\n const element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n const useFixedContainer = editor => editor.inline && fixedContainerTarget(editor).isSome();\n const getUiContainer = editor => {\n const fixedContainer = fixedContainerTarget(editor);\n return fixedContainer.getOrThunk(() => getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement()))));\n };\n const isDistractionFree = editor => editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n const isStickyToolbar = editor => {\n const isStickyToolbar = editor.options.get('toolbar_sticky');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n const isSplitUiMode = editor => !useFixedContainer(editor) && editor.options.get('ui_mode') === 'split';\n const getMenus = editor => {\n const menu = editor.options.get('menu');\n return map$1(menu, menu => ({\n ...menu,\n items: menu.items\n }));\n };\n\n var Options = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get ToolbarMode () { return ToolbarMode$1; },\n get ToolbarLocation () { return ToolbarLocation$1; },\n register: register$f,\n getSkinUrl: getSkinUrl,\n getSkinUrlOption: getSkinUrlOption,\n isReadOnly: isReadOnly,\n isSkinDisabled: isSkinDisabled,\n getHeightOption: getHeightOption,\n getWidthOption: getWidthOption,\n getMinWidthOption: getMinWidthOption,\n getMinHeightOption: getMinHeightOption,\n getMaxWidthOption: getMaxWidthOption,\n getMaxHeightOption: getMaxHeightOption,\n getUserStyleFormats: getUserStyleFormats,\n shouldMergeStyleFormats: shouldMergeStyleFormats,\n shouldAutoHideStyleFormats: shouldAutoHideStyleFormats,\n getLineHeightFormats: getLineHeightFormats,\n getContentLanguages: getContentLanguages,\n getRemovedMenuItems: getRemovedMenuItems,\n isMenubarEnabled: isMenubarEnabled,\n isMultipleToolbars: isMultipleToolbars,\n isToolbarEnabled: isToolbarEnabled,\n isToolbarPersist: isToolbarPersist,\n getMultipleToolbarsOption: getMultipleToolbarsOption,\n getUiContainer: getUiContainer,\n useFixedContainer: useFixedContainer,\n isSplitUiMode: isSplitUiMode,\n getToolbarMode: getToolbarMode,\n isDraggableModal: isDraggableModal$1,\n isDistractionFree: isDistractionFree,\n isStickyToolbar: isStickyToolbar,\n getStickyToolbarOffset: getStickyToolbarOffset,\n getToolbarLocation: getToolbarLocation,\n isToolbarLocationBottom: isToolbarLocationBottom,\n getToolbarGroups: getToolbarGroups,\n getMenus: getMenus,\n getMenubar: getMenubar,\n getToolbar: getToolbar,\n getFilePickerCallback: getFilePickerCallback,\n getFilePickerTypes: getFilePickerTypes,\n useTypeaheadUrls: useTypeaheadUrls,\n getAnchorTop: getAnchorTop,\n getAnchorBottom: getAnchorBottom,\n getFilePickerValidatorHandler: getFilePickerValidatorHandler,\n getFontSizeInputDefaultUnit: getFontSizeInputDefaultUnit,\n useStatusBar: useStatusBar,\n useElementPath: useElementPath,\n promotionEnabled: promotionEnabled,\n useBranding: useBranding,\n getResize: getResize,\n getPasteAsText: getPasteAsText,\n getSidebarShow: getSidebarShow,\n useHelpAccessibility: useHelpAccessibility,\n getDefaultFontStack: getDefaultFontStack\n });\n\n const nonScrollingOverflows = [\n 'visible',\n 'hidden',\n 'clip'\n ];\n const isScrollingOverflowValue = value => trim$1(value).length > 0 && !contains$2(nonScrollingOverflows, value);\n const isScroller = elem => {\n if (isHTMLElement(elem)) {\n const overflowX = get$f(elem, 'overflow-x');\n const overflowY = get$f(elem, 'overflow-y');\n return isScrollingOverflowValue(overflowX) || isScrollingOverflowValue(overflowY);\n } else {\n return false;\n }\n };\n const isFullscreen = editor => editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();\n const detect = (editor, popupSinkElem) => {\n const ancestorsScrollers = ancestors(popupSinkElem, isScroller);\n const scrollers = ancestorsScrollers.length === 0 ? getShadowRoot(popupSinkElem).map(getShadowHost).map(x => ancestors(x, isScroller)).getOr([]) : ancestorsScrollers;\n return head(scrollers).map(element => ({\n element,\n others: scrollers.slice(1),\n isFullscreen: () => isFullscreen(editor)\n }));\n };\n const detectWhenSplitUiMode = (editor, popupSinkElem) => isSplitUiMode(editor) ? detect(editor, popupSinkElem) : Optional.none();\n const getBoundsFrom = sc => {\n const scrollableBoxes = [\n ...map$2(sc.others, box$1),\n win()\n ];\n return sc.isFullscreen() ? win() : constrainByMany(box$1(sc.element), scrollableBoxes);\n };\n\n const factory$n = detail => {\n const events = events$9(detail.action);\n const tag = detail.dom.tag;\n const lookupAttr = attr => get$h(detail.dom, 'attributes').bind(attrs => get$h(attrs, attr));\n const getModAttributes = () => {\n if (tag === 'button') {\n const type = lookupAttr('type').getOr('button');\n const roleAttrs = lookupAttr('role').map(role => ({ role })).getOr({});\n return {\n type,\n ...roleAttrs\n };\n } else {\n const role = detail.role.getOr(lookupAttr('role').getOr('button'));\n return { role };\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events,\n behaviours: SketchBehaviours.augment(detail.buttonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })\n ]),\n domModification: { attributes: getModAttributes() },\n eventOrder: detail.eventOrder\n };\n };\n const Button = single({\n name: 'Button',\n factory: factory$n,\n configFields: [\n defaulted('uid', undefined),\n required$1('dom'),\n defaulted('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option$3('action'),\n option$3('role'),\n defaulted('eventOrder', {})\n ]\n });\n\n const getAttrs = elem => {\n const attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];\n return foldl(attributes, (b, attr) => {\n if (attr.name === 'class') {\n return b;\n } else {\n return {\n ...b,\n [attr.name]: attr.value\n };\n }\n }, {});\n };\n const getClasses = elem => Array.prototype.slice.call(elem.dom.classList, 0);\n const fromHtml = html => {\n const elem = SugarElement.fromHtml(html);\n const children$1 = children(elem);\n const attrs = getAttrs(elem);\n const classes = getClasses(elem);\n const contents = children$1.length === 0 ? {} : { innerHtml: get$8(elem) };\n return {\n tag: name$3(elem),\n classes,\n attributes: attrs,\n ...contents\n };\n };\n\n const record = spec => {\n const uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('memento');\n const get = anyInSystem => anyInSystem.getSystem().getByUid(uid).getOrDie();\n const getOpt = anyInSystem => anyInSystem.getSystem().getByUid(uid).toOptional();\n const asSpec = () => ({\n ...spec,\n uid\n });\n return {\n get,\n getOpt,\n asSpec\n };\n };\n\n const exhibit$2 = (base, tabConfig) => nu$8({\n attributes: wrapAll([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$2\n });\n\n var TabstopSchema = [defaulted('tabAttr', 'data-alloy-tabstop')];\n\n const Tabstopping = create$4({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n const ExclusivityChannel = generate$6('tooltip.exclusive');\n const ShowTooltipEvent = generate$6('tooltip.show');\n const HideTooltipEvent = generate$6('tooltip.hide');\n const ImmediateHideTooltipEvent = generate$6('tooltip.immediateHide');\n const ImmediateShowTooltipEvent = generate$6('tooltip.immediateShow');\n\n const hideAllExclusive = (component, _tConfig, _tState) => {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n const setComponents = (_component, _tConfig, tState, specs) => {\n tState.getTooltip().each(tooltip => {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n const isEnabled = (_component, _tConfig, tState) => tState.isEnabled();\n const setEnabled = (_component, _tConfig, tState, enabled) => tState.setEnabled(enabled);\n const immediateOpenClose = (component, _tConfig, _tState, open) => emit(component, open ? ImmediateShowTooltipEvent : ImmediateHideTooltipEvent);\n\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideAllExclusive: hideAllExclusive,\n immediateOpenClose: immediateOpenClose,\n isEnabled: isEnabled,\n setComponents: setComponents,\n setEnabled: setEnabled\n });\n\n const events$8 = (tooltipConfig, state) => {\n const hide = comp => {\n state.getTooltip().each(p => {\n if (p.getSystem().isConnected()) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n }\n });\n state.clearTimer();\n };\n const show = comp => {\n if (!state.isShowing() && state.isEnabled()) {\n hideAllExclusive(comp);\n const sink = tooltipConfig.lazySink(comp).getOrDie();\n const popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive$2(tooltipConfig.mode === 'normal' ? [\n run$1(mouseover(), _ => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), _ => {\n emit(comp, HideTooltipEvent);\n })\n ] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, popup, { anchor: tooltipConfig.anchor(comp) });\n }\n };\n const reposition = comp => {\n state.getTooltip().each(tooltip => {\n const sink = tooltipConfig.lazySink(comp).getOrDie();\n Positioning.position(sink, tooltip, { anchor: tooltipConfig.anchor(comp) });\n });\n };\n const getEvents = () => {\n switch (tooltipConfig.mode) {\n case 'normal':\n return [\n run$1(focusin(), comp => {\n emit(comp, ImmediateShowTooltipEvent);\n }),\n run$1(postBlur(), comp => {\n emit(comp, ImmediateHideTooltipEvent);\n }),\n run$1(mouseover(), comp => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), comp => {\n emit(comp, HideTooltipEvent);\n })\n ];\n case 'follow-highlight':\n return [\n run$1(highlight$1(), (comp, _se) => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(dehighlight$1(), comp => {\n emit(comp, HideTooltipEvent);\n })\n ];\n case 'children-normal':\n return [\n run$1(focusin(), (comp, se) => {\n search(comp.element).each(_ => {\n if (is(se.event.target, '[data-mce-tooltip]')) {\n state.getTooltip().fold(() => {\n emit(comp, ImmediateShowTooltipEvent);\n }, tooltip => {\n if (state.isShowing()) {\n tooltipConfig.onShow(comp, tooltip);\n reposition(comp);\n }\n });\n }\n });\n }),\n run$1(postBlur(), comp => {\n search(comp.element).fold(() => {\n emit(comp, ImmediateHideTooltipEvent);\n }, noop);\n }),\n run$1(mouseover(), comp => {\n descendant(comp.element, '[data-mce-tooltip]:hover').each(_ => {\n state.getTooltip().fold(() => {\n emit(comp, ShowTooltipEvent);\n }, tooltip => {\n if (state.isShowing()) {\n tooltipConfig.onShow(comp, tooltip);\n reposition(comp);\n }\n });\n });\n }),\n run$1(mouseout(), comp => {\n descendant(comp.element, '[data-mce-tooltip]:hover').fold(() => {\n emit(comp, HideTooltipEvent);\n }, noop);\n })\n ];\n default:\n return [\n run$1(focusin(), (comp, se) => {\n search(comp.element).each(_ => {\n if (is(se.event.target, '[data-mce-tooltip]')) {\n state.getTooltip().fold(() => {\n emit(comp, ImmediateShowTooltipEvent);\n }, tooltip => {\n if (state.isShowing()) {\n tooltipConfig.onShow(comp, tooltip);\n reposition(comp);\n }\n });\n }\n });\n }),\n run$1(postBlur(), comp => {\n search(comp.element).fold(() => {\n emit(comp, ImmediateHideTooltipEvent);\n }, noop);\n })\n ];\n }\n };\n return derive$2(flatten([\n [\n runOnInit(component => {\n tooltipConfig.onSetup(component);\n }),\n run$1(ShowTooltipEvent, comp => {\n state.resetTimer(() => {\n show(comp);\n }, tooltipConfig.delayForShow());\n }),\n run$1(HideTooltipEvent, comp => {\n state.resetTimer(() => {\n hide(comp);\n }, tooltipConfig.delayForHide());\n }),\n run$1(ImmediateShowTooltipEvent, comp => {\n state.resetTimer(() => {\n show(comp);\n }, 0);\n }),\n run$1(ImmediateHideTooltipEvent, comp => {\n state.resetTimer(() => {\n hide(comp);\n }, 0);\n }),\n run$1(receive(), (comp, message) => {\n const receivingData = message;\n if (!receivingData.universal) {\n if (contains$2(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }),\n runOnDetached(comp => {\n hide(comp);\n })\n ],\n getEvents()\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n\n var TooltippingSchema = [\n required$1('lazySink'),\n required$1('tooltipDom'),\n defaulted('exclusive', true),\n defaulted('tooltipComponents', []),\n defaultedFunction('delayForShow', constant$1(300)),\n defaultedFunction('delayForHide', constant$1(300)),\n defaultedFunction('onSetup', noop),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight',\n 'children-keyboard-focus',\n 'children-normal'\n ]),\n defaulted('anchor', comp => ({\n type: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n },\n bubble: nu$5(0, -2, {})\n })),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n const init$a = () => {\n const enabled = Cell(true);\n const timer = value$4();\n const popup = value$4();\n const clearTimer = () => {\n timer.on(clearTimeout);\n };\n const resetTimer = (f, delay) => {\n clearTimer();\n timer.set(setTimeout(f, delay));\n };\n const readState = constant$1('not-implemented');\n return nu$7({\n getTooltip: popup.get,\n isShowing: popup.isSet,\n setTooltip: popup.set,\n clearTooltip: popup.clear,\n clearTimer,\n resetTimer,\n readState,\n isEnabled: () => enabled.get(),\n setEnabled: setToEnabled => enabled.set(setToEnabled)\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n\n const Tooltipping = create$4({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n /*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create: create$1\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n\n /**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\n function clone(object) {\n const newObject = create$1(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text$1 = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT\n });\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '3.1.7';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text$1]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create$1(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text$1);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function _isNode(object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n const {\n attributes\n } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n const initValue = value;\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n const sanitizeHtmlString = html => purify().sanitize(html);\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n const rtlTransform = {\n 'indent': true,\n 'outdent': true,\n 'table-insert-column-after': true,\n 'table-insert-column-before': true,\n 'paste-column-after': true,\n 'paste-column-before': true,\n 'unordered-list': true,\n 'list-bull-circle': true,\n 'list-bull-default': true,\n 'list-bull-square': true\n };\n const defaultIconName = 'temporary-placeholder';\n const defaultIcon = icons => () => get$h(icons, defaultIconName).getOr('!not found!');\n const getIconName = (name, icons) => {\n const lcName = name.toLowerCase();\n if (global$5.isRtl()) {\n const rtlName = ensureTrailing(lcName, '-rtl');\n return has$2(icons, rtlName) ? rtlName : lcName;\n } else {\n return lcName;\n }\n };\n const lookupIcon = (name, icons) => get$h(icons, getIconName(name, icons));\n const get$3 = (name, iconProvider) => {\n const icons = iconProvider();\n return lookupIcon(name, icons).getOrThunk(defaultIcon(icons));\n };\n const getOr = (name, iconProvider, fallbackIcon) => {\n const icons = iconProvider();\n return lookupIcon(name, icons).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n };\n const needsRtlTransform = iconName => global$5.isRtl() ? has$2(rtlTransform, iconName) : false;\n const addFocusableBehaviour = () => config('add-focusable', [runOnAttached(comp => {\n child(comp.element, 'svg').each(svg => set$9(svg, 'focusable', 'false'));\n })]);\n const renderIcon$3 = (spec, iconName, icons, fallbackIcon) => {\n var _a, _b;\n const rtlIconClasses = needsRtlTransform(iconName) ? ['tox-icon--flip'] : [];\n const iconHtml = get$h(icons, getIconName(iconName, icons)).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n return {\n dom: {\n tag: spec.tag,\n attributes: (_a = spec.attributes) !== null && _a !== void 0 ? _a : {},\n classes: spec.classes.concat(rtlIconClasses),\n innerHtml: iconHtml\n },\n behaviours: derive$1([\n ...(_b = spec.behaviours) !== null && _b !== void 0 ? _b : [],\n addFocusableBehaviour()\n ])\n };\n };\n const render$3 = (iconName, spec, iconProvider, fallbackIcon = Optional.none()) => renderIcon$3(spec, iconName, iconProvider(), fallbackIcon);\n const renderFirst = (iconNames, spec, iconProvider) => {\n const icons = iconProvider();\n const iconName = find$5(iconNames, name => has$2(icons, getIconName(name, icons)));\n return renderIcon$3(spec, iconName.getOr(defaultIconName), icons, Optional.none());\n };\n\n const notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n const factory$m = detail => {\n const notificationTextId = generate$6('notification-text');\n const memBannerText = record({\n dom: fromHtml(`

${ sanitizeHtmlString(detail.backstageProvider.translate(detail.text)) }

`),\n behaviours: derive$1([Replacing.config({})])\n });\n const renderPercentBar = percent => ({\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n styles: { width: `${ percent }%` }\n }\n });\n const renderPercentText = percent => ({\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: `${ percent }%`\n }\n });\n const memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? [\n 'tox-progress-bar',\n 'tox-progress-indicator'\n ] : ['tox-progress-bar']\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n },\n renderPercentText(0)\n ],\n behaviours: derive$1([Replacing.config({})])\n });\n const updateProgress = (comp, percent) => {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(progress => {\n Replacing.set(progress, [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n },\n renderPercentText(percent)\n ]);\n });\n }\n };\n const updateText = (comp, text) => {\n if (comp.getSystem().isConnected()) {\n const banner = memBannerText.get(comp);\n Replacing.set(banner, [text$2(text)]);\n }\n };\n const apis = {\n updateProgress,\n updateText\n };\n const iconChoices = flatten([\n detail.icon.toArray(),\n detail.level.toArray(),\n detail.level.bind(level => Optional.from(notificationIconMap[level])).toArray()\n ]);\n const memButton = record(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-notification__dismiss',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: { 'aria-label': detail.backstageProvider.translate('Close') }\n },\n components: [render$3('close', {\n tag: 'span',\n classes: ['tox-icon']\n }, detail.iconProvider)],\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n Tooltipping.config({ ...detail.backstageProvider.tooltips.getConfig({ tooltipText: detail.backstageProvider.translate('Close') }) })\n ]),\n action: comp => {\n detail.onAction(comp);\n }\n }));\n const notificationIconSpec = renderFirst(iconChoices, {\n tag: 'div',\n classes: ['tox-notification__icon']\n }, detail.iconProvider);\n const notificationBodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n };\n const components = [\n notificationIconSpec,\n notificationBodySpec\n ];\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n 'role': 'alert',\n 'aria-labelledby': notificationTextId\n },\n classes: detail.level.map(level => [\n 'tox-notification',\n 'tox-notification--in',\n `tox-notification--${ level }`\n ]).getOr([\n 'tox-notification',\n 'tox-notification--in'\n ])\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Keying.config({\n mode: 'special',\n onEscape: comp => {\n detail.onAction(comp);\n return Optional.some(true);\n }\n })\n ]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat([memButton.asSpec()]),\n apis\n };\n };\n const Notification = single({\n name: 'Notification',\n factory: factory$m,\n configFields: [\n option$3('level'),\n required$1('progress'),\n option$3('icon'),\n required$1('onAction'),\n required$1('text'),\n required$1('iconProvider'),\n required$1('backstageProvider')\n ],\n apis: {\n updateProgress: (apis, comp, percent) => {\n apis.updateProgress(comp, percent);\n },\n updateText: (apis, comp, text) => {\n apis.updateText(comp, text);\n }\n }\n });\n\n var NotificationManagerImpl = (editor, extras, uiMothership, notificationRegion) => {\n const sharedBackstage = extras.backstage.shared;\n const getBoundsContainer = () => SugarElement.fromDom(editor.queryCommandValue('ToggleView') === '' ? editor.getContentAreaContainer() : editor.getContainer());\n const getBounds = () => {\n const contentArea = box$1(getBoundsContainer());\n return Optional.some(contentArea);\n };\n const clampComponentsToBounds = components => {\n getBounds().each(bounds => {\n each$1(components, comp => {\n remove$7(comp.element, 'width');\n if (get$d(comp.element) > bounds.width) {\n set$8(comp.element, 'width', bounds.width + 'px');\n }\n });\n });\n };\n const open = (settings, closeCallback, isEditorOrUIFocused) => {\n const close = () => {\n const removeNotificationAndReposition = region => {\n Replacing.remove(region, notification);\n reposition();\n };\n const manageRegionVisibility = (region, editorOrUiFocused) => {\n if (children(region.element).length === 0) {\n handleEmptyRegion(region, editorOrUiFocused);\n } else {\n handleRegionWithChildren(region, editorOrUiFocused);\n }\n };\n const handleEmptyRegion = (region, editorOrUIFocused) => {\n InlineView.hide(region);\n notificationRegion.clear();\n if (editorOrUIFocused) {\n editor.focus();\n }\n };\n const handleRegionWithChildren = (region, editorOrUIFocused) => {\n if (editorOrUIFocused) {\n Keying.focusIn(region);\n }\n };\n notificationRegion.on(region => {\n closeCallback();\n const editorOrUIFocused = isEditorOrUIFocused();\n removeNotificationAndReposition(region);\n manageRegionVisibility(region, editorOrUIFocused);\n });\n };\n const notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains$2([\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: settings.icon,\n onAction: close,\n iconProvider: sharedBackstage.providers.icons,\n backstageProvider: sharedBackstage.providers\n }));\n if (!notificationRegion.isSet()) {\n const notificationWrapper = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container'],\n attributes: {\n 'aria-label': 'Notifications',\n 'role': 'region'\n }\n },\n lazySink: sharedBackstage.getSink,\n fireDismissalEventInstead: {},\n ...sharedBackstage.header.isPositionedAtTop() ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n selector: '.tox-notification, .tox-notification a, .tox-notification button'\n }),\n Replacing.config({}),\n ...isStickyToolbar(editor) && !sharedBackstage.header.isPositionedAtTop() ? [] : [Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(getBoundsContainer())),\n fadeInClass: 'tox-notification-container-dock-fadein',\n fadeOutClass: 'tox-notification-container-dock-fadeout',\n transitionClass: 'tox-notification-container-dock-transition'\n },\n modes: ['top'],\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.map(sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n }).getOrThunk(() => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n }));\n }\n })]\n ])\n }));\n const notificationSpec = premade(notification);\n const anchorOverrides = { maxHeightFunction: expandable$1() };\n const anchor = {\n ...sharedBackstage.anchors.banner(),\n overrides: anchorOverrides\n };\n notificationRegion.set(notificationWrapper);\n uiMothership.add(notificationWrapper);\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, { anchor }, getBounds);\n } else {\n const notificationSpec = premade(notification);\n notificationRegion.on(notificationWrapper => {\n Replacing.append(notificationWrapper, notificationSpec);\n InlineView.reposition(notificationWrapper);\n Docking.refresh(notificationWrapper);\n clampComponentsToBounds(notificationWrapper.components());\n });\n }\n if (isNumber(settings.timeout) && settings.timeout > 0) {\n global$9.setEditorTimeout(editor, () => {\n close();\n }, settings.timeout);\n }\n const reposition = () => {\n notificationRegion.on(region => {\n InlineView.reposition(region);\n Docking.refresh(region);\n clampComponentsToBounds(region.components());\n });\n };\n const thisNotification = {\n close,\n reposition,\n text: nuText => {\n Notification.updateText(notification, nuText);\n },\n settings,\n getEl: () => notification.element.dom,\n progressBar: {\n value: percent => {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n return thisNotification;\n };\n const close = notification => {\n notification.close();\n };\n const getArgs = notification => {\n return notification.settings;\n };\n return {\n open,\n close,\n getArgs\n };\n };\n\n const setup$e = (api, editor) => {\n const redirectKeyToItem = (item, e) => {\n emitWith(item, keydown(), { raw: e });\n };\n const getItem = () => api.getMenu().bind(Highlighting.getHighlighted);\n editor.on('keydown', e => {\n const keyCode = e.which;\n if (!api.isActive()) {\n return;\n }\n if (api.isMenuOpen()) {\n if (keyCode === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (keyCode === 40) {\n getItem().fold(() => {\n api.getMenu().each(Highlighting.highlightFirst);\n }, item => {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n } else if (keyCode === 37 || keyCode === 38 || keyCode === 39) {\n getItem().each(item => {\n redirectKeyToItem(item, e);\n e.preventDefault();\n e.stopImmediatePropagation();\n });\n }\n } else {\n if (keyCode === 13 || keyCode === 38 || keyCode === 40) {\n api.cancelIfNecessary();\n }\n }\n });\n editor.on('NodeChange', () => {\n if (api.isActive() && !api.isProcessingAction() && !editor.queryCommandState('mceAutoCompleterInRange')) {\n api.cancelIfNecessary();\n }\n });\n };\n const AutocompleterEditorEvents = { setup: setup$e };\n\n var ItemResponse;\n (function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n }(ItemResponse || (ItemResponse = {})));\n var ItemResponse$1 = ItemResponse;\n\n const navClass = 'tox-menu-nav__js';\n const selectableClass = 'tox-collection__item';\n const colorClass = 'tox-swatch';\n const presetClasses = {\n normal: navClass,\n color: colorClass\n };\n const tickedClass = 'tox-collection__item--enabled';\n const groupHeadingClass = 'tox-collection__group-heading';\n const iconClass = 'tox-collection__item-icon';\n const textClass = 'tox-collection__item-label';\n const accessoryClass = 'tox-collection__item-accessory';\n const caretClass = 'tox-collection__item-caret';\n const checkmarkClass = 'tox-collection__item-checkmark';\n const activeClass = 'tox-collection__item--active';\n const containerClass = 'tox-collection__item-container';\n const containerColumnClass = 'tox-collection__item-container--column';\n const containerRowClass = 'tox-collection__item-container--row';\n const containerAlignRightClass = 'tox-collection__item-container--align-right';\n const containerAlignLeftClass = 'tox-collection__item-container--align-left';\n const containerValignTopClass = 'tox-collection__item-container--valign-top';\n const containerValignMiddleClass = 'tox-collection__item-container--valign-middle';\n const containerValignBottomClass = 'tox-collection__item-container--valign-bottom';\n const classForPreset = presets => get$h(presetClasses, presets).getOr(navClass);\n\n const forMenu = presets => {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n const classes = presets => ({\n backgroundMenu: 'tox-background-menu',\n selectedMenu: 'tox-selected-menu',\n selectedItem: 'tox-collection__item--active',\n hasIcons: 'tox-menu--has-icons',\n menu: forMenu(presets),\n tieredMenu: 'tox-tiered-menu'\n });\n\n const markers = presets => {\n const menuClasses = classes(presets);\n return {\n backgroundMenu: menuClasses.backgroundMenu,\n selectedMenu: menuClasses.selectedMenu,\n menu: menuClasses.menu,\n selectedItem: menuClasses.selectedItem,\n item: classForPreset(presets)\n };\n };\n const dom$1 = (hasIcons, columns, presets) => {\n const menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([\n [\n menuClasses.menu,\n `tox-menu-${ columns }-column`\n ],\n hasIcons ? [menuClasses.hasIcons] : []\n ])\n };\n };\n const components = [Menu.parts.items({})];\n const part = (hasIcons, columns, presets) => {\n const menuClasses = classes(presets);\n const d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers(presets)\n };\n };\n\n const schema$l = constant$1([\n option$3('data'),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('tag', 'input'),\n defaulted('inputClasses', []),\n onHandler('onSetValue'),\n defaulted('styles', {}),\n defaulted('eventOrder', {}),\n field('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted('selectOnFocus', true)\n ]);\n const focusBehaviours = detail => derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? noop : component => {\n const input = component.element;\n const value = get$7(input);\n input.dom.setSelectionRange(0, value.length);\n }\n })]);\n const behaviours = detail => ({\n ...focusBehaviours(detail),\n ...augment(detail.inputBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n ...detail.data.map(data => ({ initialValue: data })).getOr({}),\n getValue: input => {\n return get$7(input.element);\n },\n setValue: (input, data) => {\n const current = get$7(input.element);\n if (current !== data) {\n set$5(input.element, data);\n }\n }\n },\n onSetValue: detail.onSetValue\n })])\n });\n const dom = detail => ({\n tag: detail.tag,\n attributes: {\n type: 'text',\n ...detail.inputAttributes\n },\n styles: detail.inputStyles,\n classes: detail.inputClasses\n });\n\n const factory$l = (detail, _spec) => ({\n uid: detail.uid,\n dom: dom(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n });\n const Input = single({\n name: 'Input',\n configFields: schema$l(),\n factory: factory$l\n });\n\n const refetchTriggerEvent = generate$6('refetch-trigger-event');\n const redirectMenuItemInteractionEvent = generate$6('redirect-menu-item-interaction');\n\n const menuSearcherClass = 'tox-menu__searcher';\n const findWithinSandbox = sandboxComp => {\n return descendant(sandboxComp.element, `.${ menuSearcherClass }`).bind(inputElem => sandboxComp.getSystem().getByDom(inputElem).toOptional());\n };\n const findWithinMenu = findWithinSandbox;\n const restoreState = (inputComp, searcherState) => {\n Representing.setValue(inputComp, searcherState.fetchPattern);\n inputComp.element.dom.selectionStart = searcherState.selectionStart;\n inputComp.element.dom.selectionEnd = searcherState.selectionEnd;\n };\n const saveState = inputComp => {\n const fetchPattern = Representing.getValue(inputComp);\n const selectionStart = inputComp.element.dom.selectionStart;\n const selectionEnd = inputComp.element.dom.selectionEnd;\n return {\n fetchPattern,\n selectionStart,\n selectionEnd\n };\n };\n const setActiveDescendant = (inputComp, active) => {\n getOpt(active.element, 'id').each(id => set$9(inputComp.element, 'aria-activedescendant', id));\n };\n const renderMenuSearcher = spec => {\n const handleByBrowser = (comp, se) => {\n se.cut();\n return Optional.none();\n };\n const handleByHighlightedItem = (comp, se) => {\n const eventData = {\n interactionEvent: se.event,\n eventType: se.event.raw.type\n };\n emitWith(comp, redirectMenuItemInteractionEvent, eventData);\n return Optional.some(true);\n };\n const customSearcherEventsName = 'searcher-events';\n return {\n dom: {\n tag: 'div',\n classes: [selectableClass]\n },\n components: [Input.sketch({\n inputClasses: [\n menuSearcherClass,\n 'tox-textfield'\n ],\n inputAttributes: {\n ...spec.placeholder.map(placeholder => ({ placeholder: spec.i18n(placeholder) })).getOr({}),\n 'type': 'search',\n 'aria-autocomplete': 'list'\n },\n inputBehaviours: derive$1([\n config(customSearcherEventsName, [\n run$1(input(), inputComp => {\n emit(inputComp, refetchTriggerEvent);\n }),\n run$1(keydown(), (inputComp, se) => {\n if (se.event.raw.key === 'Escape') {\n se.stop();\n }\n })\n ]),\n Keying.config({\n mode: 'special',\n onLeft: handleByBrowser,\n onRight: handleByBrowser,\n onSpace: handleByBrowser,\n onEnter: handleByHighlightedItem,\n onEscape: handleByHighlightedItem,\n onUp: handleByHighlightedItem,\n onDown: handleByHighlightedItem\n })\n ]),\n eventOrder: {\n keydown: [\n customSearcherEventsName,\n Keying.name()\n ]\n }\n })]\n };\n };\n\n const searchResultsClass = 'tox-collection--results__js';\n const augmentWithAria = item => {\n var _a;\n if (item.dom) {\n return {\n ...item,\n dom: {\n ...item.dom,\n attributes: {\n ...(_a = item.dom.attributes) !== null && _a !== void 0 ? _a : {},\n 'id': generate$6('aria-item-search-result-id'),\n 'aria-selected': 'false'\n }\n }\n };\n } else {\n return item;\n }\n };\n\n const chunk = (rowDom, numColumns) => items => {\n const chunks = chunk$1(items, numColumns);\n return map$2(chunks, c => ({\n dom: rowDom,\n components: c\n }));\n };\n const forSwatch = columns => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-swatches-menu'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts.items({\n preprocess: columns !== 'auto' ? chunk({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity\n })]\n }]\n });\n const forToolbar = columns => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n 'tox-collection--toolbar',\n 'tox-collection--toolbar-lg'\n ]\n },\n components: [Menu.parts.items({\n preprocess: chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n });\n const preprocessCollection = (items, isSeparator) => {\n const allSplits = [];\n let currentSplit = [];\n each$1(items, (item, i) => {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has$2(item.dom, 'innerHtml') || item.components && item.components.length > 0) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n return map$2(allSplits, s => ({\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n }));\n };\n const insertItemsPlaceholder = (columns, initItems, onItem) => {\n return Menu.parts.items({\n preprocess: rawItems => {\n const enrichedItems = map$2(rawItems, onItem);\n if (columns !== 'auto' && columns > 1) {\n return chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)(enrichedItems);\n } else {\n return preprocessCollection(enrichedItems, (_item, i) => initItems[i].type === 'separator');\n }\n }\n });\n };\n const forCollection = (columns, initItems, _hasIcons = true) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [insertItemsPlaceholder(columns, initItems, identity)]\n });\n const forCollectionWithSearchResults = (columns, initItems, _hasIcons = true) => {\n const ariaControlsSearchResults = generate$6('aria-controls-search-results');\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n searchResultsClass\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid']),\n attributes: { id: ariaControlsSearchResults }\n },\n components: [insertItemsPlaceholder(columns, initItems, augmentWithAria)]\n };\n };\n const forCollectionWithSearchField = (columns, initItems, searchField) => {\n const ariaControlsSearchResults = generate$6('aria-controls-search-results');\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [\n renderMenuSearcher({\n i18n: global$5.translate,\n placeholder: searchField.placeholder\n }),\n {\n dom: {\n tag: 'div',\n classes: [\n ...columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'],\n searchResultsClass\n ],\n attributes: { id: ariaControlsSearchResults }\n },\n components: [insertItemsPlaceholder(columns, initItems, augmentWithAria)]\n }\n ]\n };\n };\n const forHorizontalCollection = (initItems, _hasIcons = true) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-collection',\n 'tox-collection--horizontal'\n ]\n },\n components: [Menu.parts.items({ preprocess: items => preprocessCollection(items, (_item, i) => initItems[i].type === 'separator') })]\n });\n\n const menuHasIcons = xs => exists(xs, item => 'icon' in item && item.icon !== undefined);\n const handleError = error => {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n const createHorizontalPartialMenuWithAlloyItems = (value, _hasIcons, items, _columns, _menuLayout) => {\n const structure = forHorizontalCollection(items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n };\n const createPartialMenuWithAlloyItems = (value, hasIcons, items, columns, menuLayout) => {\n const getNormalStructure = () => {\n if (menuLayout.menuType !== 'searchable') {\n return forCollection(columns, items);\n } else {\n return menuLayout.searchMode.searchMode === 'search-with-field' ? forCollectionWithSearchField(columns, items, menuLayout.searchMode) : forCollectionWithSearchResults(columns, items);\n }\n };\n if (menuLayout.menuType === 'color') {\n const structure = forSwatch(columns);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else if (menuLayout.menuType === 'normal' && columns === 'auto') {\n const structure = forCollection(columns, items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else if (menuLayout.menuType === 'normal' || menuLayout.menuType === 'searchable') {\n const structure = getNormalStructure();\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else if (menuLayout.menuType === 'listpreview' && columns !== 'auto') {\n const structure = forToolbar(columns);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else {\n return {\n value,\n dom: dom$1(hasIcons, columns, menuLayout.menuType),\n components: components,\n items\n };\n }\n };\n\n const type = requiredString('type');\n const name$1 = requiredString('name');\n const label = requiredString('label');\n const text = requiredString('text');\n const title = requiredString('title');\n const icon = requiredString('icon');\n const value$1 = requiredString('value');\n const fetch$1 = requiredFunction('fetch');\n const getSubmenuItems = requiredFunction('getSubmenuItems');\n const onAction = requiredFunction('onAction');\n const onItemAction = requiredFunction('onItemAction');\n const onSetup = defaultedFunction('onSetup', () => noop);\n const optionalName = optionString('name');\n const optionalText = optionString('text');\n const optionalRole = optionString('role');\n const optionalIcon = optionString('icon');\n const optionalTooltip = optionString('tooltip');\n const optionalLabel = optionString('label');\n const optionalShortcut = optionString('shortcut');\n const optionalSelect = optionFunction('select');\n const active = defaultedBoolean('active', false);\n const borderless = defaultedBoolean('borderless', false);\n const enabled = defaultedBoolean('enabled', true);\n const primary = defaultedBoolean('primary', false);\n const defaultedColumns = num => defaulted('columns', num);\n const defaultedMeta = defaulted('meta', {});\n const defaultedOnAction = defaultedFunction('onAction', noop);\n const defaultedType = type => defaultedString('type', type);\n const generatedName = namePrefix => field$1('name', 'name', defaultedThunk(() => generate$6(`${ namePrefix }-name`)), string);\n const generatedValue = valuePrefix => field$1('value', 'value', defaultedThunk(() => generate$6(`${ valuePrefix }-value`)), anyValue());\n\n const separatorMenuItemSchema = objOf([\n type,\n optionalText\n ]);\n const createSeparatorMenuItem = spec => asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n\n const autocompleterItemSchema = objOf([\n defaultedType('autocompleteitem'),\n active,\n enabled,\n defaultedMeta,\n value$1,\n optionalText,\n optionalIcon\n ]);\n const createSeparatorItem = spec => asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n const createAutocompleterItem = spec => asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n\n const baseToolbarButtonFields = [\n enabled,\n optionalTooltip,\n optionalIcon,\n optionalText,\n onSetup,\n defaultedString('context', 'mode:design')\n ];\n const toolbarButtonSchema = objOf([\n type,\n onAction,\n optionalShortcut\n ].concat(baseToolbarButtonFields));\n const createToolbarButton = spec => asRaw('toolbarbutton', toolbarButtonSchema, spec);\n\n const baseToolbarToggleButtonFields = [active].concat(baseToolbarButtonFields);\n const toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n type,\n onAction,\n optionalShortcut\n ]));\n const createToggleButton = spec => asRaw('ToggleButton', toggleButtonSchema, spec);\n\n const contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n const contextButtonFields = baseToolbarButtonFields.concat([\n defaultedType('contextformbutton'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaultedType('contextformbutton'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const launchButtonFields = baseToolbarButtonFields.concat([defaultedType('contextformbutton')]);\n const launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaultedType('contextformtogglebutton')]);\n const toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n const contextFormSchema = objOf([\n defaultedType('contextform'),\n defaultedFunction('initValue', constant$1('')),\n optionalLabel,\n requiredArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n const createContextForm = spec => asRaw('ContextForm', contextFormSchema, spec);\n\n const contextToolbarSchema = objOf([\n defaultedType('contexttoolbar'),\n requiredString('items')\n ].concat(contextBarFields));\n const createContextToolbar = spec => asRaw('ContextToolbar', contextToolbarSchema, spec);\n\n const cardImageFields = [\n type,\n requiredString('src'),\n optionString('alt'),\n defaultedArrayOf('classes', [], string)\n ];\n const cardImageSchema = objOf(cardImageFields);\n\n const cardTextFields = [\n type,\n text,\n optionalName,\n defaultedArrayOf('classes', ['tox-collection__item-label'], string)\n ];\n const cardTextSchema = objOf(cardTextFields);\n\n const itemSchema$1 = valueThunk(() => choose$2('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n }));\n const cardContainerSchema = objOf([\n type,\n defaultedString('direction', 'horizontal'),\n defaultedString('align', 'left'),\n defaultedString('valign', 'middle'),\n requiredArrayOf('items', itemSchema$1)\n ]);\n\n const commonMenuItemFields = [\n enabled,\n optionalText,\n optionalRole,\n optionalShortcut,\n generatedValue('menuitem'),\n defaultedMeta,\n defaultedString('context', 'mode:design')\n ];\n\n const cardMenuItemSchema = objOf([\n type,\n optionalLabel,\n requiredArrayOf('items', itemSchema$1),\n onSetup,\n defaultedOnAction\n ].concat(commonMenuItemFields));\n const createCardMenuItem = spec => asRaw('cardmenuitem', cardMenuItemSchema, spec);\n\n const choiceMenuItemSchema = objOf([\n type,\n active,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createChoiceMenuItem = spec => asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n\n const baseFields = [\n type,\n requiredString('fancytype'),\n defaultedOnAction\n ];\n const insertTableFields = [defaulted('initData', {})].concat(baseFields);\n const colorSwatchFields = [\n optionFunction('select'),\n defaultedObjOf('initData', {}, [\n defaultedBoolean('allowCustomColors', true),\n defaultedString('storageKey', 'default'),\n optionArrayOf('colors', anyValue())\n ])\n ].concat(baseFields);\n const fancyMenuItemSchema = choose$1('fancytype', {\n inserttable: insertTableFields,\n colorswatch: colorSwatchFields\n });\n const createFancyMenuItem = spec => asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n\n const menuItemSchema = objOf([\n type,\n onSetup,\n defaultedOnAction,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createMenuItem = spec => asRaw('menuitem', menuItemSchema, spec);\n\n const nestedMenuItemSchema = objOf([\n type,\n getSubmenuItems,\n onSetup,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createNestedMenuItem = spec => asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n\n const toggleMenuItemSchema = objOf([\n type,\n optionalIcon,\n active,\n onSetup,\n onAction\n ].concat(commonMenuItemFields));\n const createToggleMenuItem = spec => asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n\n const detectSize = (comp, margin, selectorClass) => {\n const descendants$1 = descendants(comp.element, '.' + selectorClass);\n if (descendants$1.length > 0) {\n const columnLength = findIndex$1(descendants$1, c => {\n const thisTop = c.dom.getBoundingClientRect().top;\n const cTop = descendants$1[0].dom.getBoundingClientRect().top;\n return Math.abs(thisTop - cTop) > margin;\n }).getOr(descendants$1.length);\n return Optional.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Optional.none();\n }\n };\n\n const namedEvents = (name, handlers) => derive$1([config(name, handlers)]);\n const unnamedEvents = handlers => namedEvents(generate$6('unnamed-events'), handlers);\n const SimpleBehaviours = {\n namedEvents,\n unnamedEvents\n };\n\n const escape = text => text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n const item = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n const button = disabled => Disabling.config({ disabled });\n const splitButton = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n const toolbarButton = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n const DisablingConfigs = {\n item,\n button,\n splitButton,\n toolbarButton\n };\n\n const runWithApi = (info, comp) => {\n const api = info.getApi(comp);\n return f => {\n f(api);\n };\n };\n const onControlAttached = (info, editorOffCell) => runOnAttached(comp => {\n const run = runWithApi(info, comp);\n run(api => {\n const onDestroy = info.onSetup(api);\n if (isFunction(onDestroy)) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n const onControlDetached = (getApi, editorOffCell) => runOnDetached(comp => runWithApi(getApi, comp)(editorOffCell.get()));\n\n const UiStateChannel = 'silver.uistate';\n const broadcastEvents = (uiRefs, data) => {\n const outerContainer = uiRefs.mainUi.outerContainer;\n const target = outerContainer.element;\n const motherships = [\n uiRefs.mainUi.mothership,\n ...uiRefs.uiMotherships\n ];\n if (data === 'setDisabled') {\n each$1(motherships, m => {\n m.broadcastOn([dismissPopups()], { target });\n });\n }\n each$1(motherships, m => {\n m.broadcastOn([UiStateChannel], data);\n });\n };\n const setupEventsForUi = (editor, uiRefs) => {\n editor.on('init SwitchMode', e => {\n broadcastEvents(uiRefs, e.type);\n });\n editor.on('NodeChange', e => {\n if (!editor.ui.isEnabled()) {\n broadcastEvents(uiRefs, 'setDisabled');\n } else {\n broadcastEvents(uiRefs, e.type);\n }\n });\n if (isReadOnly(editor)) {\n editor.mode.set('readonly');\n }\n };\n const toggleOnReceive = getContext => Receiving.config({\n channels: {\n [UiStateChannel]: {\n onReceive: (comp, buttonStateData) => {\n if (buttonStateData === 'setDisabled' || buttonStateData === 'setEnabled') {\n Disabling.set(comp, buttonStateData === 'setDisabled');\n return;\n }\n const {\n contextType,\n shouldDisable: contextShouldDisable\n } = getContext();\n if (contextType === 'mode' && !contains$2([\n 'switchmode',\n 'init'\n ], buttonStateData)) {\n return;\n }\n Disabling.set(comp, contextShouldDisable);\n }\n }\n }\n });\n\n const onMenuItemExecute = (info, itemResponse) => runOnExecute$1((comp, simulatedEvent) => {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n if (comp.getSystem().isConnected()) {\n emit(comp, sandboxClose());\n }\n simulatedEvent.stop();\n }\n });\n const menuItemEventOrder = {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ]\n };\n\n const componentRenderPipeline = cat;\n const renderCommonItem = (spec, structure, itemResponse, providersBackstage) => {\n const editorOffCell = Cell(noop);\n return {\n type: 'item',\n dom: structure.dom,\n components: componentRenderPipeline(structure.optComponents),\n data: spec.data,\n eventOrder: menuItemEventOrder,\n hasSubmenu: spec.triggersSubmenu,\n itemBehaviours: derive$1([\n config('item-events', [\n onMenuItemExecute(spec, itemResponse),\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n DisablingConfigs.item(() => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n const buildData = source => ({\n value: source.value,\n meta: {\n text: source.text.getOr(''),\n ...source.meta\n }\n });\n\n const convertText = source => {\n const isMac = global$6.os.isMacOS() || global$6.os.isiOS();\n const mac = {\n alt: '\\u2325',\n ctrl: '\\u2303',\n shift: '\\u21E7',\n meta: '\\u2318',\n access: '\\u2303\\u2325'\n };\n const other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n const replace = isMac ? mac : other;\n const shortcut = source.split('+');\n const updated = map$2(shortcut, segment => {\n const search = segment.toLowerCase().trim();\n return has$2(replace, search) ? replace[search] : segment;\n });\n return isMac ? updated.join('') : updated.join('+');\n };\n\n const renderIcon$2 = (name, icons, classes = [iconClass]) => render$3(name, {\n tag: 'div',\n classes\n }, icons);\n const renderText = text => ({\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text$2(global$5.translate(text))]\n });\n const renderHtml = (html, classes) => ({\n dom: {\n tag: 'div',\n classes,\n innerHtml: html\n }\n });\n const renderStyledText = (style, text) => ({\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n styles: style.styles\n },\n components: [text$2(global$5.translate(text))]\n }]\n });\n const renderShortcut = shortcut => ({\n dom: {\n tag: 'div',\n classes: [accessoryClass]\n },\n components: [text$2(convertText(shortcut))]\n });\n const renderCheckmark = icons => renderIcon$2('checkmark', icons, [checkmarkClass]);\n const renderSubmenuCaret = icons => renderIcon$2('chevron-right', icons, [caretClass]);\n const renderDownwardsCaret = icons => renderIcon$2('chevron-down', icons, [caretClass]);\n const renderContainer = (container, components) => {\n const directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n const alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n const getValignClass = () => {\n switch (container.valign) {\n case 'top':\n return containerValignTopClass;\n case 'middle':\n return containerValignMiddleClass;\n case 'bottom':\n return containerValignBottomClass;\n }\n };\n return {\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n directionClass,\n alignClass,\n getValignClass()\n ]\n },\n components\n };\n };\n const renderImage = (src, classes, alt) => ({\n dom: {\n tag: 'img',\n classes,\n attributes: {\n src,\n alt: alt.getOr('')\n }\n }\n });\n\n const renderColorStructure = (item, providerBackstage, fallbackIcon) => {\n const colorPickerCommand = 'custom';\n const removeColorCommand = 'remove';\n const itemValue = item.value;\n const iconSvg = item.iconContent.map(name => getOr(name, providerBackstage.icons, fallbackIcon));\n const attributes = item.ariaLabel.map(al => ({\n 'aria-label': providerBackstage.translate(al),\n 'data-mce-name': al\n })).getOr({});\n const getDom = () => {\n const common = colorClass;\n const icon = iconSvg.getOr('');\n const baseDom = {\n tag: 'div',\n attributes,\n classes: [common]\n };\n if (itemValue === colorPickerCommand) {\n return {\n ...baseDom,\n tag: 'button',\n classes: [\n ...baseDom.classes,\n 'tox-swatches__picker-btn'\n ],\n innerHtml: icon\n };\n } else if (itemValue === removeColorCommand) {\n return {\n ...baseDom,\n classes: [\n ...baseDom.classes,\n 'tox-swatch--remove'\n ],\n innerHtml: icon\n };\n } else if (isNonNullable(itemValue)) {\n return {\n ...baseDom,\n attributes: {\n ...baseDom.attributes,\n 'data-mce-color': itemValue\n },\n styles: { 'background-color': itemValue },\n innerHtml: icon\n };\n } else {\n return baseDom;\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n const renderItemDomStructure = ariaLabel => {\n const domTitle = ariaLabel.map(label => ({\n attributes: {\n 'id': generate$6('menu-item'),\n 'aria-label': global$5.translate(label)\n }\n })).getOr({});\n return {\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ],\n ...domTitle\n };\n };\n const renderNormalItemStructure = (info, providersBackstage, renderIcons, fallbackIcon) => {\n const iconSpec = {\n tag: 'div',\n classes: [iconClass]\n };\n const renderIcon = iconName => render$3(iconName, iconSpec, providersBackstage.icons, fallbackIcon);\n const renderEmptyIcon = () => Optional.some({ dom: iconSpec });\n const leftIcon = renderIcons ? info.iconContent.map(renderIcon).orThunk(renderEmptyIcon) : Optional.none();\n const checkmark = info.checkMark;\n const textRender = Optional.from(info.meta).fold(() => renderText, meta => has$2(meta, 'style') ? curry(renderStyledText, meta.style) : renderText);\n const content = info.htmlContent.fold(() => info.textContent.map(textRender), html => Optional.some(renderHtml(html, [textClass])));\n const menuItem = {\n dom: renderItemDomStructure(info.ariaLabel),\n optComponents: [\n leftIcon,\n content,\n info.shortcutContent.map(renderShortcut),\n checkmark,\n info.caret\n ]\n };\n return menuItem;\n };\n const renderItemStructure = (info, providersBackstage, renderIcons, fallbackIcon = Optional.none()) => {\n if (info.presets === 'color') {\n return renderColorStructure(info, providersBackstage, fallbackIcon);\n } else {\n return renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon);\n }\n };\n\n const tooltipBehaviour = (meta, sharedBackstage, tooltipText) => get$h(meta, 'tooltipWorker').map(tooltipWorker => [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: comp => ({\n type: 'submenu',\n item: comp,\n overrides: { maxHeightFunction: expandable$1 }\n }),\n mode: 'follow-highlight',\n onShow: (component, _tooltip) => {\n tooltipWorker(elm => {\n Tooltipping.setComponents(component, [external$1({ element: SugarElement.fromDom(elm) })]);\n });\n }\n })]).getOrThunk(() => {\n return tooltipText.map(text => [Tooltipping.config({\n ...sharedBackstage.providers.tooltips.getConfig({ tooltipText: text }),\n mode: 'follow-highlight'\n })]).getOr([]);\n });\n const encodeText = text => global$8.DOM.encode(text);\n const replaceText = (text, matchText) => {\n const translated = global$5.translate(text);\n const encoded = encodeText(translated);\n if (matchText.length > 0) {\n const escapedMatchRegex = new RegExp(escape(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, match => `${ match }`);\n } else {\n return encoded;\n }\n };\n const renderAutocompleteItem = (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons = true) => {\n const structure = renderItemStructure({\n presets,\n textContent: Optional.none(),\n htmlContent: useText ? spec.text.map(text => replaceText(text, matchText)) : Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Optional.none(),\n checkMark: Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n const tooltipString = spec.text.filter(text => !useText && text !== '');\n return renderCommonItem({\n context: 'mode:design',\n data: buildData(spec),\n enabled: spec.enabled,\n getApi: constant$1({}),\n onAction: _api => onItemValueHandler(spec.value, spec.meta),\n onSetup: constant$1(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec, sharedBackstage, tooltipString)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n const render$2 = (items, extras) => map$2(items, item => {\n switch (item.type) {\n case 'cardcontainer':\n return renderContainer(item, render$2(item.items, extras));\n case 'cardimage':\n return renderImage(item.src, item.classes, item.alt);\n case 'cardtext':\n const shouldHighlight = item.name.exists(name => contains$2(extras.cardText.highlightOn, name));\n const matchText = shouldHighlight ? Optional.from(extras.cardText.matchText).getOr('') : '';\n return renderHtml(replaceText(item.text, matchText), item.classes);\n }\n });\n const renderCardMenuItem = (spec, itemResponse, sharedBackstage, extras) => {\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => {\n Disabling.set(component, !state);\n each$1(descendants(component.element, '*'), elm => {\n component.getSystem().getByDom(elm).each(comp => {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, !state);\n }\n });\n });\n }\n });\n const structure = {\n dom: renderItemDomStructure(spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n containerRowClass\n ]\n },\n components: render$2(spec.items, extras)\n })]\n };\n return renderCommonItem({\n context: 'mode:design',\n data: buildData({\n text: Optional.none(),\n ...spec\n }),\n enabled: spec.enabled,\n getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: Optional.from(extras.itemBehaviours).getOr([])\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n const renderChoiceItem = (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n presets,\n textContent: useText ? spec.text : Optional.none(),\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Optional.none(),\n checkMark: useText ? Optional.some(renderCheckmark(providersBackstage.icons)) : Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, providersBackstage, renderIcons);\n const optTooltipping = spec.text.filter(constant$1(!useText)).map(t => Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate(t) })));\n return deepMerge(renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n enabled: spec.enabled,\n getApi,\n onAction: _api => onItemValueHandler(spec.value),\n onSetup: api => {\n api.setActive(isSelected);\n return noop;\n },\n triggersSubmenu: false,\n itemBehaviours: [...optTooltipping.toArray()]\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active,\n exclusive: true\n }\n });\n };\n\n const parts$f = generate$3(owner$2(), parts$h());\n\n const hexColour = value => ({ value: normalizeHex(value) });\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n const isHexString = hex => shorthandRegex.test(hex) || longformRegex.test(hex);\n const normalizeHex = hex => removeLeading(hex, '#').toUpperCase();\n const fromString$1 = hex => isHexString(hex) ? Optional.some({ value: normalizeHex(hex) }) : Optional.none();\n const getLongForm = hex => {\n const hexString = hex.value.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);\n return { value: hexString };\n };\n const extractValues = hex => {\n const longForm = getLongForm(hex);\n const splitForm = longformRegex.exec(longForm.value);\n return splitForm === null ? [\n 'FFFFFF',\n 'FF',\n 'FF',\n 'FF'\n ] : splitForm;\n };\n const toHex = component => {\n const hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n const fromRgba = rgbaColour => {\n const value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n const min = Math.min;\n const max = Math.max;\n const round$1 = Math.round;\n const rgbRegex = /^\\s*rgb\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*\\)\\s*$/i;\n const rgbaRegex = /^\\s*rgba\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*((?:\\d?\\.\\d+|\\d+)%?)\\s*\\)\\s*$/i;\n const rgbaColour = (red, green, blue, alpha) => ({\n red,\n green,\n blue,\n alpha\n });\n const isRgbaComponent = value => {\n const num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n const fromHsv = hsv => {\n let r;\n let g;\n let b;\n const hue = (hsv.hue || 0) % 360;\n let saturation = hsv.saturation / 100;\n let brightness = hsv.value / 100;\n saturation = max(0, min(saturation, 1));\n brightness = max(0, min(brightness, 1));\n if (saturation === 0) {\n r = g = b = round$1(255 * brightness);\n return rgbaColour(r, g, b, 1);\n }\n const side = hue / 60;\n const chroma = brightness * saturation;\n const x = chroma * (1 - Math.abs(side % 2 - 1));\n const match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round$1(255 * (r + match));\n g = round$1(255 * (g + match));\n b = round$1(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n const fromHex = hexColour => {\n const result = extractValues(hexColour);\n const red = parseInt(result[1], 16);\n const green = parseInt(result[2], 16);\n const blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n const fromStringValues = (red, green, blue, alpha) => {\n const r = parseInt(red, 10);\n const g = parseInt(green, 10);\n const b = parseInt(blue, 10);\n const a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n const fromString = rgbaString => {\n const rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n const rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n const toString = rgba => `rgba(${ rgba.red },${ rgba.green },${ rgba.blue },${ rgba.alpha })`;\n const red = rgbaColour(255, 0, 0, 1);\n\n const fireSkinLoaded$1 = editor => {\n editor.dispatch('SkinLoaded');\n };\n const fireSkinLoadError$1 = (editor, error) => {\n editor.dispatch('SkinLoadError', error);\n };\n const fireResizeEditor = editor => {\n editor.dispatch('ResizeEditor');\n };\n const fireResizeContent = (editor, e) => {\n editor.dispatch('ResizeContent', e);\n };\n const fireScrollContent = (editor, e) => {\n editor.dispatch('ScrollContent', e);\n };\n const fireTextColorChange = (editor, data) => {\n editor.dispatch('TextColorChange', data);\n };\n const fireAfterProgressState = (editor, state) => {\n editor.dispatch('AfterProgressState', { state });\n };\n const fireResolveName = (editor, node) => editor.dispatch('ResolveName', {\n name: node.nodeName.toLowerCase(),\n target: node\n });\n const fireToggleToolbarDrawer = (editor, state) => {\n editor.dispatch('ToggleToolbarDrawer', { state });\n };\n const fireStylesTextUpdate = (editor, data) => {\n editor.dispatch('StylesTextUpdate', data);\n };\n const fireAlignTextUpdate = (editor, data) => {\n editor.dispatch('AlignTextUpdate', data);\n };\n const fireFontSizeTextUpdate = (editor, data) => {\n editor.dispatch('FontSizeTextUpdate', data);\n };\n const fireFontSizeInputTextUpdate = (editor, data) => {\n editor.dispatch('FontSizeInputTextUpdate', data);\n };\n const fireBlocksTextUpdate = (editor, data) => {\n editor.dispatch('BlocksTextUpdate', data);\n };\n const fireFontFamilyTextUpdate = (editor, data) => {\n editor.dispatch('FontFamilyTextUpdate', data);\n };\n const fireToggleSidebar = editor => {\n editor.dispatch('ToggleSidebar');\n };\n const fireToggleView = editor => {\n editor.dispatch('ToggleView');\n };\n\n const composeUnbinders = (f, g) => () => {\n f();\n g();\n };\n const onSetupEditableToggle = editor => onSetupEvent(editor, 'NodeChange', api => {\n api.setEnabled(editor.selection.isEditable());\n });\n const onSetupFormatToggle = (editor, name) => api => {\n const boundFormatChangeCallback = unbindable();\n const init = () => {\n api.setActive(editor.formatter.match(name));\n const binding = editor.formatter.formatChanged(name, api.setActive);\n boundFormatChangeCallback.set(binding);\n };\n editor.initialized ? init() : editor.once('init', init);\n return () => {\n editor.off('init', init);\n boundFormatChangeCallback.clear();\n };\n };\n const onSetupStateToggle = (editor, name) => api => {\n const unbindEditableToogle = onSetupEditableToggle(editor)(api);\n const unbindFormatToggle = onSetupFormatToggle(editor, name)(api);\n return () => {\n unbindEditableToogle();\n unbindFormatToggle();\n };\n };\n const onSetupEvent = (editor, event, f) => api => {\n const handleEvent = () => f(api);\n const init = () => {\n f(api);\n editor.on(event, handleEvent);\n };\n editor.initialized ? init() : editor.once('init', init);\n return () => {\n editor.off('init', init);\n editor.off(event, handleEvent);\n };\n };\n const onActionToggleFormat$1 = editor => rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n const onActionExecCommand = (editor, command) => () => editor.execCommand(command);\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n const cacheStorage = {};\n const ColorCache = (storageId, max = 10) => {\n const storageString = global$4.getItem(storageId);\n const localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n const prune = list => {\n const diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n const cache = prune(localstorage);\n const add = key => {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$4.setItem(storageId, JSON.stringify(cache));\n };\n const remove = idx => {\n cache.splice(idx, 1);\n };\n const state = () => cache.slice(0);\n return {\n add,\n state\n };\n };\n const getCacheForId = id => get$h(cacheStorage, id).getOrThunk(() => {\n const storageId = `tinymce-custom-colors-${ id }`;\n const currentData = global$4.getItem(storageId);\n if (isNullable(currentData)) {\n const legacyDefault = global$4.getItem('tinymce-custom-colors');\n global$4.setItem(storageId, isNonNullable(legacyDefault) ? legacyDefault : '[]');\n }\n const storage = ColorCache(storageId, 10);\n cacheStorage[id] = storage;\n return storage;\n });\n const getCurrentColors = id => map$2(getCacheForId(id).state(), color => ({\n type: 'choiceitem',\n text: color,\n icon: 'checkmark',\n value: color\n }));\n const addColor = (id, color) => {\n getCacheForId(id).add(color);\n };\n\n const hsvColour = (hue, saturation, value) => ({\n hue,\n saturation,\n value\n });\n const fromRgb = rgbaColour => {\n let h = 0;\n let s = 0;\n let v = 0;\n const r = rgbaColour.red / 255;\n const g = rgbaColour.green / 255;\n const b = rgbaColour.blue / 255;\n const minRGB = Math.min(r, Math.min(g, b));\n const maxRGB = Math.max(r, Math.max(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n const d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return hsvColour(Math.round(h), Math.round(s * 100), Math.round(v * 100));\n };\n\n const hexToHsv = hex => fromRgb(fromHex(hex));\n const hsvToHex = hsv => fromRgba(fromHsv(hsv));\n const anyToHex = color => fromString$1(color).orThunk(() => fromString(color).map(fromRgba)).getOrThunk(() => {\n const canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n const canvasContext = canvas.getContext('2d');\n canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvasContext.fillStyle = '#FFFFFF';\n canvasContext.fillStyle = color;\n canvasContext.fillRect(0, 0, 1, 1);\n const rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n const r = rgba[0];\n const g = rgba[1];\n const b = rgba[2];\n const a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n\n const foregroundId = 'forecolor';\n const backgroundId = 'hilitecolor';\n const fallbackCols = 5;\n const mapColors = colorMap => mapColorsRaw(colorMap.map((color, index) => {\n if (index % 2 === 0) {\n return '#' + anyToHex(color).value;\n }\n return color;\n }));\n const mapColorsRaw = colorMap => {\n const colors = [];\n for (let i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: colorMap[i],\n icon: 'checkmark',\n type: 'choiceitem'\n });\n }\n return colors;\n };\n const option$1 = name => editor => editor.options.get(name);\n const fallbackColor = '#000000';\n const register$e = editor => {\n const registerOption = editor.options.register;\n const colorProcessor = value => {\n if (isArrayOf(value, isString)) {\n return {\n value: mapColors(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of strings.'\n };\n }\n };\n const colorProcessorRaw = value => {\n if (isArrayOf(value, isString)) {\n return {\n value: mapColorsRaw(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of strings.'\n };\n }\n };\n const colorColsProcessor = value => {\n if (isNumber(value) && value > 0) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a positive number.'\n };\n }\n };\n registerOption('color_map', {\n processor: colorProcessor,\n default: [\n '#BFEDD2',\n 'Light Green',\n '#FBEEB8',\n 'Light Yellow',\n '#F8CAC6',\n 'Light Red',\n '#ECCAFA',\n 'Light Purple',\n '#C2E0F4',\n 'Light Blue',\n '#2DC26B',\n 'Green',\n '#F1C40F',\n 'Yellow',\n '#E03E2D',\n 'Red',\n '#B96AD9',\n 'Purple',\n '#3598DB',\n 'Blue',\n '#169179',\n 'Dark Turquoise',\n '#E67E23',\n 'Orange',\n '#BA372A',\n 'Dark Red',\n '#843FA1',\n 'Dark Purple',\n '#236FA1',\n 'Dark Blue',\n '#ECF0F1',\n 'Light Gray',\n '#CED4D9',\n 'Medium Gray',\n '#95A5A6',\n 'Gray',\n '#7E8C8D',\n 'Dark Gray',\n '#34495E',\n 'Navy Blue',\n '#000000',\n 'Black',\n '#ffffff',\n 'White'\n ]\n });\n registerOption('color_map_raw', { processor: colorProcessorRaw });\n registerOption('color_map_background', { processor: colorProcessor });\n registerOption('color_map_foreground', { processor: colorProcessor });\n registerOption('color_cols', {\n processor: colorColsProcessor,\n default: calcCols(editor)\n });\n registerOption('color_cols_foreground', {\n processor: colorColsProcessor,\n default: defaultCols(editor, foregroundId)\n });\n registerOption('color_cols_background', {\n processor: colorColsProcessor,\n default: defaultCols(editor, backgroundId)\n });\n registerOption('custom_colors', {\n processor: 'boolean',\n default: true\n });\n registerOption('color_default_foreground', {\n processor: 'string',\n default: fallbackColor\n });\n registerOption('color_default_background', {\n processor: 'string',\n default: fallbackColor\n });\n };\n const getColors$2 = (editor, id) => {\n if (id === foregroundId && editor.options.isSet('color_map_foreground')) {\n return option$1('color_map_foreground')(editor);\n } else if (id === backgroundId && editor.options.isSet('color_map_background')) {\n return option$1('color_map_background')(editor);\n } else if (editor.options.isSet('color_map_raw')) {\n return option$1('color_map_raw')(editor);\n } else {\n return option$1('color_map')(editor);\n }\n };\n const calcCols = (editor, id = 'default') => Math.max(fallbackCols, Math.ceil(Math.sqrt(getColors$2(editor, id).length)));\n const defaultCols = (editor, id) => {\n const defaultCols = option$1('color_cols')(editor);\n const calculatedCols = calcCols(editor, id);\n if (defaultCols === calcCols(editor)) {\n return calculatedCols;\n } else {\n return defaultCols;\n }\n };\n const getColorCols$1 = (editor, id = 'default') => {\n const getCols = () => {\n if (id === foregroundId) {\n return option$1('color_cols_foreground')(editor);\n } else if (id === backgroundId) {\n return option$1('color_cols_background')(editor);\n } else {\n return option$1('color_cols')(editor);\n }\n };\n return Math.round(getCols());\n };\n const hasCustomColors$1 = option$1('custom_colors');\n const getDefaultForegroundColor = option$1('color_default_foreground');\n const getDefaultBackgroundColor = option$1('color_default_background');\n\n const defaultBackgroundColor = 'rgba(0, 0, 0, 0)';\n const isValidBackgroundColor = value => fromString(value).exists(c => c.alpha !== 0);\n const getClosestCssBackgroundColorValue = scope => {\n return closest$4(scope, node => {\n if (isElement$1(node)) {\n const color = get$f(node, 'background-color');\n return someIf(isValidBackgroundColor(color), color);\n } else {\n return Optional.none();\n }\n }).getOr(defaultBackgroundColor);\n };\n const getCurrentColor = (editor, format) => {\n const node = SugarElement.fromDom(editor.selection.getStart());\n const cssRgbValue = format === 'hilitecolor' ? getClosestCssBackgroundColorValue(node) : get$f(node, 'color');\n return fromString(cssRgbValue).map(rgba => '#' + fromRgba(rgba).value);\n };\n const applyFormat = (editor, format, value) => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.formatter.apply(format, { value });\n editor.nodeChanged();\n });\n };\n const removeFormat = (editor, format) => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.formatter.remove(format, { value: null }, undefined, true);\n editor.nodeChanged();\n });\n };\n const registerCommands = editor => {\n editor.addCommand('mceApplyTextcolor', (format, value) => {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', format => {\n removeFormat(editor, format);\n });\n };\n const getAdditionalColors = hasCustom => {\n const type = 'choiceitem';\n const remove = {\n type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n const custom = {\n type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [\n remove,\n custom\n ] : [remove];\n };\n const applyColor = (editor, format, value, onChoice) => {\n if (value === 'custom') {\n const dialog = colorPickerDialog(editor);\n dialog(colorOpt => {\n colorOpt.each(color => {\n addColor(format, color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, getCurrentColor(editor, format).getOr(fallbackColor));\n } else if (value === 'remove') {\n onChoice('');\n editor.execCommand('mceRemoveTextcolor', format);\n } else {\n onChoice(value);\n editor.execCommand('mceApplyTextcolor', format, value);\n }\n };\n const getColors$1 = (colors, id, hasCustom) => colors.concat(getCurrentColors(id).concat(getAdditionalColors(hasCustom)));\n const getFetch$1 = (colors, id, hasCustom) => callback => {\n callback(getColors$1(colors, id, hasCustom));\n };\n const setIconColor = (splitButtonApi, name, newColor) => {\n const id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n splitButtonApi.setIconFill(id, newColor);\n };\n const setTooltip = (buttonApi, tooltip) => {\n buttonApi.setTooltip(tooltip);\n };\n const select$1 = (editor, format) => value => {\n const optCurrentHex = getCurrentColor(editor, format);\n return is$1(optCurrentHex, value.toUpperCase());\n };\n const getToolTipText = (editor, format, lastColor) => {\n if (isEmpty(lastColor)) {\n return format === 'forecolor' ? 'Text color' : 'Background color';\n }\n const tooltipPrefix = format === 'forecolor' ? 'Text color {0}' : 'Background color {0}';\n const colors = getColors$1(getColors$2(editor, format), format, false);\n const colorText = find$5(colors, c => c.value === lastColor).getOr({ text: '' }).text;\n return editor.translate([\n tooltipPrefix,\n editor.translate(colorText)\n ]);\n };\n const registerTextColorButton = (editor, name, format, lastColor) => {\n editor.ui.registry.addSplitButton(name, {\n tooltip: getToolTipText(editor, format, lastColor.get()),\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: select$1(editor, format),\n columns: getColorCols$1(editor, format),\n fetch: getFetch$1(getColors$2(editor, format), format, hasCustomColors$1(editor)),\n onAction: _splitButtonApi => {\n applyColor(editor, format, lastColor.get(), noop);\n },\n onItemAction: (_splitButtonApi, value) => {\n applyColor(editor, format, value, newColor => {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name,\n color: newColor\n });\n });\n },\n onSetup: splitButtonApi => {\n setIconColor(splitButtonApi, name, lastColor.get());\n const handler = e => {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n setTooltip(splitButtonApi, getToolTipText(editor, format, e.color));\n }\n };\n editor.on('TextColorChange', handler);\n return composeUnbinders(onSetupEditableToggle(editor)(splitButtonApi), () => {\n editor.off('TextColorChange', handler);\n });\n }\n });\n };\n const registerTextColorMenuItem = (editor, name, format, text, lastColor) => {\n editor.ui.registry.addNestedMenuItem(name, {\n text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n onSetup: api => {\n setTooltip(api, getToolTipText(editor, format, lastColor.get()));\n setIconColor(api, name, lastColor.get());\n return onSetupEditableToggle(editor)(api);\n },\n getSubmenuItems: () => [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n select: select$1(editor, format),\n initData: { storageKey: format },\n onAction: data => {\n applyColor(editor, format, data.value, newColor => {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name,\n color: newColor\n });\n });\n }\n }]\n });\n };\n const colorPickerDialog = editor => (callback, value) => {\n let isValid = false;\n const onSubmit = api => {\n const data = api.getData();\n const hex = data.colorpicker;\n if (isValid) {\n callback(Optional.from(hex));\n api.close();\n } else {\n editor.windowManager.alert(editor.translate([\n 'Invalid hex color code: {0}',\n hex\n ]));\n }\n };\n const onAction = (_api, details) => {\n if (details.name === 'hex-valid') {\n isValid = details.value;\n }\n };\n const initialData = { colorpicker: value };\n editor.windowManager.open({\n title: 'Color Picker',\n size: 'normal',\n body: {\n type: 'panel',\n items: [{\n type: 'colorpicker',\n name: 'colorpicker',\n label: 'Color'\n }]\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData,\n onAction,\n onSubmit,\n onClose: noop,\n onCancel: () => {\n callback(Optional.none());\n }\n });\n };\n const register$d = editor => {\n registerCommands(editor);\n const fallbackColorForeground = getDefaultForegroundColor(editor);\n const fallbackColorBackground = getDefaultBackgroundColor(editor);\n const lastForeColor = Cell(fallbackColorForeground);\n const lastBackColor = Cell(fallbackColorBackground);\n registerTextColorButton(editor, 'forecolor', 'forecolor', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', lastBackColor);\n registerTextColorMenuItem(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorMenuItem(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n };\n\n const createPartialChoiceMenu = (value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) => {\n const hasIcons = menuHasIcons(items);\n const presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n const alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n const menuLayout = { menuType: presets };\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, menuLayout);\n };\n const createChoiceItems = (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) => cat(map$2(items, item => {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, d => Optional.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(d.value), itemResponse, providersBackstage, menuHasIcons(items))));\n } else {\n return Optional.none();\n }\n }));\n\n const deriveMenuMovement = (columns, presets) => {\n const menuMarkers = markers(presets);\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: true\n };\n } else if (columns === 'auto') {\n return {\n mode: 'grid',\n selector: '.' + menuMarkers.item,\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n const rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass,\n previousSelector: menu => {\n return presets === 'color' ? descendant(menu.element, '[aria-checked=true]') : Optional.none();\n }\n };\n }\n };\n const deriveCollectionMovement = (columns, presets) => {\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: false,\n selector: '.tox-collection__item'\n };\n } else if (columns === 'auto') {\n return {\n mode: 'flatgrid',\n selector: '.' + 'tox-collection__item',\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n return {\n mode: 'matrix',\n selectors: {\n row: presets === 'color' ? '.tox-swatches__row' : '.tox-collection__group',\n cell: presets === 'color' ? `.${ colorClass }` : `.${ selectableClass }`\n }\n };\n }\n };\n\n const renderColorSwatchItem = (spec, backstage) => {\n const items = getColorItems(spec, backstage);\n const columns = backstage.colorinput.getColorCols(spec.initData.storageKey);\n const presets = 'color';\n const menuSpec = createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onAction({ value });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), backstage.shared.providers);\n const widgetSpec = {\n ...menuSpec,\n markers: markers(presets),\n movement: deriveMenuMovement(columns, presets),\n showMenuRole: false\n };\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget(Menu.sketch(widgetSpec))]\n };\n };\n const getColorItems = (spec, backstage) => {\n const useCustomColors = spec.initData.allowCustomColors && backstage.colorinput.hasCustomColors();\n return spec.initData.colors.fold(() => getColors$1(backstage.colorinput.getColors(spec.initData.storageKey), spec.initData.storageKey, useCustomColors), colors => colors.concat(getAdditionalColors(useCustomColors)));\n };\n\n const cellOverEvent = generate$6('cell-over');\n const cellExecuteEvent = generate$6('cell-execute');\n const makeAnnouncementText = backstage => (row, col) => backstage.shared.providers.translate([\n '{0} columns, {1} rows',\n col,\n row\n ]);\n const makeCell = (row, col, label) => {\n const emitCellOver = c => emitWith(c, cellOverEvent, {\n row,\n col\n });\n const emitExecute = c => emitWith(c, cellExecuteEvent, {\n row,\n col\n });\n const onClick = (c, se) => {\n se.stop();\n emitExecute(c);\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: {\n role: 'button',\n ['aria-label']: label\n }\n },\n behaviours: derive$1([\n config('insert-table-picker-cell', [\n run$1(mouseover(), Focusing.focus),\n run$1(execute$5(), emitExecute),\n run$1(click(), onClick),\n run$1(tap(), onClick)\n ]),\n Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }),\n Focusing.config({ onFocus: emitCellOver })\n ])\n });\n };\n const makeCells = (getCellLabel, numRows, numCols) => {\n const cells = [];\n for (let i = 0; i < numRows; i++) {\n const row = [];\n for (let j = 0; j < numCols; j++) {\n const label = getCellLabel(i + 1, j + 1);\n row.push(makeCell(i, j, label));\n }\n cells.push(row);\n }\n return cells;\n };\n const selectCells = (cells, selectedRow, selectedColumn, numRows, numColumns) => {\n for (let i = 0; i < numRows; i++) {\n for (let j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n const makeComponents = cells => bind$3(cells, cellRow => map$2(cellRow, premade));\n const makeLabelText = (row, col) => text$2(`${ col }x${ row }`);\n const renderInsertTableMenuItem = (spec, backstage) => {\n const numRows = 10;\n const numColumns = 10;\n const getCellLabel = makeAnnouncementText(backstage);\n const cells = makeCells(getCellLabel, numRows, numColumns);\n const emptyLabelText = makeLabelText(0, 0);\n const memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label']\n },\n components: [emptyLabelText],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([\n config('insert-table-picker', [\n runOnAttached(c => {\n Replacing.set(memLabel.get(c), [emptyLabelText]);\n }),\n runWithTarget(cellOverEvent, (c, t, e) => {\n const {row, col} = e.event;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row + 1, col + 1)]);\n }),\n runWithTarget(cellExecuteEvent, (c, _, e) => {\n const {row, col} = e.event;\n emit(c, sandboxClose());\n spec.onAction({\n numRows: row + 1,\n numColumns: col + 1\n });\n })\n ]),\n Keying.config({\n initSize: {\n numRows,\n numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })\n ])\n })]\n };\n };\n\n const fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n const renderFancyMenuItem = (spec, backstage) => get$h(fancyMenuItems, spec.fancytype).map(render => render(spec, backstage));\n\n const renderNestedItem = (spec, itemResponse, providersBackstage, renderIcons = true, downwardsCaret = false) => {\n const caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setIconFill: (id, value) => {\n descendant(component.element, `svg path[class=\"${ id }\"], rect[class=\"${ id }\"]`).each(underlinePath => {\n set$9(underlinePath, 'fill', value);\n });\n },\n setTooltip: tooltip => {\n const translatedTooltip = providersBackstage.translate(tooltip);\n set$9(component.element, 'aria-label', translatedTooltip);\n }\n });\n const structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.some(caret),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n getApi,\n enabled: spec.enabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n const renderNormalItem = (spec, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.none(),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n getApi,\n enabled: spec.enabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n const renderSeparatorItem = spec => ({\n type: 'separator',\n dom: {\n tag: 'div',\n classes: [\n selectableClass,\n groupHeadingClass\n ]\n },\n components: spec.text.map(text$2).toArray()\n });\n\n const renderToggleMenuItem = (spec, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n checkMark: Optional.some(renderCheckmark(providersBackstage.icons)),\n caret: Optional.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, renderIcons);\n return deepMerge(renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n enabled: spec.enabled,\n getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n },\n role: spec.role.getOrUndefined()\n });\n };\n\n const autocomplete = renderAutocompleteItem;\n const separator$3 = renderSeparatorItem;\n const normal = renderNormalItem;\n const nested = renderNestedItem;\n const toggle$1 = renderToggleMenuItem;\n const fancy = renderFancyMenuItem;\n const card = renderCardMenuItem;\n\n const getCoupled = (component, coupleConfig, coupleState, name) => coupleState.getOrCreate(component, coupleConfig, name);\n const getExistingCoupled = (component, coupleConfig, coupleState, name) => coupleState.getExisting(component, coupleConfig, name);\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCoupled: getCoupled,\n getExistingCoupled: getExistingCoupled\n });\n\n var CouplingSchema = [requiredOf('others', setOf(Result.value, anyValue()))];\n\n const init$9 = () => {\n const coupled = {};\n const lookupCoupled = (coupleConfig, coupledName) => {\n const available = keys(coupleConfig.others);\n if (available.length === 0) {\n throw new Error('Cannot find any known coupled components');\n } else {\n return get$h(coupled, coupledName);\n }\n };\n const getOrCreate = (component, coupleConfig, name) => {\n return lookupCoupled(coupleConfig, name).getOrThunk(() => {\n const builder = get$h(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n const spec = builder(component);\n const built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n };\n const getExisting = (component, coupleConfig, name) => {\n return lookupCoupled(coupleConfig, name).orThunk(() => {\n get$h(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n return Optional.none();\n });\n };\n const readState = constant$1({});\n return nu$7({\n readState,\n getExisting,\n getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$9\n });\n\n const Coupling = create$4({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n const nu$3 = baseFn => {\n let data = Optional.none();\n let callbacks = [];\n const map = f => nu$3(nCallback => {\n get(data => {\n nCallback(f(data));\n });\n });\n const get = nCallback => {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n const set = x => {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n const isReady = () => data.isSome();\n const run = cbs => {\n each$1(cbs, call);\n };\n const call = cb => {\n data.each(x => {\n setTimeout(() => {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get,\n map,\n isReady\n };\n };\n const pure$1 = a => nu$3(callback => {\n callback(a);\n });\n const LazyValue = {\n nu: nu$3,\n pure: pure$1\n };\n\n const errorReporter = err => {\n setTimeout(() => {\n throw err;\n }, 0);\n };\n const make$5 = run => {\n const get = callback => {\n run().then(callback, errorReporter);\n };\n const map = fab => {\n return make$5(() => run().then(fab));\n };\n const bind = aFutureB => {\n return make$5(() => run().then(v => aFutureB(v).toPromise()));\n };\n const anonBind = futureB => {\n return make$5(() => run().then(() => futureB.toPromise()));\n };\n const toLazy = () => {\n return LazyValue.nu(get);\n };\n const toCached = () => {\n let cache = null;\n return make$5(() => {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n const toPromise = run;\n return {\n map,\n bind,\n anonBind,\n toLazy,\n toCached,\n toPromise,\n get\n };\n };\n const nu$2 = baseFn => {\n return make$5(() => new Promise(baseFn));\n };\n const pure = a => {\n return make$5(() => Promise.resolve(a));\n };\n const Future = {\n nu: nu$2,\n pure\n };\n\n const suffix = constant$1('sink');\n const partType$1 = constant$1(optional({\n name: suffix(),\n overrides: constant$1({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: always })]),\n events: derive$2([\n cutter(keydown()),\n cutter(mousedown()),\n cutter(click())\n ])\n })\n }));\n\n const getAnchor = (detail, component) => {\n const hotspot = detail.getHotspot(component).getOr(component);\n const type = 'hotspot';\n const overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(() => ({\n type,\n hotspot,\n overrides\n }), layouts => ({\n type,\n hotspot,\n overrides,\n layouts\n }));\n };\n const fetch = (detail, mapFetch, component) => {\n const fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n const openF = (detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) => {\n const futureData = fetch(detail, mapFetch, component);\n const getLazySink = getSink(component, detail);\n return futureData.map(tdata => tdata.bind(data => {\n const primaryMenu = data.menus[data.primary];\n Optional.from(primaryMenu).each(menu => {\n detail.listRole.each(listRole => {\n menu.role = listRole;\n });\n });\n return Optional.from(tieredMenu.sketch({\n ...externals.menu(),\n uid: generate$5(''),\n data,\n highlightOnOpen,\n onOpenMenu: (tmenu, menu) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, menu, { anchor });\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: (tmenu, item, submenu) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item\n }\n });\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: (tmenu, primaryMenu, submenuTriggers) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, primaryMenu, { anchor });\n each$1(submenuTriggers, st => {\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem\n }\n });\n });\n },\n onEscape: () => {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n }));\n }));\n };\n const open = (detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) => {\n const anchor = getAnchor(detail, hotspot);\n const processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(tdata => {\n tdata.fold(() => {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, data => {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n const close = (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) => {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n const togglePopup = (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) => {\n const sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n const showing = Sandboxing.isOpen(sandbox);\n const action = showing ? close : open;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n const matchWidth = (hotspot, container, useMinWidth) => {\n const menu = Composing.getCurrent(container).getOr(container);\n const buttonWidth = get$d(hotspot.element);\n if (useMinWidth) {\n set$8(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$7(menu.element, buttonWidth);\n }\n };\n const getSink = (anyInSystem, sinkDetail) => anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(internalSink => () => Result.value(internalSink)).getOrThunk(() => sinkDetail.lazySink.fold(() => () => Result.error(new Error('No internal sink is specified, nor could an external sink be found')), lazySinkFn => () => lazySinkFn(anyInSystem)));\n const doRepositionMenus = sandbox => {\n Sandboxing.getState(sandbox).each(tmenu => {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n const makeSandbox$1 = (detail, hotspot, extras) => {\n const ariaControls = manager();\n const onOpen = (component, menu) => {\n const anchor = getAnchor(detail, hotspot);\n ariaControls.link(hotspot.element);\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n detail.onOpen(anchor, component, menu);\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n const onClose = (component, menu) => {\n ariaControls.unlink(hotspot.element);\n lazySink().getOr(menu).element.dom.dispatchEvent(new window.FocusEvent('focusout'));\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n const lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: { id: ariaControls.id }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }),\n Sandboxing.config({\n onOpen,\n onClose,\n isPartOf: (container, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOf$1(hotspot, queryElem);\n },\n getAttachPoint: () => {\n return lazySink().getOrDie();\n }\n }),\n Composing.config({\n find: sandbox => {\n return Sandboxing.getState(sandbox).bind(menu => Composing.getCurrent(menu));\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({ isExtraPart: never }),\n ...receivingChannel({ doReposition: doRepositionMenus })\n }\n })\n ])\n };\n };\n const repositionMenus = comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n const sandboxFields = () => [\n defaulted('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n\n const schema$k = constant$1([\n required$1('dom'),\n required$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n field('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n required$1('toggleClass'),\n defaulted('eventOrder', {}),\n option$3('lazySink'),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n option$3('role'),\n option$3('listRole')\n ].concat(sandboxFields()));\n const parts$e = constant$1([\n external({\n schema: [\n tieredMenuMarkers(),\n defaulted('fakeFocus', false)\n ],\n name: 'menu',\n defaults: detail => {\n return { onExecute: detail.onExecute };\n }\n }),\n partType$1()\n ]);\n\n const factory$k = (detail, components, _spec, externals) => {\n const lookupAttr = attr => get$h(detail.dom, 'attributes').bind(attrs => get$h(attrs, attr));\n const switchToMenu = sandbox => {\n Sandboxing.getState(sandbox).each(tmenu => {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n const togglePopup$1 = (dropdownComp, onOpenSync, highlightOnOpen) => {\n return togglePopup(detail, identity, dropdownComp, externals, onOpenSync, highlightOnOpen);\n };\n const action = component => {\n const onOpenSync = switchToMenu;\n togglePopup$1(component, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n };\n const apis = {\n expand: comp => {\n if (!Toggling.isOn(comp)) {\n togglePopup$1(comp, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: comp => {\n if (!Toggling.isOn(comp)) {\n togglePopup$1(comp, noop, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }\n },\n refetch: comp => {\n const optSandbox = Coupling.getExistingCoupled(comp, 'sandbox');\n return optSandbox.fold(() => {\n return togglePopup$1(comp, noop, HighlightOnOpen.HighlightMenuAndItem).map(noop);\n }, sandboxComp => {\n return open(detail, identity, comp, sandboxComp, externals, noop, HighlightOnOpen.HighlightMenuAndItem).map(noop);\n });\n },\n isOpen: Toggling.isOn,\n close: comp => {\n if (Toggling.isOn(comp)) {\n togglePopup$1(comp, noop, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }\n },\n repositionMenus: comp => {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n const triggerExecute = (comp, _se) => {\n emitExecute(comp);\n return Optional.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.dropdownBehaviours, [\n Toggling.config({\n toggleClass: detail.toggleClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: hotspot => {\n return makeSandbox$1(detail, hotspot, {\n onOpen: () => Toggling.on(hotspot),\n onClose: () => Toggling.off(hotspot)\n });\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: (comp, _se) => {\n if (Dropdown.isOpen(comp)) {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n return Optional.some(true);\n },\n onEscape: (comp, _se) => {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n }\n }),\n Focusing.config({})\n ]),\n events: events$9(Optional.some(action)),\n eventOrder: {\n ...detail.eventOrder,\n [execute$5()]: [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n },\n apis,\n domModification: {\n attributes: {\n 'aria-haspopup': detail.listRole.getOr('true'),\n ...detail.role.fold(() => ({}), role => ({ role })),\n ...detail.dom.tag === 'button' ? { type: lookupAttr('type').getOr('button') } : {}\n }\n }\n };\n };\n const Dropdown = composite({\n name: 'Dropdown',\n configFields: schema$k(),\n partFields: parts$e(),\n factory: factory$k,\n apis: {\n open: (apis, comp) => apis.open(comp),\n refetch: (apis, comp) => apis.refetch(comp),\n expand: (apis, comp) => apis.expand(comp),\n close: (apis, comp) => apis.close(comp),\n isOpen: (apis, comp) => apis.isOpen(comp),\n repositionMenus: (apis, comp) => apis.repositionMenus(comp)\n }\n });\n\n const identifyMenuLayout = searchMode => {\n switch (searchMode.searchMode) {\n case 'no-search': {\n return { menuType: 'normal' };\n }\n default: {\n return {\n menuType: 'searchable',\n searchMode\n };\n }\n }\n };\n const handleRefetchTrigger = originalSandboxComp => {\n const dropdown = Representing.getValue(originalSandboxComp);\n const optSearcherState = findWithinSandbox(originalSandboxComp).map(saveState);\n Dropdown.refetch(dropdown).get(() => {\n const newSandboxComp = Coupling.getCoupled(dropdown, 'sandbox');\n optSearcherState.each(searcherState => findWithinSandbox(newSandboxComp).each(inputComp => restoreState(inputComp, searcherState)));\n });\n };\n const handleRedirectToMenuItem = (sandboxComp, se) => {\n getActiveMenuItemFrom(sandboxComp).each(activeItem => {\n retargetAndDispatchWith(sandboxComp, activeItem.element, se.event.eventType, se.event.interactionEvent);\n });\n };\n const getActiveMenuItemFrom = sandboxComp => {\n return Sandboxing.getState(sandboxComp).bind(Highlighting.getHighlighted).bind(Highlighting.getHighlighted);\n };\n const getSearchResults = activeMenuComp => {\n return has(activeMenuComp.element, searchResultsClass) ? Optional.some(activeMenuComp.element) : descendant(activeMenuComp.element, '.' + searchResultsClass);\n };\n const updateAriaOnHighlight = (tmenuComp, menuComp, itemComp) => {\n findWithinMenu(tmenuComp).each(inputComp => {\n setActiveDescendant(inputComp, itemComp);\n const optActiveResults = getSearchResults(menuComp);\n optActiveResults.each(resultsElem => {\n getOpt(resultsElem, 'id').each(controlledId => set$9(inputComp.element, 'aria-controls', controlledId));\n });\n });\n set$9(itemComp.element, 'aria-selected', 'true');\n };\n const updateAriaOnDehighlight = (tmenuComp, menuComp, itemComp) => {\n set$9(itemComp.element, 'aria-selected', 'false');\n };\n const focusSearchField = tmenuComp => {\n findWithinMenu(tmenuComp).each(searcherComp => Focusing.focus(searcherComp));\n };\n const getSearchPattern = dropdownComp => {\n const optSandboxComp = Coupling.getExistingCoupled(dropdownComp, 'sandbox');\n return optSandboxComp.bind(findWithinSandbox).map(saveState).map(state => state.fetchPattern).getOr('');\n };\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n const createMenuItemFromBridge = (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) => {\n const providersBackstage = backstage.shared.providers;\n const parseForHorizontalMenu = menuitem => !isHorizontalMenu ? menuitem : {\n ...menuitem,\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\n };\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, d => Optional.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons)));\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, d => Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu)));\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, d => Optional.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons)));\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, d => Optional.some(separator$3(d)));\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, d => fancy(d, backstage));\n default: {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n const createAutocompleteItems = (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) => {\n const renderText = columns === 1;\n const renderIcons = !renderText || menuHasIcons(items);\n return cat(map$2(items, item => {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, d => Optional.some(separator$3(d)));\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, d => Optional.some(card({\n ...d,\n onAction: api => {\n d.onAction(api);\n onItemValueHandler(d.value, d.meta);\n }\n }, itemResponse, sharedBackstage, {\n itemBehaviours: tooltipBehaviour(d.meta, sharedBackstage, Optional.none()),\n cardText: {\n matchText,\n highlightOn\n }\n })));\n case 'autocompleteitem':\n default:\n return createAutocompleterItem(item).fold(handleError, d => Optional.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons)));\n }\n }));\n };\n const createPartialMenu = (value, items, itemResponse, backstage, isHorizontalMenu, searchMode) => {\n const hasIcons = menuHasIcons(items);\n const alloyItems = cat(map$2(items, item => {\n const itemHasIcon = i => isHorizontalMenu ? !has$2(i, 'text') : hasIcons;\n const createItem = i => createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem({\n ...item,\n enabled: false\n });\n } else {\n return createItem(item);\n }\n }));\n const menuLayout = identifyMenuLayout(searchMode);\n const createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, menuLayout);\n };\n const createTieredDataFrom = partialMenu => tieredMenu.singleData(partialMenu.value, partialMenu);\n const createInlineMenuFrom = (partialMenu, columns, focusMode, presets) => {\n const movement = deriveMenuMovement(columns, presets);\n const menuMarkers = markers(presets);\n return {\n data: createTieredDataFrom({\n ...partialMenu,\n movement,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached((comp, _se) => {\n detectSize(comp, 4, menuMarkers.item).each(({numColumns, numRows}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n }),\n menu: {\n markers: markers(presets),\n fakeFocus: focusMode === FocusMode.ContentFocus\n }\n };\n };\n\n const rangeToSimRange = r => SimRange.create(SugarElement.fromDom(r.startContainer), r.startOffset, SugarElement.fromDom(r.endContainer), r.endOffset);\n const register$c = (editor, sharedBackstage) => {\n const autocompleterId = generate$6('autocompleter');\n const processingAction = Cell(false);\n const activeState = Cell(false);\n const activeRange = value$4();\n const autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter'],\n attributes: { id: autocompleterId }\n },\n components: [],\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissAutocompleter', [\n run$1(dismissRequested(), () => cancelIfNecessary()),\n run$1(highlight$1(), (_, se) => {\n getOpt(se.event.target, 'id').each(id => set$9(SugarElement.fromDom(editor.getBody()), 'aria-activedescendant', id));\n })\n ])]),\n lazySink: sharedBackstage.getSink\n }));\n const isMenuOpen = () => InlineView.isOpen(autocompleter);\n const isActive = activeState.get;\n const hideIfNecessary = () => {\n if (isMenuOpen()) {\n InlineView.hide(autocompleter);\n editor.dom.remove(autocompleterId, false);\n const editorBody = SugarElement.fromDom(editor.getBody());\n getOpt(editorBody, 'aria-owns').filter(ariaOwnsAttr => ariaOwnsAttr === autocompleterId).each(() => {\n remove$8(editorBody, 'aria-owns');\n remove$8(editorBody, 'aria-activedescendant');\n });\n }\n };\n const getMenu = () => InlineView.getContent(autocompleter).bind(tmenu => {\n return get$i(tmenu.components(), 0);\n });\n const cancelIfNecessary = () => editor.execCommand('mceAutocompleterClose');\n const getCombinedItems = matches => {\n const columns = findMap(matches, m => Optional.from(m.columns)).getOr(1);\n return bind$3(matches, match => {\n const choices = match.items;\n return createAutocompleteItems(choices, match.matchText, (itemValue, itemMeta) => {\n const autocompleterApi = {\n hide: () => cancelIfNecessary(),\n reload: fetchOptions => {\n hideIfNecessary();\n editor.execCommand('mceAutocompleterReload', false, { fetchOptions });\n }\n };\n editor.execCommand('mceAutocompleterRefreshActiveRange');\n activeRange.get().each(range => {\n processingAction.set(true);\n match.onAction(autocompleterApi, range, itemValue, itemMeta);\n processingAction.set(false);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);\n });\n };\n const display = (lookupData, items) => {\n const columns = findMap(lookupData, ld => Optional.from(ld.columns)).getOr(1);\n InlineView.showMenuAt(autocompleter, {\n anchor: {\n type: 'selection',\n getSelection: () => activeRange.get().map(rangeToSimRange),\n root: SugarElement.fromDom(editor.getBody())\n }\n }, createInlineMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, { menuType: 'normal' }), columns, FocusMode.ContentFocus, 'normal'));\n getMenu().each(Highlighting.highlightFirst);\n };\n const updateDisplay = lookupData => {\n const combinedItems = getCombinedItems(lookupData);\n if (combinedItems.length > 0) {\n display(lookupData, combinedItems);\n set$9(SugarElement.fromDom(editor.getBody()), 'aria-owns', autocompleterId);\n if (!editor.inline) {\n cloneAutocompleterToEditorDoc();\n }\n } else {\n hideIfNecessary();\n }\n };\n const cloneAutocompleterToEditorDoc = () => {\n if (editor.dom.get(autocompleterId)) {\n editor.dom.remove(autocompleterId, false);\n }\n const docElm = editor.getDoc().documentElement;\n const selection = editor.selection.getNode();\n const newElm = deep(autocompleter.element);\n setAll(newElm, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px',\n top: `${ selection.offsetTop }px`,\n left: `${ selection.offsetLeft }px`\n });\n editor.dom.add(docElm, newElm.dom);\n descendant(newElm, '[role=\"menu\"]').each(child => {\n remove$7(child, 'position');\n remove$7(child, 'max-height');\n });\n };\n editor.on('AutocompleterStart', ({lookupData}) => {\n activeState.set(true);\n processingAction.set(false);\n updateDisplay(lookupData);\n });\n editor.on('AutocompleterUpdate', ({lookupData}) => updateDisplay(lookupData));\n editor.on('AutocompleterUpdateActiveRange', ({range}) => activeRange.set(range));\n editor.on('AutocompleterEnd', () => {\n hideIfNecessary();\n activeState.set(false);\n processingAction.set(false);\n activeRange.clear();\n });\n const autocompleterUiApi = {\n cancelIfNecessary,\n isMenuOpen,\n isActive,\n isProcessingAction: processingAction.get,\n getMenu\n };\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n };\n const Autocompleter = { register: register$c };\n\n const closest = (scope, selector, isRoot) => closest$1(scope, selector, isRoot).isSome();\n\n const DelayedFunction = (fun, delay) => {\n let ref = null;\n const schedule = (...args) => {\n ref = setTimeout(() => {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n const cancel = () => {\n if (ref !== null) {\n clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel,\n schedule\n };\n };\n\n const SIGNIFICANT_MOVE = 5;\n const LONGPRESS_DELAY = 400;\n const getTouch = event => {\n const raw = event.raw;\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Optional.none();\n }\n return Optional.some(raw.touches[0]);\n };\n const isFarEnough = (touch, data) => {\n const distX = Math.abs(touch.clientX - data.x);\n const distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n const monitor = settings => {\n const startData = value$4();\n const longpressFired = Cell(false);\n const longpress$1 = DelayedFunction(event => {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n const handleTouchstart = event => {\n getTouch(event).each(touch => {\n longpress$1.cancel();\n const data = {\n x: touch.clientX,\n y: touch.clientY,\n target: event.target\n };\n longpress$1.schedule(event);\n longpressFired.set(false);\n startData.set(data);\n });\n return Optional.none();\n };\n const handleTouchmove = event => {\n longpress$1.cancel();\n getTouch(event).each(touch => {\n startData.on(data => {\n if (isFarEnough(touch, data)) {\n startData.clear();\n }\n });\n });\n return Optional.none();\n };\n const handleTouchend = event => {\n longpress$1.cancel();\n const isSame = data => eq(data.target, event.target);\n return startData.get().filter(isSame).map(_data => {\n if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n const handlers = wrapAll([\n {\n key: touchstart(),\n value: handleTouchstart\n },\n {\n key: touchmove(),\n value: handleTouchmove\n },\n {\n key: touchend(),\n value: handleTouchend\n }\n ]);\n const fireIfReady = (event, type) => get$h(handlers, type).bind(handler => handler(event));\n return { fireIfReady };\n };\n\n const isDangerous = event => {\n const keyEv = event.raw;\n return keyEv.which === BACKSPACE[0] && !contains$2([\n 'input',\n 'textarea'\n ], name$3(event.target)) && !closest(event.target, '[contenteditable=\"true\"]');\n };\n const setup$d = (container, rawSettings) => {\n const settings = {\n stopBackspace: true,\n ...rawSettings\n };\n const pointerEvents = [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'gesturestart',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n const tapEvent = monitor(settings);\n const simpleEvents = map$2(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'transitioncancel',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), type => bind(container, type, event => {\n tapEvent.fireIfReady(event, type).each(tapStopped => {\n if (tapStopped) {\n event.kill();\n }\n });\n const stopped = settings.triggerEvent(type, event);\n if (stopped) {\n event.kill();\n }\n }));\n const pasteTimeout = value$4();\n const onPaste = bind(container, 'paste', event => {\n tapEvent.fireIfReady(event, 'paste').each(tapStopped => {\n if (tapStopped) {\n event.kill();\n }\n });\n const stopped = settings.triggerEvent('paste', event);\n if (stopped) {\n event.kill();\n }\n pasteTimeout.set(setTimeout(() => {\n settings.triggerEvent(postPaste(), event);\n }, 0));\n });\n const onKeydown = bind(container, 'keydown', event => {\n const stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace && isDangerous(event)) {\n event.prevent();\n }\n });\n const onFocusIn = bind(container, 'focusin', event => {\n const stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n const focusoutTimeout = value$4();\n const onFocusOut = bind(container, 'focusout', event => {\n const stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(setTimeout(() => {\n settings.triggerEvent(postBlur(), event);\n }, 0));\n });\n const unbind = () => {\n each$1(simpleEvents, e => {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.on(clearTimeout);\n focusoutTimeout.on(clearTimeout);\n };\n return { unbind };\n };\n\n const derive = (rawEvent, rawTarget) => {\n const source = get$h(rawEvent, 'target').getOr(rawTarget);\n return Cell(source);\n };\n\n const fromSource = (event, source) => {\n const stopper = Cell(false);\n const cutter = Cell(false);\n const stop = () => {\n stopper.set(true);\n };\n const cut = () => {\n cutter.set(true);\n };\n return {\n stop,\n cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event,\n setSource: source.set,\n getSource: source.get\n };\n };\n const fromExternal = event => {\n const stopper = Cell(false);\n const stop = () => {\n stopper.set(true);\n };\n return {\n stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: never,\n event,\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n\n const adt$1 = Adt.generate([\n { stopped: [] },\n { resume: ['element'] },\n { complete: [] }\n ]);\n const doTriggerHandler = (lookup, eventType, rawEvent, target, source, logger) => {\n const handler = lookup(eventType, target);\n const simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(() => {\n logger.logEventNoHandlers(eventType, target);\n return adt$1.complete();\n }, handlerInfo => {\n const descHandler = handlerInfo.descHandler;\n const eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n } else {\n return parent(handlerInfo.element).fold(() => {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n }, parent => {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.resume(parent);\n });\n }\n });\n };\n const doTriggerOnUntilStopped = (lookup, eventType, rawEvent, rawTarget, source, logger) => doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(always, parent => doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger), never);\n const triggerHandler = (lookup, eventType, rawEvent, target, logger) => {\n const source = derive(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n const broadcast = (listeners, rawEvent, _logger) => {\n const simulatedEvent = fromExternal(rawEvent);\n each$1(listeners, listener => {\n const descHandler = listener.descHandler;\n const handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n const triggerUntilStopped = (lookup, eventType, rawEvent, logger) => triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n const triggerOnUntilStopped = (lookup, eventType, rawEvent, rawTarget, logger) => {\n const source = derive(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n const eventHandler = (element, descHandler) => ({\n element,\n descHandler\n });\n const broadcastHandler = (id, handler) => ({\n id,\n descHandler: handler\n });\n const EventRegistry = () => {\n const registry = {};\n const registerId = (extraArgs, id, events) => {\n each(events, (v, k) => {\n const handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n const findHandler = (handlers, elem) => read(elem).bind(id => get$h(handlers, id)).map(descHandler => eventHandler(elem, descHandler));\n const filterByType = type => get$h(registry, type).map(handlers => mapToArray(handlers, (f, id) => broadcastHandler(id, f))).getOr([]);\n const find = (isAboveRoot, type, target) => get$h(registry, type).bind(handlers => closest$4(target, elem => findHandler(handlers, elem), isAboveRoot));\n const unregisterId = id => {\n each(registry, (handlersById, _eventName) => {\n if (has$2(handlersById, id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId,\n unregisterId,\n filterByType,\n find\n };\n };\n\n const Registry = () => {\n const events = EventRegistry();\n const components = {};\n const readOrTag = component => {\n const elem = component.element;\n return read(elem).getOrThunk(() => write('uid-', component.element));\n };\n const failOnDuplicate = (component, tagId) => {\n const conflict = components[tagId];\n if (conflict === component) {\n unregister(component);\n } else {\n throw new Error('The tagId \"' + tagId + '\" is already used by: ' + element(conflict.element) + '\\nCannot use it for: ' + element(component.element) + '\\n' + 'The conflicting element is' + (inBody(conflict.element) ? ' ' : ' not ') + 'already in the DOM');\n }\n };\n const register = component => {\n const tagId = readOrTag(component);\n if (hasNonNullableKey(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n const extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events);\n components[tagId] = component;\n };\n const unregister = component => {\n read(component.element).each(tagId => {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n const filter = type => events.filterByType(type);\n const find = (isAboveRoot, type, target) => events.find(isAboveRoot, type, target);\n const getById = id => get$h(components, id);\n return {\n find,\n filter,\n register,\n unregister,\n getById\n };\n };\n\n const factory$j = detail => {\n const {attributes, ...domWithoutAttributes} = detail.dom;\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation',\n ...attributes\n },\n ...domWithoutAttributes\n },\n components: detail.components,\n behaviours: get$4(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n const Container = single({\n name: 'Container',\n factory: factory$j,\n configFields: [\n defaulted('components', []),\n field('containerBehaviours', []),\n defaulted('events', {}),\n defaulted('domModification', {}),\n defaulted('eventOrder', {})\n ]\n });\n\n const takeover = root => {\n const isAboveRoot = el => parent(root.element).fold(always, parent => eq(el, parent));\n const registry = Registry();\n const lookup = (eventName, target) => registry.find(isAboveRoot, eventName, target);\n const domEvents = setup$d(root.element, {\n triggerEvent: (eventName, event) => {\n return monitorEvent(eventName, event.target, logger => triggerUntilStopped(lookup, eventName, event, logger));\n }\n });\n const systemApi = {\n debugInfo: constant$1('real'),\n triggerEvent: (eventName, target, data) => {\n monitorEvent(eventName, target, logger => triggerOnUntilStopped(lookup, eventName, data, target, logger));\n },\n triggerFocus: (target, originator) => {\n read(target).fold(() => {\n focus$3(target);\n }, _alloyId => {\n monitorEvent(focus$4(), target, logger => {\n triggerHandler(lookup, focus$4(), {\n originator,\n kill: noop,\n prevent: noop,\n target\n }, target, logger);\n return false;\n });\n });\n },\n triggerEscape: (comp, simulatedEvent) => {\n systemApi.triggerEvent('keydown', comp.element, simulatedEvent.event);\n },\n getByUid: uid => {\n return getByUid(uid);\n },\n getByDom: elem => {\n return getByDom(elem);\n },\n build: build$1,\n buildOrPatch: buildOrPatch,\n addToGui: c => {\n add(c);\n },\n removeFromGui: c => {\n remove(c);\n },\n addToWorld: c => {\n addToWorld(c);\n },\n removeFromWorld: c => {\n removeFromWorld(c);\n },\n broadcast: message => {\n broadcast$1(message);\n },\n broadcastOn: (channels, message) => {\n broadcastOn(channels, message);\n },\n broadcastEvent: (eventName, event) => {\n broadcastEvent(eventName, event);\n },\n isConnected: always\n };\n const addToWorld = component => {\n component.connect(systemApi);\n if (!isText(component.element)) {\n registry.register(component);\n each$1(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, { target: component.element });\n }\n };\n const removeFromWorld = component => {\n if (!isText(component.element)) {\n each$1(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n const add = component => {\n attach(root, component);\n };\n const remove = component => {\n detach(component);\n };\n const destroy = () => {\n domEvents.unbind();\n remove$6(root.element);\n };\n const broadcastData = data => {\n const receivers = registry.filter(receive());\n each$1(receivers, receiver => {\n const descHandler = receiver.descHandler;\n const handler = getCurried(descHandler);\n handler(data);\n });\n };\n const broadcast$1 = message => {\n broadcastData({\n universal: true,\n data: message\n });\n };\n const broadcastOn = (channels, message) => {\n broadcastData({\n universal: false,\n channels,\n data: message\n });\n };\n const broadcastEvent = (eventName, event) => {\n const listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n const getByUid = uid => registry.getById(uid).fold(() => Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.')), Result.value);\n const getByDom = elem => {\n const uid = read(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root,\n element: root.element,\n destroy,\n add,\n remove,\n getByUid,\n getByDom,\n addToWorld,\n removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn,\n broadcastEvent\n };\n };\n\n const renderBar = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-bar',\n 'tox-form__controls-h-stack'\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n });\n\n const schema$j = constant$1([\n defaulted('prefix', 'form-field'),\n field('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n const parts$d = constant$1([\n optional({\n schema: [required$1('dom')],\n name: 'label'\n }),\n optional({\n factory: {\n sketch: spec => {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: spec => {\n const excludeFactory = exclude(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [required$1('factory')],\n name: 'field'\n })\n ]);\n\n const factory$i = (detail, components, _spec, _externals) => {\n const behaviours = augment(detail.fieldBehaviours, [\n Composing.config({\n find: container => {\n return getPart(container, detail, 'field');\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: field => {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: (field, value) => {\n Composing.getCurrent(field).each(current => {\n Representing.setValue(current, value);\n });\n }\n }\n })\n ]);\n const events = derive$2([runOnAttached((component, _simulatedEvent) => {\n const ps = getParts(component, detail, [\n 'label',\n 'field',\n 'aria-descriptor'\n ]);\n ps.field().each(field => {\n const id = generate$6(detail.prefix);\n ps.label().each(label => {\n set$9(label.element, 'for', id);\n set$9(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(descriptor => {\n const descriptorId = generate$6(detail.prefix);\n set$9(descriptor.element, 'id', descriptorId);\n set$9(field.element, 'aria-describedby', descriptorId);\n });\n });\n })]);\n const apis = {\n getField: container => getPart(container, detail, 'field'),\n getLabel: container => getPart(container, detail, 'label')\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours,\n events,\n apis\n };\n };\n const FormField = composite({\n name: 'FormField',\n configFields: schema$j(),\n partFields: parts$d(),\n factory: factory$i,\n apis: {\n getField: (apis, comp) => apis.getField(comp),\n getLabel: (apis, comp) => apis.getLabel(comp)\n }\n });\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n const renderFormFieldWith = (pLabel, pField, extraClasses, extraBehaviours) => {\n const spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n const renderFormField = (pLabel, pField) => renderFormFieldWith(pLabel, pField, [], []);\n const renderFormFieldSpecWith = (pLabel, pField, extraClasses, extraBehaviours) => ({\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n });\n const renderFormFieldDom = () => renderFormFieldDomWith([]);\n const renderFormFieldDomWith = extraClasses => ({\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n });\n const renderLabel$3 = (label, providersBackstage) => FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providersBackstage.translate(label))]\n });\n\n const formChangeEvent = generate$6('form-component-change');\n const formCloseEvent = generate$6('form-close');\n const formCancelEvent = generate$6('form-cancel');\n const formActionEvent = generate$6('form-action');\n const formSubmitEvent = generate$6('form-submit');\n const formBlockEvent = generate$6('form-block');\n const formUnblockEvent = generate$6('form-unblock');\n const formTabChangeEvent = generate$6('form-tabchange');\n const formResizeEvent = generate$6('form-resize');\n\n const renderCollection = (spec, providersBackstage, initialData) => {\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const icons = providersBackstage.icons();\n const getIcon = icon => {\n var _a;\n return (_a = icons[icon]) !== null && _a !== void 0 ? _a : icon;\n };\n const runOnItem = f => (comp, se) => {\n closest$1(se.event.target, '[data-collection-item-value]').each(target => {\n f(comp, se, target, get$g(target, 'data-collection-item-value'));\n });\n };\n const setContents = (comp, items) => {\n const disabled = providersBackstage.checkUiComponentContext('mode:design').shouldDisable || providersBackstage.isDisabled();\n const disabledClass = disabled ? ' tox-collection__item--state-disabled' : '';\n const htmlLines = map$2(items, item => {\n const itemText = global$5.translate(item.text);\n const textContent = spec.columns === 1 ? `
${ itemText }
` : '';\n const iconContent = `
${ getIcon(item.icon) }
`;\n const mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n const ariaLabel = itemText.replace(/\\_| \\- |\\-/g, match => mapItemName[match]);\n return `
${ iconContent }${ textContent }
`;\n });\n const chunks = spec.columns !== 'auto' && spec.columns > 1 ? chunk$1(htmlLines, spec.columns) : [htmlLines];\n const html = map$2(chunks, ch => `
${ ch.join('') }
`);\n set$6(comp.element, html.join(''));\n };\n const onClick = runOnItem((comp, se, tgt, itemValue) => {\n se.stop();\n if (!(providersBackstage.checkUiComponentContext('mode:design').shouldDisable || providersBackstage.isDisabled())) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }\n });\n const collectionEvents = [\n run$1(mouseover(), runOnItem((comp, se, tgt) => {\n focus$3(tgt, true);\n })),\n run$1(click(), onClick),\n run$1(tap(), onClick),\n run$1(focusin(), runOnItem((comp, se, tgt) => {\n descendant(comp.element, '.' + activeClass).each(currentActive => {\n remove$3(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run$1(focusout(), runOnItem(comp => {\n descendant(comp.element, '.' + activeClass).each(currentActive => {\n remove$3(currentActive, activeClass);\n blur$1(currentActive);\n });\n })),\n runOnExecute$1(runOnItem((comp, se, tgt, itemValue) => {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n const iterCollectionItems = (comp, applyAttributes) => map$2(descendants(comp.element, '.tox-collection__item'), applyAttributes);\n const pField = FormField.parts.field({\n dom: {\n tag: 'div',\n classes: ['tox-collection'].concat(spec.columns !== 1 ? ['tox-collection--grid'] : ['tox-collection--list'])\n },\n components: [],\n factory: { sketch: identity },\n behaviours: derive$1([\n Disabling.config({\n disabled: () => providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n iterCollectionItems(comp, childElm => {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$9(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: comp => {\n iterCollectionItems(comp, childElm => {\n remove$3(childElm, 'tox-collection__item--state-disabled');\n remove$8(childElm, 'aria-disabled');\n });\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Replacing.config({}),\n Tooltipping.config({\n ...providersBackstage.tooltips.getConfig({\n tooltipText: '',\n onShow: comp => {\n descendant(comp.element, '.' + activeClass + '[data-mce-tooltip]').each(current => {\n getOpt(current, 'data-mce-tooltip').each(text => {\n Tooltipping.setComponents(comp, providersBackstage.tooltips.getComponents({ tooltipText: text }));\n });\n });\n }\n }),\n mode: 'children-keyboard-focus',\n anchor: comp => ({\n type: 'node',\n node: descendant(comp.element, '.' + activeClass).orThunk(() => first$1('.tox-collection__item')),\n root: comp.element,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n },\n bubble: nu$5(0, -2, {})\n })\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialData.getOr([])\n },\n onSetValue: (comp, items) => {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(({numRows, numColumns}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }),\n Tabstopping.config({}),\n Keying.config(deriveCollectionMovement(spec.columns, 'normal')),\n config('collection-events', collectionEvents)\n ]),\n eventOrder: {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'collection-events'\n ],\n [focusin()]: [\n 'collection-events',\n 'tooltipping'\n ]\n }\n });\n const extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n const ariaElements = [\n 'input',\n 'textarea'\n ];\n const isAriaElement = elem => {\n const name = name$3(elem);\n return contains$2(ariaElements, name);\n };\n const markValid = (component, invalidConfig) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$3(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(notifyInfo => {\n if (isAriaElement(component.element)) {\n set$9(component.element, 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(container => {\n set$6(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n const markInvalid = (component, invalidConfig, invalidState, text) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(notifyInfo => {\n if (isAriaElement(component.element)) {\n set$9(component.element, 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(container => {\n set$6(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n const query = (component, invalidConfig, _invalidState) => invalidConfig.validator.fold(() => Future.pure(Result.value(true)), validatorInfo => validatorInfo.validate(component));\n const run = (component, invalidConfig, invalidState) => {\n invalidConfig.notify.each(notifyInfo => {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).map(valid => {\n if (component.getSystem().isConnected()) {\n return valid.fold(err => {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, v => {\n markValid(component, invalidConfig);\n return Result.value(v);\n });\n } else {\n return Result.error('No longer in system');\n }\n });\n };\n const isInvalid = (component, invalidConfig) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n return has(elem, invalidConfig.invalidClass);\n };\n\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run,\n isInvalid: isInvalid\n });\n\n const events$7 = (invalidConfig, invalidState) => invalidConfig.validator.map(validatorInfo => derive$2([run$1(validatorInfo.onEvent, component => {\n run(component, invalidConfig, invalidState).get(identity);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(component => {\n run(component, invalidConfig, invalidState).get(noop);\n })] : []))).getOr({});\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$7\n });\n\n var InvalidateSchema = [\n required$1('invalidClass'),\n defaulted('getRoot', Optional.none),\n optionObjOf('notify', [\n defaulted('aria', 'alert'),\n defaulted('getContainer', Optional.none),\n defaulted('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n required$1('validate'),\n defaulted('onEvent', 'input'),\n defaulted('validateOnLoad', true)\n ])\n ];\n\n const Invalidating = create$4({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: validator => {\n return component => {\n const v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n\n const exhibit$1 = () => nu$8({\n styles: {\n '-webkit-user-select': 'none',\n 'user-select': 'none',\n '-ms-user-select': 'none',\n '-moz-user-select': '-moz-none'\n },\n attributes: { unselectable: 'on' }\n });\n const events$6 = () => derive$2([abort(selectstart(), always)]);\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$6,\n exhibit: exhibit$1\n });\n\n const Unselecting = create$4({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n const renderPanelButton = (spec, sharedBackstage) => Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([\n DisablingConfigs.button(() => sharedBackstage.providers.isDisabled() || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: comp => Future.nu(callback => spec.fetch(callback)).map(items => Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), { movement: deriveMenuMovement(spec.columns, spec.presets) })))),\n parts: { menu: part(false, 1, spec.presets) }\n });\n\n const colorInputChangeEvent = generate$6('color-input-change');\n const colorSwatchChangeEvent = generate$6('color-swatch-change');\n const colorPickerCancelEvent = generate$6('color-picker-cancel');\n const renderColorInput = (spec, sharedBackstage, colorInputBackstage, initialData) => {\n const pField = FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n data: initialData,\n onSetValue: c => Invalidating.run(c).get(noop),\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => sharedBackstage.providers.isDisabled() || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Tabstopping.config({}),\n Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: comp => parentElement(comp.element),\n notify: {\n onValid: comp => {\n const val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, { color: val });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: input => {\n const inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n const span = SugarElement.fromTag('span');\n set$8(span, 'background-color', inputValue);\n const res = getRaw(span, 'background-color').fold(() => Result.error('blah'), _ => Result.value(inputValue));\n return Future.pure(res);\n }\n }\n }\n })\n ]),\n selectOnFocus: false\n });\n const pLabel = spec.label.map(label => renderLabel$3(label, sharedBackstage.providers));\n const emitSwatchChange = (colorBit, value) => {\n emitWith(colorBit, colorSwatchChangeEvent, { value });\n };\n const onItemAction = (comp, value) => {\n memColorButton.getOpt(comp).each(colorBit => {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(valueOpt => {\n valueOpt.fold(() => emit(colorBit, colorPickerCancelEvent), value => {\n emitSwatchChange(colorBit, value);\n addColor(spec.storageKey, value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\n }\n });\n };\n const memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: { 'aria-label': sharedBackstage.providers.translate('Color swatch') }\n },\n layouts: {\n onRtl: () => [\n southwest$2,\n southeast$2,\n south$2\n ],\n onLtr: () => [\n southeast$2,\n southwest$2,\n south$2\n ]\n },\n components: [],\n fetch: getFetch$1(colorInputBackstage.getColors(spec.storageKey), spec.storageKey, colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(spec.storageKey),\n presets: 'color',\n onItemAction,\n context: spec.context\n }, sharedBackstage));\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: pLabel.toArray().concat([{\n dom: {\n tag: 'div',\n classes: ['tox-color-input']\n },\n components: [\n pField,\n memColorButton.asSpec()\n ]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [\n run$1(colorInputChangeEvent, (comp, se) => {\n memColorButton.getOpt(comp).each(colorButton => {\n set$8(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, { name: spec.name });\n }),\n run$1(colorSwatchChangeEvent, (comp, se) => {\n FormField.getField(comp).each(field => {\n Representing.setValue(field, se.event.value);\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }),\n run$1(colorPickerCancelEvent, (comp, _se) => {\n FormField.getField(comp).each(_field => {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })\n ])])\n });\n };\n\n const labelPart = optional({\n schema: [required$1('dom')],\n name: 'label'\n });\n const edgePart = name => optional({\n name: '' + name + '-edge',\n overrides: detail => {\n const action = detail.model.manager.edgeActions[name];\n return action.fold(() => ({}), a => ({\n events: derive$2([\n runActionExtra(touchstart(), (comp, se, d) => a(comp, d), [detail]),\n runActionExtra(mousedown(), (comp, se, d) => a(comp, d), [detail]),\n runActionExtra(mousemove(), (comp, se, det) => {\n if (det.mouseIsDown.get()) {\n a(comp, det);\n }\n }, [detail])\n ])\n }));\n }\n });\n const tlEdgePart = edgePart('top-left');\n const tedgePart = edgePart('top');\n const trEdgePart = edgePart('top-right');\n const redgePart = edgePart('right');\n const brEdgePart = edgePart('bottom-right');\n const bedgePart = edgePart('bottom');\n const blEdgePart = edgePart('bottom-left');\n const ledgePart = edgePart('left');\n const thumbPart = required({\n name: 'thumb',\n defaults: constant$1({ dom: { styles: { position: 'absolute' } } }),\n overrides: detail => {\n return {\n events: derive$2([\n redirectToPart(touchstart(), detail, 'spectrum'),\n redirectToPart(touchmove(), detail, 'spectrum'),\n redirectToPart(touchend(), detail, 'spectrum'),\n redirectToPart(mousedown(), detail, 'spectrum'),\n redirectToPart(mousemove(), detail, 'spectrum'),\n redirectToPart(mouseup(), detail, 'spectrum')\n ])\n };\n }\n });\n const isShift = event => isShift$1(event.event);\n const spectrumPart = required({\n schema: [customField('mouseIsDown', () => Cell(false))],\n name: 'spectrum',\n overrides: detail => {\n const modelDetail = detail.model;\n const model = modelDetail.manager;\n const setValueFrom = (component, simulatedEvent) => model.getValueFromEvent(simulatedEvent).map(value => model.setValueFrom(component, detail, value));\n return {\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onLeft: (spectrum, event) => model.onLeft(spectrum, detail, isShift(event)),\n onRight: (spectrum, event) => model.onRight(spectrum, detail, isShift(event)),\n onUp: (spectrum, event) => model.onUp(spectrum, detail, isShift(event)),\n onDown: (spectrum, event) => model.onDown(spectrum, detail, isShift(event))\n }),\n Tabstopping.config({}),\n Focusing.config({})\n ]),\n events: derive$2([\n run$1(touchstart(), setValueFrom),\n run$1(touchmove(), setValueFrom),\n run$1(mousedown(), setValueFrom),\n run$1(mousemove(), (spectrum, se) => {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ])\n };\n }\n });\n var SliderParts = [\n labelPart,\n ledgePart,\n redgePart,\n tedgePart,\n bedgePart,\n tlEdgePart,\n trEdgePart,\n blEdgePart,\n brEdgePart,\n thumbPart,\n spectrumPart\n ];\n\n const _sliderChangeEvent = 'slider.change.value';\n const sliderChangeEvent = constant$1(_sliderChangeEvent);\n const isTouchEvent$2 = evt => evt.type.indexOf('touch') !== -1;\n const getEventSource = simulatedEvent => {\n const evt = simulatedEvent.event.raw;\n if (isTouchEvent$2(evt)) {\n const touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Optional.some(touchEvent.touches[0]).map(t => SugarPosition(t.clientX, t.clientY)) : Optional.none();\n } else {\n const mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Optional.some(mouseEvent).map(me => SugarPosition(me.clientX, me.clientY)) : Optional.none();\n }\n };\n\n const t = 'top', r = 'right', b = 'bottom', l = 'left';\n const minX = detail => detail.model.minX;\n const minY = detail => detail.model.minY;\n const min1X = detail => detail.model.minX - 1;\n const min1Y = detail => detail.model.minY - 1;\n const maxX = detail => detail.model.maxX;\n const maxY = detail => detail.model.maxY;\n const max1X = detail => detail.model.maxX + 1;\n const max1Y = detail => detail.model.maxY + 1;\n const range = (detail, max, min) => max(detail) - min(detail);\n const xRange = detail => range(detail, maxX, minX);\n const yRange = detail => range(detail, maxY, minY);\n const halfX = detail => xRange(detail) / 2;\n const halfY = detail => yRange(detail) / 2;\n const step = (detail, useMultiplier) => useMultiplier ? detail.stepSize * detail.speedMultiplier : detail.stepSize;\n const snap = detail => detail.snapToGrid;\n const snapStart = detail => detail.snapStart;\n const rounded = detail => detail.rounded;\n const hasEdge = (detail, edgeName) => detail[edgeName + '-edge'] !== undefined;\n const hasLEdge = detail => hasEdge(detail, l);\n const hasREdge = detail => hasEdge(detail, r);\n const hasTEdge = detail => hasEdge(detail, t);\n const hasBEdge = detail => hasEdge(detail, b);\n const currentValue = detail => detail.model.value.get();\n\n const xyValue = (x, y) => ({\n x,\n y\n });\n const fireSliderChange$3 = (component, value) => {\n emitWith(component, sliderChangeEvent(), { value });\n };\n const setToTLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n const setToTEdge = (edge, detail) => {\n fireSliderChange$3(edge, min1Y(detail));\n };\n const setToTEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n const setToTREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n const setToREdge = (edge, detail) => {\n fireSliderChange$3(edge, max1X(detail));\n };\n const setToREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), halfY(detail)));\n };\n const setToBREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n const setToBEdge = (edge, detail) => {\n fireSliderChange$3(edge, max1Y(detail));\n };\n const setToBEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n const setToBLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n const setToLEdge = (edge, detail) => {\n fireSliderChange$3(edge, min1X(detail));\n };\n const setToLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n const reduceBy = (value, min, max, step) => {\n if (value < min) {\n return value;\n } else if (value > max) {\n return max;\n } else if (value === min) {\n return min - 1;\n } else {\n return Math.max(min, value - step);\n }\n };\n const increaseBy = (value, min, max, step) => {\n if (value > max) {\n return value;\n } else if (value < min) {\n return min;\n } else if (value === max) {\n return max + 1;\n } else {\n return Math.min(max, value + step);\n }\n };\n const capValue = (value, min, max) => Math.max(min, Math.min(max, value));\n const snapValueOf = (value, min, max, step, snapStart) => snapStart.fold(() => {\n const initValue = value - min;\n const extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, start => {\n const remainder = (value - start) % step;\n const adjustment = Math.round(remainder / step);\n const rawSteps = Math.floor((value - start) / step);\n const maxSteps = Math.floor((max - start) / step);\n const numSteps = Math.min(maxSteps, rawSteps + adjustment);\n const r = start + numSteps * step;\n return Math.max(start, r);\n });\n const findOffsetOf = (value, min, max) => Math.min(max, Math.max(value, min)) - min;\n const findValueOf = args => {\n const {min, max, range, value, step, snap, snapStart, rounded, hasMinEdge, hasMaxEdge, minBound, maxBound, screenRange} = args;\n const capMin = hasMinEdge ? min - 1 : min;\n const capMax = hasMaxEdge ? max + 1 : max;\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n const offset = findOffsetOf(value, minBound, maxBound);\n const newValue = capValue(offset / screenRange * range + min, capMin, capMax);\n if (snap && newValue >= min && newValue <= max) {\n return snapValueOf(newValue, min, max, step, snapStart);\n } else if (rounded) {\n return Math.round(newValue);\n } else {\n return newValue;\n }\n }\n };\n const findOffsetOfValue$2 = args => {\n const {min, max, range, value, hasMinEdge, hasMaxEdge, maxBound, maxOffset, centerMinEdge, centerMaxEdge} = args;\n if (value < min) {\n return hasMinEdge ? 0 : centerMinEdge;\n } else if (value > max) {\n return hasMaxEdge ? maxBound : centerMaxEdge;\n } else {\n return (value - min) / range * maxOffset;\n }\n };\n\n const top = 'top', right = 'right', bottom = 'bottom', left = 'left', width = 'width', height = 'height';\n const getBounds = component => component.element.dom.getBoundingClientRect();\n const getBoundsProperty = (bounds, property) => bounds[property];\n const getMinXBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, left);\n };\n const getMaxXBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, right);\n };\n const getMinYBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, top);\n };\n const getMaxYBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, bottom);\n };\n const getXScreenRange = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, width);\n };\n const getYScreenRange = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, height);\n };\n const getCenterOffsetOf = (componentMinEdge, componentMaxEdge, spectrumMinEdge) => (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n const getXCenterOffSetOf = (component, spectrum) => {\n const componentBounds = getBounds(component);\n const spectrumBounds = getBounds(spectrum);\n const componentMinEdge = getBoundsProperty(componentBounds, left);\n const componentMaxEdge = getBoundsProperty(componentBounds, right);\n const spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n const getYCenterOffSetOf = (component, spectrum) => {\n const componentBounds = getBounds(component);\n const spectrumBounds = getBounds(spectrum);\n const componentMinEdge = getBoundsProperty(componentBounds, top);\n const componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n const spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n const fireSliderChange$2 = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const findValueOfOffset$1 = (spectrum, detail, left) => {\n const args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: left,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n maxBound: getMaxXBounds(spectrum),\n screenRange: getXScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n const setValueFrom$2 = (spectrum, detail, value) => {\n const xValue = findValueOfOffset$1(spectrum, detail, value);\n const sliderVal = xValue;\n fireSliderChange$2(spectrum, sliderVal);\n return xValue;\n };\n const setToMin$2 = (spectrum, detail) => {\n const min = minX(detail);\n fireSliderChange$2(spectrum, min);\n };\n const setToMax$2 = (spectrum, detail) => {\n const max = maxX(detail);\n fireSliderChange$2(spectrum, max);\n };\n const moveBy$2 = (direction, spectrum, detail, useMultiplier) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const xValue = f(currentValue(detail), minX(detail), maxX(detail), step(detail, useMultiplier));\n fireSliderChange$2(spectrum, xValue);\n return Optional.some(xValue);\n };\n const handleMovement$2 = direction => (spectrum, detail, useMultiplier) => moveBy$2(direction, spectrum, detail, useMultiplier).map(always);\n const getValueFromEvent$2 = simulatedEvent => {\n const pos = getEventSource(simulatedEvent);\n return pos.map(p => p.left);\n };\n const findOffsetOfValue$1 = (spectrum, detail, value, minEdge, maxEdge) => {\n const minOffset = 0;\n const maxOffset = getXScreenRange(spectrum);\n const centerMinEdge = minEdge.bind(edge => Optional.some(getXCenterOffSetOf(edge, spectrum))).getOr(minOffset);\n const centerMaxEdge = maxEdge.bind(edge => Optional.some(getXCenterOffSetOf(edge, spectrum))).getOr(maxOffset);\n const args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset,\n centerMinEdge,\n centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n const findPositionOfValue$1 = (slider, spectrum, value, minEdge, maxEdge, detail) => {\n const offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n const setPositionFromValue$2 = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n const thumbRadius = get$d(thumb.element) / 2;\n set$8(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n const onLeft$2 = handleMovement$2(-1);\n const onRight$2 = handleMovement$2(1);\n const onUp$2 = Optional.none;\n const onDown$2 = Optional.none;\n const edgeActions$2 = {\n 'top-left': Optional.none(),\n 'top': Optional.none(),\n 'top-right': Optional.none(),\n 'right': Optional.some(setToREdge),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.none(),\n 'bottom-left': Optional.none(),\n 'left': Optional.some(setToLEdge)\n };\n\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$2,\n findPositionOfValue: findPositionOfValue$1,\n setPositionFromValue: setPositionFromValue$2,\n onLeft: onLeft$2,\n onRight: onRight$2,\n onUp: onUp$2,\n onDown: onDown$2,\n edgeActions: edgeActions$2\n });\n\n const fireSliderChange$1 = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const findValueOfOffset = (spectrum, detail, top) => {\n const args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: top,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n maxBound: getMaxYBounds(spectrum),\n screenRange: getYScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n const setValueFrom$1 = (spectrum, detail, value) => {\n const yValue = findValueOfOffset(spectrum, detail, value);\n const sliderVal = yValue;\n fireSliderChange$1(spectrum, sliderVal);\n return yValue;\n };\n const setToMin$1 = (spectrum, detail) => {\n const min = minY(detail);\n fireSliderChange$1(spectrum, min);\n };\n const setToMax$1 = (spectrum, detail) => {\n const max = maxY(detail);\n fireSliderChange$1(spectrum, max);\n };\n const moveBy$1 = (direction, spectrum, detail, useMultiplier) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const yValue = f(currentValue(detail), minY(detail), maxY(detail), step(detail, useMultiplier));\n fireSliderChange$1(spectrum, yValue);\n return Optional.some(yValue);\n };\n const handleMovement$1 = direction => (spectrum, detail, useMultiplier) => moveBy$1(direction, spectrum, detail, useMultiplier).map(always);\n const getValueFromEvent$1 = simulatedEvent => {\n const pos = getEventSource(simulatedEvent);\n return pos.map(p => {\n return p.top;\n });\n };\n const findOffsetOfValue = (spectrum, detail, value, minEdge, maxEdge) => {\n const minOffset = 0;\n const maxOffset = getYScreenRange(spectrum);\n const centerMinEdge = minEdge.bind(edge => Optional.some(getYCenterOffSetOf(edge, spectrum))).getOr(minOffset);\n const centerMaxEdge = maxEdge.bind(edge => Optional.some(getYCenterOffSetOf(edge, spectrum))).getOr(maxOffset);\n const args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset,\n centerMinEdge,\n centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n const findPositionOfValue = (slider, spectrum, value, minEdge, maxEdge, detail) => {\n const offset = findOffsetOfValue(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n const setPositionFromValue$1 = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const pos = findPositionOfValue(slider, edges.getSpectrum(slider), value, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n const thumbRadius = get$e(thumb.element) / 2;\n set$8(thumb.element, 'top', pos - thumbRadius + 'px');\n };\n const onLeft$1 = Optional.none;\n const onRight$1 = Optional.none;\n const onUp$1 = handleMovement$1(-1);\n const onDown$1 = handleMovement$1(1);\n const edgeActions$1 = {\n 'top-left': Optional.none(),\n 'top': Optional.some(setToTEdge),\n 'top-right': Optional.none(),\n 'right': Optional.none(),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.some(setToBEdge),\n 'bottom-left': Optional.none(),\n 'left': Optional.none()\n };\n\n var VerticalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue$1,\n onLeft: onLeft$1,\n onRight: onRight$1,\n onUp: onUp$1,\n onDown: onDown$1,\n edgeActions: edgeActions$1\n });\n\n const fireSliderChange = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const sliderValue = (x, y) => ({\n x,\n y\n });\n const setValueFrom = (spectrum, detail, value) => {\n const xValue = findValueOfOffset$1(spectrum, detail, value.left);\n const yValue = findValueOfOffset(spectrum, detail, value.top);\n const val = sliderValue(xValue, yValue);\n fireSliderChange(spectrum, val);\n return val;\n };\n const moveBy = (direction, isVerticalMovement, spectrum, detail, useMultiplier) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const xValue = isVerticalMovement ? currentValue(detail).x : f(currentValue(detail).x, minX(detail), maxX(detail), step(detail, useMultiplier));\n const yValue = !isVerticalMovement ? currentValue(detail).y : f(currentValue(detail).y, minY(detail), maxY(detail), step(detail, useMultiplier));\n fireSliderChange(spectrum, sliderValue(xValue, yValue));\n return Optional.some(xValue);\n };\n const handleMovement = (direction, isVerticalMovement) => (spectrum, detail, useMultiplier) => moveBy(direction, isVerticalMovement, spectrum, detail, useMultiplier).map(always);\n const setToMin = (spectrum, detail) => {\n const mX = minX(detail);\n const mY = minY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n const setToMax = (spectrum, detail) => {\n const mX = maxX(detail);\n const mY = maxY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n const getValueFromEvent = simulatedEvent => getEventSource(simulatedEvent);\n const setPositionFromValue = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const xPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n const yPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n const thumbXRadius = get$d(thumb.element) / 2;\n const thumbYRadius = get$e(thumb.element) / 2;\n set$8(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$8(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n const onLeft = handleMovement(-1, false);\n const onRight = handleMovement(1, false);\n const onUp = handleMovement(-1, true);\n const onDown = handleMovement(1, true);\n const edgeActions = {\n 'top-left': Optional.some(setToTLEdgeXY),\n 'top': Optional.some(setToTEdgeXY),\n 'top-right': Optional.some(setToTREdgeXY),\n 'right': Optional.some(setToREdgeXY),\n 'bottom-right': Optional.some(setToBREdgeXY),\n 'bottom': Optional.some(setToBEdgeXY),\n 'bottom-left': Optional.some(setToBLEdgeXY),\n 'left': Optional.some(setToLEdgeXY)\n };\n\n var TwoDModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n getValueFromEvent: getValueFromEvent,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n\n const SliderSchema = [\n defaulted('stepSize', 1),\n defaulted('speedMultiplier', 10),\n defaulted('onChange', noop),\n defaulted('onChoose', noop),\n defaulted('onInit', noop),\n defaulted('onDragStart', noop),\n defaulted('onDragEnd', noop),\n defaulted('snapToGrid', false),\n defaulted('rounded', true),\n option$3('snapStart'),\n requiredOf('model', choose$1('mode', {\n x: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n customField('value', spec => Cell(spec.mode.minX)),\n required$1('getInitialValue'),\n output$1('manager', HorizontalModel)\n ],\n y: [\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', spec => Cell(spec.mode.minY)),\n required$1('getInitialValue'),\n output$1('manager', VerticalModel)\n ],\n xy: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', spec => Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n })),\n required$1('getInitialValue'),\n output$1('manager', TwoDModel)\n ]\n })),\n field('sliderBehaviours', [\n Keying,\n Representing\n ]),\n customField('mouseIsDown', () => Cell(false))\n ];\n\n const sketch$2 = (detail, components, _spec, _externals) => {\n const getThumb = component => getPartOrDie(component, detail, 'thumb');\n const getSpectrum = component => getPartOrDie(component, detail, 'spectrum');\n const getLeftEdge = component => getPart(component, detail, 'left-edge');\n const getRightEdge = component => getPart(component, detail, 'right-edge');\n const getTopEdge = component => getPart(component, detail, 'top-edge');\n const getBottomEdge = component => getPart(component, detail, 'bottom-edge');\n const modelDetail = detail.model;\n const model = modelDetail.manager;\n const refresh = (slider, thumb) => {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge,\n getRightEdge,\n getTopEdge,\n getBottomEdge,\n getSpectrum\n });\n };\n const setValue = (slider, newValue) => {\n modelDetail.value.set(newValue);\n const thumb = getThumb(slider);\n refresh(slider, thumb);\n };\n const changeValue = (slider, newValue) => {\n setValue(slider, newValue);\n const thumb = getThumb(slider);\n detail.onChange(slider, thumb, newValue);\n return Optional.some(true);\n };\n const resetToMin = slider => {\n model.setToMin(slider, detail);\n };\n const resetToMax = slider => {\n model.setToMax(slider, detail);\n };\n const choose = slider => {\n const fireOnChoose = () => {\n getPart(slider, detail, 'thumb').each(thumb => {\n const value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n const wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n };\n const onDragStart = (slider, simulatedEvent) => {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n const onDragEnd = (slider, simulatedEvent) => {\n simulatedEvent.stop();\n detail.onDragEnd(slider, getThumb(slider));\n choose(slider);\n };\n const focusWidget = component => {\n getPart(component, detail, 'spectrum').map(Keying.focusIn);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.sliderBehaviours, [\n Keying.config({\n mode: 'special',\n focusIn: focusWidget\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: _ => {\n return modelDetail.value.get();\n },\n setValue\n }\n }),\n Receiving.config({ channels: { [mouseReleased()]: { onReceive: choose } } })\n ]),\n events: derive$2([\n run$1(sliderChangeEvent(), (slider, simulatedEvent) => {\n changeValue(slider, simulatedEvent.event.value);\n }),\n runOnAttached((slider, _simulatedEvent) => {\n const getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n const thumb = getThumb(slider);\n refresh(slider, thumb);\n const spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n }),\n run$1(touchstart(), onDragStart),\n run$1(touchend(), onDragEnd),\n run$1(mousedown(), (component, event) => {\n focusWidget(component);\n onDragStart(component, event);\n }),\n run$1(mouseup(), onDragEnd)\n ]),\n apis: {\n resetToMin,\n resetToMax,\n setValue,\n refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n const Slider = composite({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch$2,\n apis: {\n setValue: (apis, slider, value) => {\n apis.setValue(slider, value);\n },\n resetToMin: (apis, slider) => {\n apis.resetToMin(slider);\n },\n resetToMax: (apis, slider) => {\n apis.resetToMax(slider);\n },\n refresh: (apis, slider) => {\n apis.refresh(slider);\n }\n }\n });\n\n const fieldsUpdate = generate$6('rgb-hex-update');\n const sliderUpdate = generate$6('slider-update');\n const paletteUpdate = generate$6('palette-update');\n\n const sliderFactory = (translate, getClass) => {\n const spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: { role: 'presentation' }\n }\n });\n const thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: {\n 'role': 'slider',\n 'aria-valuemin': 0,\n 'aria-valuemax': 360,\n 'aria-valuenow': 120\n }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant$1(0)\n },\n components: [\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: (slider, _thumb, value) => {\n set$9(slider.element, 'aria-valuenow', Math.floor(360 - value * 3.6));\n emitWith(slider, sliderUpdate, { value });\n }\n });\n };\n\n const owner$1 = 'form';\n const schema$i = [field('formBehaviours', [Representing])];\n const getPartName$1 = name => '';\n const sketch$1 = fSpec => {\n const parts = (() => {\n const record = [];\n const field = (name, config) => {\n record.push(name);\n return generateOne$1(owner$1, getPartName$1(name), config);\n };\n return {\n field,\n record: constant$1(record)\n };\n })();\n const spec = fSpec(parts);\n const partNames = parts.record();\n const fieldParts = map$2(partNames, n => required({\n name: n,\n pname: getPartName$1(n)\n }));\n return composite$1(owner$1, schema$i, fieldParts, make$4, spec);\n };\n const toResult = (o, e) => o.fold(() => Result.error(e), Result.value);\n const make$4 = (detail, components) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: form => {\n const resPs = getAllParts(form, detail);\n return map$1(resPs, (resPThunk, pName) => resPThunk().bind(v => {\n const opt = Composing.getCurrent(v);\n return toResult(opt, new Error(`Cannot find a current component to extract the value from for form part '${ pName }': ` + element(v.element)));\n }).map(Representing.getValue));\n },\n setValue: (form, values) => {\n each(values, (newValue, key) => {\n getPart(form, detail, key).each(wrapper => {\n Composing.getCurrent(wrapper).each(field => {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n apis: {\n getField: (form, key) => {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n });\n const Form = {\n getField: makeApi((apis, component, key) => apis.getField(component, key)),\n sketch: sketch$1\n };\n\n const validInput = generate$6('valid-input');\n const invalidInput = generate$6('invalid-input');\n const validatingInput = generate$6('validating-input');\n const translatePrefix = 'colorcustom.rgb.';\n const uninitiatedTooltipApi = {\n isEnabled: always,\n setEnabled: noop,\n immediatelyShow: noop,\n immediatelyHide: noop\n };\n const rgbFormFactory = (translate, getClass, onValidHexx, onInvalidHexx, tooltipGetConfig, makeIcon) => {\n const setTooltipEnabled = (enabled, tooltipApi) => {\n const api = tooltipApi.get();\n if (enabled === api.isEnabled()) {\n return;\n }\n api.setEnabled(enabled);\n if (enabled) {\n api.immediatelyShow();\n } else {\n api.immediatelyHide();\n }\n };\n const invalidation = (label, isValid, tooltipApi) => Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: comp => {\n emitWith(comp, validatingInput, { type: label });\n },\n onValid: comp => {\n setTooltipEnabled(false, tooltipApi);\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: comp => {\n setTooltipEnabled(true, tooltipApi);\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: comp => {\n const value = Representing.getValue(comp);\n const res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n const renderTextField = (isValid, name, label, description, data) => {\n const tooltipApi = Cell(uninitiatedTooltipApi);\n const helptext = translate(translatePrefix + 'range');\n const pLabel = FormField.parts.label({\n dom: { tag: 'label' },\n components: [text$2(label)]\n });\n const pField = FormField.parts.field({\n data,\n factory: Input,\n inputAttributes: {\n 'type': 'text',\n 'aria-label': description,\n ...name === 'hex' ? { 'aria-live': 'polite' } : {}\n },\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([\n invalidation(name, isValid, tooltipApi),\n Tabstopping.config({}),\n Tooltipping.config({\n ...tooltipGetConfig({\n tooltipText: '',\n onSetup: comp => {\n tooltipApi.set({\n isEnabled: () => {\n return Tooltipping.isEnabled(comp);\n },\n setEnabled: enabled => {\n return Tooltipping.setEnabled(comp, enabled);\n },\n immediatelyShow: () => {\n return Tooltipping.immediateOpenClose(comp, true);\n },\n immediatelyHide: () => {\n return Tooltipping.immediateOpenClose(comp, false);\n }\n });\n Tooltipping.setEnabled(comp, false);\n },\n onShow: (component, _tooltip) => {\n Tooltipping.setComponents(component, [{\n dom: {\n tag: 'p',\n classes: [getClass('rgb-warning-note')]\n },\n components: [text$2(translate(name === 'hex' ? 'colorcustom.rgb.invalidHex' : 'colorcustom.rgb.invalid'))]\n }]);\n }\n })\n })\n ]),\n onSetValue: input => {\n if (Invalidating.isInvalid(input)) {\n const run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n const errorId = generate$6('aria-invalid');\n const memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n const memStatus = record({\n dom: {\n tag: 'div',\n classes: [getClass('invalid-icon')]\n },\n components: [memInvalidIcon.asSpec()]\n });\n const comps = [\n pLabel,\n pField,\n memStatus.asSpec()\n ];\n const concats = name !== 'hex' ? [FormField.parts['aria-descriptor']({ text: helptext })] : [];\n const components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('rgb-container')]\n },\n components\n };\n };\n const copyRgbToHex = (form, rgba) => {\n const hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(hexField => {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, { hex: hex.value });\n }\n });\n return hex;\n };\n const copyRgbToForm = (form, rgb) => {\n const red = rgb.red;\n const green = rgb.green;\n const blue = rgb.blue;\n Representing.setValue(form, {\n red,\n green,\n blue\n });\n };\n const memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: { 'background-color': 'white' },\n attributes: { role: 'presentation' }\n }\n });\n const updatePreview = (anyInSystem, hex) => {\n memPreview.getOpt(anyInSystem).each(preview => {\n set$8(preview.element, 'background-color', '#' + hex.value);\n });\n };\n const factory = () => {\n const state = {\n red: Cell(Optional.some(255)),\n green: Cell(Optional.some(255)),\n blue: Cell(Optional.some(255)),\n hex: Cell(Optional.some('ffffff'))\n };\n const copyHexToRgb = (form, hex) => {\n const rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n const get = prop => state[prop].get();\n const set = (prop, value) => {\n state[prop].set(value);\n };\n const getValueRgb = () => get('red').bind(red => get('green').bind(green => get('blue').map(blue => rgbaColour(red, green, blue, 1))));\n const setValueRgb = rgb => {\n const red = rgb.red;\n const green = rgb.green;\n const blue = rgb.blue;\n set('red', Optional.some(red));\n set('green', Optional.some(green));\n set('blue', Optional.some(blue));\n };\n const onInvalidInput = (form, simulatedEvent) => {\n const data = simulatedEvent.event;\n if (data.type !== 'hex') {\n set(data.type, Optional.none());\n } else {\n onInvalidHexx(form);\n }\n };\n const onValidHex = (form, value) => {\n onValidHexx(form);\n const hex = hexColour(value);\n set('hex', Optional.some(hex.value));\n const rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate, { hex });\n updatePreview(form, hex);\n };\n const onValidRgb = (form, prop, value) => {\n const val = parseInt(value, 10);\n set(prop, Optional.some(val));\n getValueRgb().each(rgb => {\n const hex = copyRgbToHex(form, rgb);\n emitWith(form, fieldsUpdate, { hex });\n updatePreview(form, hex);\n });\n };\n const isHexInputEvent = data => data.type === 'hex';\n const onValidInput = (form, simulatedEvent) => {\n const data = simulatedEvent.event;\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value);\n } else {\n onValidRgb(form, data.type, data.value);\n }\n };\n const formPartStrings = key => ({\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n });\n const redStrings = formPartStrings('red');\n const greenStrings = formPartStrings('green');\n const blueStrings = formPartStrings('blue');\n const hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(parts => ({\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: { 'aria-label': translate('aria.color.picker') }\n },\n components: [\n parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))),\n parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))),\n parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))),\n parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))),\n memPreview.asSpec()\n ],\n formBehaviours: derive$1([\n Invalidating.config({ invalidClass: getClass('form-invalid') }),\n config('rgb-form-events', [\n run$1(validInput, onValidInput),\n run$1(invalidInput, onInvalidInput),\n run$1(validatingInput, onInvalidInput)\n ])\n ])\n })), {\n apis: {\n updateHex: (form, hex) => {\n Representing.setValue(form, { hex: hex.value });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n const rgbFormSketcher = single({\n factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: (apis, form, hex) => {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n\n const paletteFactory = (translate, getClass) => {\n const spectrumPart = Slider.parts.spectrum({\n dom: {\n tag: 'canvas',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n const thumbPart = Slider.parts.thumb({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: `
`\n }\n });\n const setColour = (canvas, rgba) => {\n const {width, height} = canvas;\n const ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\n }\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n const grdWhite = ctx.createLinearGradient(0, 0, width, 0);\n grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n ctx.fillStyle = grdWhite;\n ctx.fillRect(0, 0, width, height);\n const grdBlack = ctx.createLinearGradient(0, 0, 0, height);\n grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n ctx.fillStyle = grdBlack;\n ctx.fillRect(0, 0, width, height);\n };\n const setPaletteHue = (slider, hue) => {\n const canvas = slider.components()[0].element.dom;\n const hsv = hsvColour(hue, 100, 100);\n const rgba = fromHsv(hsv);\n setColour(canvas, toString(rgba));\n };\n const setPaletteThumb = (slider, hex) => {\n const hsv = fromRgb(fromHex(hex));\n Slider.setValue(slider, {\n x: hsv.saturation,\n y: 100 - hsv.value\n });\n set$9(slider.element, 'aria-valuetext', translate([\n 'Saturation {0}%, Brightness {1}%',\n hsv.saturation,\n hsv.value\n ]));\n };\n const factory = _detail => {\n const getInitialValue = constant$1({\n x: 0,\n y: 0\n });\n const onChange = (slider, _thumb, value) => {\n if (!isNumber(value)) {\n set$9(slider.element, 'aria-valuetext', translate([\n 'Saturation {0}%, Brightness {1}%',\n Math.floor(value.x),\n Math.floor(100 - value.y)\n ]));\n }\n emitWith(slider, paletteUpdate, { value });\n };\n const onInit = (_slider, _thumb, spectrum, _value) => {\n setColour(spectrum.element.dom, toString(red));\n };\n const sliderBehaviours = derive$1([\n Composing.config({ find: Optional.some }),\n Focusing.config({})\n ]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: {\n 'role': 'slider',\n 'aria-valuetext': translate([\n 'Saturation {0}%, Brightness {1}%',\n 0,\n 0\n ])\n },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue\n },\n rounded: false,\n components: [\n spectrumPart,\n thumbPart\n ],\n onChange,\n onInit,\n sliderBehaviours\n });\n };\n const saturationBrightnessPaletteSketcher = single({\n factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setHue: (_apis, slider, hue) => {\n setPaletteHue(slider, hue);\n },\n setThumb: (_apis, slider, hex) => {\n setPaletteThumb(slider, hex);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n\n const makeFactory = (translate, getClass, tooltipConfig, makeIcon) => {\n const factory = detail => {\n const rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex, tooltipConfig, makeIcon);\n const sbPalette = paletteFactory(translate, getClass);\n const hueSliderToDegrees = hue => (100 - hue) / 100 * 360;\n const hueDegreesToSlider = hue => 100 - hue / 360 * 100;\n const state = {\n paletteRgba: Cell(red),\n paletteHue: Cell(0)\n };\n const memSlider = record(sliderFactory(translate, getClass));\n const memPalette = record(sbPalette.sketch({}));\n const memRgb = record(rgbForm.sketch({}));\n const updatePalette = (anyInSystem, _hex, hue) => {\n memPalette.getOpt(anyInSystem).each(palette => {\n sbPalette.setHue(palette, hue);\n });\n };\n const updateFields = (anyInSystem, hex) => {\n memRgb.getOpt(anyInSystem).each(form => {\n rgbForm.updateHex(form, hex);\n });\n };\n const updateSlider = (anyInSystem, _hex, hue) => {\n memSlider.getOpt(anyInSystem).each(slider => {\n Slider.setValue(slider, hueDegreesToSlider(hue));\n });\n };\n const updatePaletteThumb = (anyInSystem, hex) => {\n memPalette.getOpt(anyInSystem).each(palette => {\n sbPalette.setThumb(palette, hex);\n });\n };\n const updateState = (hex, hue) => {\n const rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n state.paletteHue.set(hue);\n };\n const runUpdates = (anyInSystem, hex, hue, updates) => {\n updateState(hex, hue);\n each$1(updates, update => {\n update(anyInSystem, hex, hue);\n });\n };\n const onPaletteUpdate = () => {\n const updates = [updateFields];\n return (form, simulatedEvent) => {\n const value = simulatedEvent.event.value;\n const oldHue = state.paletteHue.get();\n const newHsv = hsvColour(oldHue, value.x, 100 - value.y);\n const newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, oldHue, updates);\n };\n };\n const onSliderUpdate = () => {\n const updates = [\n updatePalette,\n updateFields\n ];\n return (form, simulatedEvent) => {\n const hue = hueSliderToDegrees(simulatedEvent.event.value);\n const oldRgb = state.paletteRgba.get();\n const oldHsv = fromRgb(oldRgb);\n const newHsv = hsvColour(hue, oldHsv.saturation, oldHsv.value);\n const newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, hue, updates);\n };\n };\n const onFieldsUpdate = () => {\n const updates = [\n updatePalette,\n updateSlider,\n updatePaletteThumb\n ];\n return (form, simulatedEvent) => {\n const hex = simulatedEvent.event.hex;\n const hsv = hexToHsv(hex);\n runUpdates(form, hex, hsv.hue, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n memSlider.asSpec(),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run$1(fieldsUpdate, onFieldsUpdate()),\n run$1(paletteUpdate, onPaletteUpdate()),\n run$1(sliderUpdate, onSliderUpdate())\n ]),\n Composing.config({ find: comp => memRgb.getOpt(comp) }),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n const colourPickerSketcher = single({\n name: 'ColourPicker',\n configFields: [\n required$1('dom'),\n defaulted('onValidHex', noop),\n defaulted('onInvalidHex', noop)\n ],\n factory\n });\n return colourPickerSketcher;\n };\n\n const self = () => Composing.config({ find: Optional.some });\n const memento$1 = mem => Composing.config({ find: mem.getOpt });\n const childAt = index => Composing.config({ find: comp => child$2(comp.element, index).bind(element => comp.getSystem().getByDom(element).toOptional()) });\n const ComposingConfigs = {\n self,\n memento: memento$1,\n childAt\n };\n\n const processors = objOf([\n defaulted('preprocess', identity),\n defaulted('postprocess', identity)\n ]);\n const memento = (mem, rawProcessors) => {\n const ps = asRawOrDie$1('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: comp => {\n const other = mem.get(comp);\n const rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: (comp, rawValue) => {\n const newValue = ps.preprocess(rawValue);\n const other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n const withComp = (optInitialValue, getter, setter) => Representing.config({\n store: {\n mode: 'manual',\n ...optInitialValue.map(initialValue => ({ initialValue })).getOr({}),\n getValue: getter,\n setValue: setter\n }\n });\n const withElement = (initialValue, getter, setter) => withComp(initialValue, c => getter(c.element), (c, v) => setter(c.element, v));\n const domHtml = optInitialValue => withElement(optInitialValue, get$8, set$6);\n const memory = initialValue => Representing.config({\n store: {\n mode: 'memory',\n initialValue\n }\n });\n\n const english = {\n 'colorcustom.rgb.red.label': 'R',\n 'colorcustom.rgb.red.description': 'Red channel',\n 'colorcustom.rgb.green.label': 'G',\n 'colorcustom.rgb.green.description': 'Green channel',\n 'colorcustom.rgb.blue.label': 'B',\n 'colorcustom.rgb.blue.description': 'Blue channel',\n 'colorcustom.rgb.hex.label': '#',\n 'colorcustom.rgb.hex.description': 'Hex color code',\n 'colorcustom.rgb.range': 'Range 0 to 255',\n 'colorcustom.rgb.invalid': 'Numbers only, 0 to 255',\n 'colorcustom.rgb.invalidHex': 'Hexadecimal only, 000000 to FFFFFF',\n 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n const translate$1 = providerBackstage => key => {\n if (isString(key)) {\n return providerBackstage.translate(english[key]);\n } else {\n return providerBackstage.translate(key);\n }\n };\n const renderColorPicker = (_spec, providerBackstage, initialData) => {\n const getClass = key => 'tox-' + key;\n const renderIcon = (name, errId, icon = name, label = name) => render$3(icon, {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n attributes: {\n 'title': providerBackstage.translate(label),\n 'aria-live': 'polite',\n ...errId.fold(() => ({}), id => ({ id }))\n }\n }, providerBackstage.icons);\n const colourPickerFactory = makeFactory(translate$1(providerBackstage), getClass, providerBackstage.tooltips.getConfig, renderIcon);\n const onValidHex = form => {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n const onInvalidHex = form => {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n const memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: { role: 'presentation' }\n },\n onValidHex,\n onInvalidHex\n }));\n return {\n dom: { tag: 'div' },\n components: [memPicker.asSpec()],\n behaviours: derive$1([\n withComp(initialData, comp => {\n const picker = memPicker.get(comp);\n const optRgbForm = Composing.getCurrent(picker);\n const optHex = optRgbForm.bind(rgbForm => {\n const formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(hex => '#' + removeLeading(hex, '#')).getOr('');\n }, (comp, newValue) => {\n const pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n const valOpt = Optional.from(pattern.exec(newValue)).bind(matches => get$i(matches, 1));\n const picker = memPicker.get(comp);\n const optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(() => {\n console.log('Can not find form');\n }, rgbForm => {\n Representing.setValue(rgbForm, { hex: valOpt.getOr('') });\n Form.getField(rgbForm, 'hex').each(hexField => {\n emit(hexField, input());\n });\n });\n }),\n ComposingConfigs.self()\n ])\n };\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.Resource');\n\n const isOldCustomEditor = spec => has$2(spec, 'init');\n const renderCustomEditor = spec => {\n const editorApi = value$4();\n const memReplaced = record({ dom: { tag: spec.tag } });\n const initialValue = value$4();\n const focusBehaviour = !isOldCustomEditor(spec) && spec.onFocus.isSome() ? [\n Focusing.config({\n onFocus: comp => {\n spec.onFocus.each(onFocusFn => {\n onFocusFn(comp.element.dom);\n });\n }\n }),\n Tabstopping.config({})\n ] : [];\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('custom-editor-events', [runOnAttached(component => {\n memReplaced.getOpt(component).each(ta => {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$2.load(spec.scriptId, spec.scriptUrl).then(init => init(ta.element.dom, spec.settings))).then(ea => {\n initialValue.on(cvalue => {\n ea.setValue(cvalue);\n });\n initialValue.clear();\n editorApi.set(ea);\n });\n });\n })]),\n withComp(Optional.none(), () => editorApi.get().fold(() => initialValue.get().getOr(''), ed => ed.getValue()), (_component, value) => {\n editorApi.get().fold(() => initialValue.set(value), ed => ed.setValue(value));\n }),\n ComposingConfigs.self()\n ].concat(focusBehaviour)),\n components: [memReplaced.asSpec()]\n };\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const browseFilesEvent = generate$6('browse.files.event');\n const filterByExtension = (files, providersBackstage) => {\n const allowedImageFileTypes = global$1.explode(providersBackstage.getOption('images_file_types'));\n const isFileInAllowedTypes = file => exists(allowedImageFileTypes, type => endsWith(file.name.toLowerCase(), `.${ type.toLowerCase() }`));\n return filter$2(from(files), isFileInAllowedTypes);\n };\n const renderDropZone = (spec, providersBackstage, initialData) => {\n const stopper = (_, se) => {\n se.stop();\n };\n const sequence = actions => (comp, se) => {\n each$1(actions, a => {\n a(comp, se);\n });\n };\n const onDrop = (comp, se) => {\n var _a;\n if (!Disabling.isDisabled(comp)) {\n const transferEvent = se.event.raw;\n emitWith(comp, browseFilesEvent, { files: (_a = transferEvent.dataTransfer) === null || _a === void 0 ? void 0 : _a.files });\n }\n };\n const onSelect = (component, simulatedEvent) => {\n const input = simulatedEvent.event.raw.target;\n emitWith(component, browseFilesEvent, { files: input.files });\n };\n const handleFiles = (component, files) => {\n if (files) {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\n emitWith(component, formChangeEvent, { name: spec.name });\n }\n };\n const memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: { display: 'none' }\n },\n behaviours: derive$1([config('input-file-events', [\n cutter(click()),\n cutter(tap())\n ])])\n });\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const pField = FormField.parts.field({\n factory: Button,\n dom: {\n tag: 'button',\n styles: { position: 'relative' },\n classes: [\n 'tox-button',\n 'tox-button--secondary'\n ]\n },\n components: [\n text$2(providersBackstage.translate('Browse for an image')),\n memInput.asSpec()\n ],\n action: comp => {\n const inputComp = memInput.get(comp);\n inputComp.element.dom.click();\n },\n buttonBehaviours: derive$1([\n ComposingConfigs.self(),\n memory(initialData.getOr([])),\n Tabstopping.config({}),\n DisablingConfigs.button(() => providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ])\n });\n const wrapper = {\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([\n Disabling.config({ disabled: () => providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }),\n config('dropzone-events', [\n run$1('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragover', stopper),\n run$1('drop', sequence([\n stopper,\n onDrop\n ])),\n run$1(change(), onSelect)\n ])\n ]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [\n {\n dom: { tag: 'p' },\n components: [text$2(providersBackstage.translate('Drop an image here'))]\n },\n pField\n ]\n }]\n };\n return renderFormFieldWith(pLabel, wrapper, ['tox-form__group--stretched'], [config('handle-files', [run$1(browseFilesEvent, (comp, se) => {\n FormField.getField(comp).each(field => {\n handleFiles(field, se.event.files);\n });\n })])]);\n };\n\n const renderGrid = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-form__grid',\n `tox-form__grid--${ spec.columns }col`\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n });\n\n const adaptable = (fn, rate) => {\n let timer = null;\n let args = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n args = null;\n }\n };\n const throttle = (...newArgs) => {\n args = newArgs;\n if (isNull(timer)) {\n timer = setTimeout(() => {\n const tempArgs = args;\n timer = null;\n args = null;\n fn.apply(null, tempArgs);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const first = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const beforeObject = generate$6('alloy-fake-before-tabstop');\n const afterObject = generate$6('alloy-fake-after-tabstop');\n const craftWithClasses = classes => {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: { tabindex: '0' },\n classes\n },\n behaviours: derive$1([\n Focusing.config({ ignore: true }),\n Tabstopping.config({})\n ])\n };\n };\n const craft = (containerClasses, spec) => {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-navobj',\n ...containerClasses.getOr([])\n ]\n },\n components: [\n craftWithClasses([beforeObject]),\n spec,\n craftWithClasses([afterObject])\n ],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n const triggerTab = (placeholder, shiftKey) => {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey\n }\n });\n };\n const onFocus = (container, targetComp) => {\n const target = targetComp.element;\n if (has(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n const isPseudoStop = element => {\n return closest(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), never);\n };\n\n const dialogChannel = generate$6('update-dialog');\n const titleChannel = generate$6('update-title');\n const bodyChannel = generate$6('update-body');\n const footerChannel = generate$6('update-footer');\n const bodySendMessageChannel = generate$6('body-send-message');\n const dialogFocusShiftedChannel = generate$6('dialog-focus-shifted');\n\n const browser = detect$1().browser;\n const isSafari = browser.isSafari();\n const isFirefox = browser.isFirefox();\n const isSafariOrFirefox = isSafari || isFirefox;\n const isChromium = browser.isChromium();\n const isElementScrollAtBottom = ({scrollTop, scrollHeight, clientHeight}) => Math.ceil(scrollTop) + clientHeight >= scrollHeight;\n const scrollToY = (win, y) => win.scrollTo(0, y === 'bottom' ? 99999999 : y);\n const getScrollingElement = (doc, html) => {\n const body = doc.body;\n return Optional.from(!/^ 1)) ? body : doc.documentElement);\n };\n const writeValue = (iframeElement, html, fallbackFn) => {\n const iframe = iframeElement.dom;\n Optional.from(iframe.contentDocument).fold(fallbackFn, doc => {\n let lastScrollTop = 0;\n const isScrollAtBottom = getScrollingElement(doc, html).map(el => {\n lastScrollTop = el.scrollTop;\n return el;\n }).forall(isElementScrollAtBottom);\n const scrollAfterWrite = () => {\n const win = iframe.contentWindow;\n if (isNonNullable(win)) {\n if (isScrollAtBottom) {\n scrollToY(win, 'bottom');\n } else if (!isScrollAtBottom && isSafariOrFirefox && lastScrollTop !== 0) {\n scrollToY(win, lastScrollTop);\n }\n }\n };\n if (isSafari) {\n iframe.addEventListener('load', scrollAfterWrite, { once: true });\n }\n doc.open();\n doc.write(html);\n doc.close();\n if (!isSafari) {\n scrollAfterWrite();\n }\n });\n };\n const throttleInterval = someIf(isSafariOrFirefox, isSafari ? 500 : 200);\n const writeValueThrottler = throttleInterval.map(interval => adaptable(writeValue, interval));\n const getDynamicSource = (initialData, stream) => {\n const cachedValue = Cell(initialData.getOr(''));\n return {\n getValue: _frameComponent => cachedValue.get(),\n setValue: (frameComponent, html) => {\n if (cachedValue.get() !== html) {\n const iframeElement = frameComponent.element;\n const setSrcdocValue = () => set$9(iframeElement, 'srcdoc', html);\n if (stream) {\n writeValueThrottler.fold(constant$1(writeValue), throttler => throttler.throttle)(iframeElement, html, setSrcdocValue);\n } else {\n setSrcdocValue();\n }\n }\n cachedValue.set(html);\n }\n };\n };\n const renderIFrame = (spec, providersBackstage, initialData) => {\n const baseClass = 'tox-dialog__iframe';\n const opaqueClass = spec.transparent ? [] : [`${ baseClass }--opaque`];\n const containerBorderedClass = spec.border ? [`tox-navobj-bordered`] : [];\n const attributes = {\n ...spec.label.map(title => ({ title })).getOr({}),\n ...initialData.map(html => ({ srcdoc: html })).getOr({}),\n ...spec.sandboxed ? { sandbox: 'allow-scripts allow-same-origin' } : {}\n };\n const sourcing = getDynamicSource(initialData, spec.streamContent);\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const factory = newSpec => craft(Optional.from(containerBorderedClass), {\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes,\n classes: [\n baseClass,\n ...opaqueClass\n ]\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n withComp(initialData, sourcing.getValue, sourcing.setValue),\n Receiving.config({\n channels: {\n [dialogFocusShiftedChannel]: {\n onReceive: (comp, message) => {\n message.newFocus.each(newFocus => {\n parentElement(comp.element).each(parent => {\n const f = eq(comp.element, newFocus) ? add$2 : remove$3;\n f(parent, 'tox-navobj-bordered-focus');\n });\n });\n }\n }\n }\n })\n ])\n });\n const pField = FormField.parts.field({ factory: { sketch: factory } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n const image = image => new Promise((resolve, reject) => {\n const loaded = () => {\n destroy();\n resolve(image);\n };\n const listeners = [\n bind(image, 'load', loaded),\n bind(image, 'error', () => {\n destroy();\n reject('Unable to load data from image: ' + image.dom.src);\n })\n ];\n const destroy = () => each$1(listeners, l => l.unbind());\n if (image.dom.complete) {\n loaded();\n }\n });\n\n const calculateImagePosition = (panelWidth, panelHeight, imageWidth, imageHeight, zoom) => {\n const width = imageWidth * zoom;\n const height = imageHeight * zoom;\n const left = Math.max(0, panelWidth / 2 - width / 2);\n const top = Math.max(0, panelHeight / 2 - height / 2);\n return {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px'\n };\n };\n const zoomToFit = (panel, width, height) => {\n const panelW = get$d(panel);\n const panelH = get$e(panel);\n return Math.min(panelW / width, panelH / height, 1);\n };\n const renderImagePreview = (spec, initialData) => {\n const cachedData = Cell(initialData.getOr({ url: '' }));\n const memImage = record({\n dom: {\n tag: 'img',\n classes: ['tox-imagepreview__image'],\n attributes: initialData.map(data => ({ src: data.url })).getOr({})\n }\n });\n const memContainer = record({\n dom: {\n tag: 'div',\n classes: ['tox-imagepreview__container'],\n attributes: { role: 'presentation' }\n },\n components: [memImage.asSpec()]\n });\n const setValue = (frameComponent, data) => {\n const translatedData = { url: data.url };\n data.zoom.each(z => translatedData.zoom = z);\n data.cachedWidth.each(z => translatedData.cachedWidth = z);\n data.cachedHeight.each(z => translatedData.cachedHeight = z);\n cachedData.set(translatedData);\n const applyFramePositioning = () => {\n const {cachedWidth, cachedHeight, zoom} = translatedData;\n if (!isUndefined(cachedWidth) && !isUndefined(cachedHeight)) {\n if (isUndefined(zoom)) {\n const z = zoomToFit(frameComponent.element, cachedWidth, cachedHeight);\n translatedData.zoom = z;\n }\n const position = calculateImagePosition(get$d(frameComponent.element), get$e(frameComponent.element), cachedWidth, cachedHeight, translatedData.zoom);\n memContainer.getOpt(frameComponent).each(container => {\n setAll(container.element, position);\n });\n }\n };\n memImage.getOpt(frameComponent).each(imageComponent => {\n const img = imageComponent.element;\n if (data.url !== get$g(img, 'src')) {\n set$9(img, 'src', data.url);\n remove$3(frameComponent.element, 'tox-imagepreview__loaded');\n }\n applyFramePositioning();\n image(img).then(img => {\n if (frameComponent.getSystem().isConnected()) {\n add$2(frameComponent.element, 'tox-imagepreview__loaded');\n translatedData.cachedWidth = img.dom.naturalWidth;\n translatedData.cachedHeight = img.dom.naturalHeight;\n applyFramePositioning();\n }\n });\n });\n };\n const styles = {};\n spec.height.each(h => styles.height = h);\n const fakeValidatedData = initialData.map(d => ({\n url: d.url,\n zoom: Optional.from(d.zoom),\n cachedWidth: Optional.from(d.cachedWidth),\n cachedHeight: Optional.from(d.cachedHeight)\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-imagepreview'],\n styles,\n attributes: { role: 'presentation' }\n },\n components: [memContainer.asSpec()],\n behaviours: derive$1([\n ComposingConfigs.self(),\n withComp(fakeValidatedData, () => cachedData.get(), setValue)\n ])\n };\n };\n\n const renderLabel$2 = (spec, backstageShared, getCompByName) => {\n const baseClass = 'tox-label';\n const centerClass = spec.align === 'center' ? [`${ baseClass }--center`] : [];\n const endClass = spec.align === 'end' ? [`${ baseClass }--end`] : [];\n const label = record({\n dom: {\n tag: 'label',\n classes: [\n baseClass,\n ...centerClass,\n ...endClass\n ]\n },\n components: [text$2(backstageShared.providers.translate(spec.label))]\n });\n const comps = map$2(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [\n label.asSpec(),\n ...comps\n ],\n behaviours: derive$1([\n ComposingConfigs.self(),\n Replacing.config({}),\n domHtml(Optional.none()),\n Keying.config({ mode: 'acyclic' }),\n config('label', [runOnAttached(comp => {\n spec.for.each(name => {\n getCompByName(name).each(target => {\n label.getOpt(comp).each(labelComp => {\n var _a;\n const id = (_a = get$g(target.element, 'id')) !== null && _a !== void 0 ? _a : generate$6('form-field');\n set$9(target.element, 'id', id);\n set$9(labelComp.element, 'for', id);\n });\n });\n });\n })])\n ])\n };\n };\n\n const internalToolbarButtonExecute = generate$6('toolbar.button.execute');\n const onToolbarButtonExecute = info => runOnExecute$1((comp, _simulatedEvent) => {\n runWithApi(info, comp)(itemApi => {\n emitWith(comp, internalToolbarButtonExecute, { buttonApi: itemApi });\n info.onAction(itemApi);\n });\n });\n const commonButtonDisplayEvent = generate$6('common-button-display-events');\n const toolbarButtonEventOrder = {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events',\n 'tooltipping'\n ],\n [attachedToDom()]: [\n 'toolbar-button-events',\n commonButtonDisplayEvent\n ],\n [detachedFromDom()]: [\n 'toolbar-button-events',\n 'dropdown-events',\n 'tooltipping'\n ],\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n commonButtonDisplayEvent\n ]\n };\n\n const forceInitialSize = comp => set$8(comp.element, 'width', get$f(comp.element, 'width'));\n\n const renderIcon$1 = (iconName, iconsProvider, behaviours) => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ],\n behaviours\n }, iconsProvider);\n const renderIconFromPack$1 = (iconName, iconsProvider) => renderIcon$1(iconName, iconsProvider, []);\n const renderReplaceableIconFromPack = (iconName, iconsProvider) => renderIcon$1(iconName, iconsProvider, [Replacing.config({})]);\n const renderLabel$1 = (text, prefix, providersBackstage) => ({\n dom: {\n tag: 'span',\n classes: [`${ prefix }__select-label`]\n },\n components: [text$2(providersBackstage.translate(text))],\n behaviours: derive$1([Replacing.config({})])\n });\n\n const updateMenuText = generate$6('update-menu-text');\n const updateMenuIcon = generate$6('update-menu-icon');\n const renderCommonDropdown = (spec, prefix, sharedBackstage, btnName) => {\n const editorOffCell = Cell(noop);\n const optMemDisplayText = spec.text.map(text => record(renderLabel$1(text, prefix, sharedBackstage.providers)));\n const optMemDisplayIcon = spec.icon.map(iconName => record(renderReplaceableIconFromPack(iconName, sharedBackstage.providers.icons)));\n const onLeftOrRightInMenu = (comp, se) => {\n const dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', { raw: se.event.raw });\n Dropdown.close(dropdown);\n return Optional.some(true);\n };\n const role = spec.role.fold(() => ({}), role => ({ role }));\n const listRole = Optional.from(spec.listRole).map(listRole => ({ listRole })).getOr({});\n const ariaLabelAttribute = spec.ariaLabel.fold(() => ({}), ariaLabel => {\n const translatedAriaLabel = sharedBackstage.providers.translate(ariaLabel);\n return { 'aria-label': translatedAriaLabel };\n });\n const iconSpec = render$3('chevron-down', {\n tag: 'div',\n classes: [`${ prefix }__select-chevron`]\n }, sharedBackstage.providers.icons);\n const fixWidthBehaviourName = generate$6('common-button-display-events');\n const customEventsName = 'dropdown-events';\n const memDropdown = record(Dropdown.sketch({\n ...spec.uid ? { uid: spec.uid } : {},\n ...role,\n ...listRole,\n dom: {\n tag: 'button',\n classes: [\n prefix,\n `${ prefix }--select`\n ].concat(map$2(spec.classes, c => `${ prefix }--${ c }`)),\n attributes: {\n ...ariaLabelAttribute,\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(mem => mem.asSpec()),\n optMemDisplayText.map(mem => mem.asSpec()),\n Optional.some(iconSpec)\n ]),\n matchWidth: true,\n useMinWidth: true,\n onOpen: (anchor, dropdownComp, tmenuComp) => {\n if (spec.searchable) {\n focusSearchField(tmenuComp);\n }\n },\n dropdownBehaviours: derive$1([\n ...spec.dropdownBehaviours,\n DisablingConfigs.button(() => spec.disabled || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Unselecting.config({}),\n Replacing.config({}),\n ...spec.tooltip.map(t => Tooltipping.config(sharedBackstage.providers.tooltips.getConfig({ tooltipText: sharedBackstage.providers.translate(t) }))).toArray(),\n config(customEventsName, [\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n config(fixWidthBehaviourName, [runOnAttached((comp, _se) => {\n if (spec.listRole !== 'listbox') {\n forceInitialSize(comp);\n }\n })]),\n config('update-dropdown-width-variable', [run$1(windowResize(), (comp, _se) => Dropdown.close(comp))]),\n config('menubutton-update-display-text', [\n run$1(updateMenuText, (comp, se) => {\n optMemDisplayText.bind(mem => mem.getOpt(comp)).each(displayText => {\n Replacing.set(displayText, [text$2(sharedBackstage.providers.translate(se.event.text))]);\n });\n }),\n run$1(updateMenuIcon, (comp, se) => {\n optMemDisplayIcon.bind(mem => mem.getOpt(comp)).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(se.event.icon, sharedBackstage.providers.icons)]);\n });\n })\n ])\n ]),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events',\n 'normal-dropdown-events'\n ],\n [attachedToDom()]: [\n 'toolbar-button-events',\n Tooltipping.name(),\n customEventsName,\n fixWidthBehaviourName\n ]\n }),\n sandboxBehaviours: derive$1([\n Keying.config({\n mode: 'special',\n onLeft: onLeftOrRightInMenu,\n onRight: onLeftOrRightInMenu\n }),\n config('dropdown-sandbox-events', [\n run$1(refetchTriggerEvent, (originalSandboxComp, se) => {\n handleRefetchTrigger(originalSandboxComp);\n se.stop();\n }),\n run$1(redirectMenuItemInteractionEvent, (sandboxComp, se) => {\n handleRedirectToMenuItem(sandboxComp, se);\n se.stop();\n })\n ])\n ]),\n lazySink: sharedBackstage.getSink,\n toggleClass: `${ prefix }--active`,\n parts: {\n menu: {\n ...part(false, spec.columns, spec.presets),\n fakeFocus: spec.searchable,\n ...spec.listRole === 'listbox' ? {} : {\n onHighlightItem: updateAriaOnHighlight,\n onCollapseMenu: (tmenuComp, itemCompCausingCollapse, nowActiveMenuComp) => {\n Highlighting.getHighlighted(nowActiveMenuComp).each(itemComp => {\n updateAriaOnHighlight(tmenuComp, nowActiveMenuComp, itemComp);\n });\n },\n onDehighlightItem: updateAriaOnDehighlight\n }\n }\n },\n getAnchorOverrides: () => {\n return {\n maxHeightFunction: (element, available) => {\n anchored()(element, available - 10);\n }\n };\n },\n fetch: comp => Future.nu(curry(spec.fetch, comp))\n }));\n return memDropdown.asSpec();\n };\n\n const isMenuItemReference = item => isString(item);\n const isSeparator$2 = item => item.type === 'separator';\n const isExpandingMenuItem = item => has$2(item, 'getSubmenuItems');\n const separator$2 = { type: 'separator' };\n const unwrapReferences = (items, menuItems) => {\n const realItems = foldl(items, (acc, item) => {\n if (isMenuItemReference(item)) {\n if (item === '') {\n return acc;\n } else if (item === '|') {\n return acc.length > 0 && !isSeparator$2(acc[acc.length - 1]) ? acc.concat([separator$2]) : acc;\n } else if (has$2(menuItems, item.toLowerCase())) {\n return acc.concat([menuItems[item.toLowerCase()]]);\n } else {\n return acc;\n }\n } else {\n return acc.concat([item]);\n }\n }, []);\n if (realItems.length > 0 && isSeparator$2(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n return realItems;\n };\n const getFromExpandingItem = (item, menuItems) => {\n const submenuItems = item.getSubmenuItems();\n const rest = expand(submenuItems, menuItems);\n const newMenus = deepMerge(rest.menus, { [item.value]: rest.items });\n const newExpansions = deepMerge(rest.expansions, { [item.value]: item.value });\n return {\n item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n const generateValueIfRequired = item => {\n const itemValue = get$h(item, 'value').getOrThunk(() => generate$6('generated-menu-item'));\n return deepMerge({ value: itemValue }, item);\n };\n const expand = (items, menuItems) => {\n const realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, (acc, item) => {\n if (isExpandingMenuItem(item)) {\n const itemWithValue = generateValueIfRequired(item);\n const newData = getFromExpandingItem(itemWithValue, menuItems);\n return {\n menus: deepMerge(acc.menus, newData.menus),\n items: [\n newData.item,\n ...acc.items\n ],\n expansions: deepMerge(acc.expansions, newData.expansions)\n };\n } else {\n return {\n ...acc,\n items: [\n item,\n ...acc.items\n ]\n };\n }\n }, {\n menus: {},\n expansions: {},\n items: []\n });\n };\n\n const getSearchModeForField = settings => {\n return settings.search.fold(() => ({ searchMode: 'no-search' }), searchSettings => ({\n searchMode: 'search-with-field',\n placeholder: searchSettings.placeholder\n }));\n };\n const getSearchModeForResults = settings => {\n return settings.search.fold(() => ({ searchMode: 'no-search' }), _ => ({ searchMode: 'search-with-results' }));\n };\n const build = (items, itemResponse, backstage, settings) => {\n const primary = generate$6('primary-menu');\n const data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Optional.none();\n }\n const mainMenuSearchMode = getSearchModeForField(settings);\n const mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, settings.isHorizontalMenu, mainMenuSearchMode);\n const submenuSearchMode = getSearchModeForResults(settings);\n const submenus = map$1(data.menus, (menuItems, menuName) => createPartialMenu(menuName, menuItems, itemResponse, backstage, false, submenuSearchMode));\n const menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Optional.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n\n const isSingleListItem = item => !has$2(item, 'items');\n const dataAttribute = 'data-value';\n const fetchItems = (dropdownComp, name, items, selectedValue, hasNestedItems) => map$2(items, item => {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: () => fetchItems(dropdownComp, name, item.items, selectedValue, hasNestedItems)\n };\n } else {\n return {\n type: 'togglemenuitem',\n ...hasNestedItems ? {} : { role: 'option' },\n text: item.text,\n value: item.value,\n active: item.value === selectedValue,\n onAction: () => {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, { name });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n const findItemByValue = (items, value) => findMap(items, item => {\n if (!isSingleListItem(item)) {\n return findItemByValue(item.items, value);\n } else {\n return someIf(item.value === value, item);\n }\n });\n const renderListBox = (spec, backstage, initialData) => {\n const hasNestedItems = exists(spec.items, item => !isSingleListItem(item));\n const providersBackstage = backstage.shared.providers;\n const initialItem = initialData.bind(value => findItemByValue(spec.items, value)).orThunk(() => head(spec.items).filter(isSingleListItem));\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: sketchSpec => renderCommonDropdown({\n context: spec.context,\n uid: sketchSpec.uid,\n text: initialItem.map(item => item.text),\n icon: Optional.none(),\n tooltip: Optional.none(),\n role: someIf(!hasNestedItems, 'combobox'),\n ...hasNestedItems ? {} : { listRole: 'listbox' },\n ariaLabel: spec.label,\n fetch: (comp, callback) => {\n const items = fetchItems(comp, spec.name, spec.items, Representing.getValue(comp), hasNestedItems);\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n }));\n },\n onSetup: constant$1(noop),\n getApi: constant$1({}),\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [\n Tabstopping.config({}),\n withComp(initialItem.map(item => item.value), comp => get$g(comp.element, dataAttribute), (comp, data) => {\n findItemByValue(spec.items, data).each(item => {\n set$9(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, { text: item.text });\n });\n })\n ]\n }, 'tox-listbox', backstage.shared)\n }\n });\n const listBoxWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-listboxfield']\n },\n components: [pField]\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [listBoxWrap]\n ]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n const renderPanel = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map$2(spec.items, backstage.shared.interpreter)\n });\n\n const factory$h = (detail, _spec) => {\n const options = map$2(detail.options, option => ({\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n }));\n const initialValues = detail.data.map(v => wrap$1('initialValue', v)).getOr({});\n return {\n uid: detail.uid,\n dom: {\n tag: 'select',\n classes: detail.selectClasses,\n attributes: detail.selectAttributes\n },\n components: options,\n behaviours: augment(detail.selectBehaviours, [\n Focusing.config({}),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: select => {\n return get$7(select.element);\n },\n setValue: (select, newValue) => {\n const firstOption = head(detail.options);\n const found = find$5(detail.options, opt => opt.value === newValue);\n if (found.isSome()) {\n set$5(select.element, newValue);\n } else if (select.element.dom.selectedIndex === -1 && newValue === '') {\n firstOption.each(value => set$5(select.element, value.value));\n }\n },\n ...initialValues\n }\n })\n ])\n };\n };\n const HtmlSelect = single({\n name: 'HtmlSelect',\n configFields: [\n required$1('options'),\n field('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted('selectClasses', []),\n defaulted('selectAttributes', {}),\n option$3('data')\n ],\n factory: factory$h\n });\n\n const renderSelectBox = (spec, providersBackstage, initialData) => {\n const translatedOptions = map$2(spec.items, item => ({\n text: providersBackstage.translate(item.text),\n value: item.value\n }));\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const pField = FormField.parts.field({\n dom: {},\n ...initialData.map(data => ({ data })).getOr({}),\n selectAttributes: { size: spec.size },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n Tabstopping.config({}),\n config('selectbox-change', [run$1(change(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n const chevron = spec.size > 1 ? Optional.none() : Optional.some(render$3('chevron-down', {\n tag: 'div',\n classes: ['tox-selectfield__icon-js']\n }, providersBackstage.icons));\n const selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([\n [pField],\n chevron.toArray()\n ])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [selectWrap]\n ]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ])\n });\n };\n\n const schema$h = constant$1([\n defaulted('field1Name', 'field1'),\n defaulted('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers$1(['lockClass']),\n defaulted('locked', false),\n SketchBehaviours.field('coupledFieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n const getField = (comp, detail, partName) => getPart(comp, detail, partName).bind(Composing.getCurrent);\n const coupledPart = (selfName, otherName) => required({\n factory: FormField,\n name: selfName,\n overrides: detail => {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run$1(input(), me => {\n getField(me, detail, otherName).each(other => {\n getPart(me, detail, 'lock').each(lock => {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n });\n });\n })])])\n };\n }\n });\n const parts$c = constant$1([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'lock',\n overrides: detail => {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n })\n ]);\n\n const factory$g = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [\n Composing.config({ find: Optional.some }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: comp => {\n const parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n return {\n [detail.field1Name]: Representing.getValue(parts.field1()),\n [detail.field2Name]: Representing.getValue(parts.field2())\n };\n },\n setValue: (comp, value) => {\n const parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n if (hasNonNullableKey(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasNonNullableKey(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })\n ]),\n apis: {\n getField1: component => getPart(component, detail, 'field1'),\n getField2: component => getPart(component, detail, 'field2'),\n getLock: component => getPart(component, detail, 'lock')\n }\n });\n const FormCoupledInputs = composite({\n name: 'FormCoupledInputs',\n configFields: schema$h(),\n partFields: parts$c(),\n factory: factory$g,\n apis: {\n getField1: (apis, component) => apis.getField1(component),\n getField2: (apis, component) => apis.getField2(component),\n getLock: (apis, component) => apis.getLock(component)\n }\n });\n\n const formatSize = size => {\n const unitDec = {\n '': 0,\n 'px': 0,\n 'pt': 1,\n 'mm': 1,\n 'pc': 2,\n 'ex': 2,\n 'em': 2,\n 'ch': 2,\n 'rem': 2,\n 'cm': 3,\n 'in': 4,\n '%': 4\n };\n const maxDecimal = unit => unit in unitDec ? unitDec[unit] : 1;\n let numText = size.value.toFixed(maxDecimal(size.unit));\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n return numText + size.unit;\n };\n const parseSize = sizeText => {\n const numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n const match = numPattern.exec(sizeText);\n if (match !== null) {\n const value = parseFloat(match[1]);\n const unit = match[2];\n return Result.value({\n value,\n unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n const convertUnit = (size, unit) => {\n const inInch = {\n '': 96,\n 'px': 96,\n 'pt': 72,\n 'cm': 2.54,\n 'pc': 12,\n 'mm': 25.4,\n 'in': 1\n };\n const supported = u => has$2(inInch, u);\n if (size.unit === unit) {\n return Optional.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Optional.some(size.value);\n } else {\n return Optional.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Optional.none();\n }\n };\n const noSizeConversion = _input => Optional.none();\n const ratioSizeConversion = (scale, unit) => size => convertUnit(size, unit).map(value => ({\n value: value * scale,\n unit\n }));\n const makeRatioConverter = (currentFieldText, otherFieldText) => {\n const cValue = parseSize(currentFieldText).toOptional();\n const oValue = parseSize(otherFieldText).toOptional();\n return lift2(cValue, oValue, (cSize, oSize) => convertUnit(cSize, oSize.unit).map(val => oSize.value / val).map(r => ratioSizeConversion(r, oSize.unit)).getOr(noSizeConversion)).getOr(noSizeConversion);\n };\n\n const renderSizeInput = (spec, providersBackstage) => {\n let converter = noSizeConversion;\n const ratioEvent = generate$6('ratio-event');\n const makeIcon = iconName => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__' + iconName\n ]\n }, providersBackstage.icons);\n const label = spec.label.getOr('Constrain proportions');\n const translatedLabel = providersBackstage.translate(label);\n const pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: {\n 'aria-label': translatedLabel,\n 'data-mce-name': label\n }\n },\n components: [\n makeIcon('lock'),\n makeIcon('unlock')\n ],\n buttonBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Tabstopping.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: translatedLabel }))\n ])\n });\n const formGroup = components => ({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components\n });\n const getFieldPart = isField1 => FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Tabstopping.config({}),\n config('size-input-events', [\n run$1(focusin(), (component, _simulatedEvent) => {\n emitWith(component, ratioEvent, { isField1 });\n }),\n run$1(change(), (component, _simulatedEvent) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ])\n ]),\n selectOnFocus: false\n });\n const getLabel = label => ({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providersBackstage.translate(label))]\n });\n const widthField = FormCoupledInputs.parts.field1(formGroup([\n FormField.parts.label(getLabel('Width')),\n getFieldPart(true)\n ]));\n const heightField = FormCoupledInputs.parts.field2(formGroup([\n FormField.parts.label(getLabel('Height')),\n getFieldPart(false)\n ]));\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: [\n widthField,\n heightField,\n formGroup([\n getLabel(nbsp),\n pLock\n ])\n ]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: (current, other, _lock) => {\n parseSize(Representing.getValue(current)).each(size => {\n converter(size).each(newSize => {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('mode:design')),\n config('size-input-events2', [run$1(ratioEvent, (component, simulatedEvent) => {\n const isField1 = simulatedEvent.event.isField1;\n const optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n const optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n const value1 = optCurrent.map(Representing.getValue).getOr('');\n const value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])\n ])\n });\n };\n\n const renderSlider = (spec, providerBackstage, initialData) => {\n const labelPart = Slider.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providerBackstage.translate(spec.label))]\n });\n const spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: { role: 'presentation' }\n }\n });\n const thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: { role: 'presentation' }\n },\n model: {\n mode: 'x',\n minX: spec.min,\n maxX: spec.max,\n getInitialValue: constant$1(initialData.getOrThunk(() => (Math.abs(spec.max) - Math.abs(spec.min)) / 2))\n },\n components: [\n labelPart,\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([\n ComposingConfigs.self(),\n Focusing.config({})\n ]),\n onChoose: (component, thumb, value) => {\n emitWith(component, formChangeEvent, {\n name: spec.name,\n value\n });\n },\n onChange: (component, thumb, value) => {\n emitWith(component, formChangeEvent, {\n name: spec.name,\n value\n });\n }\n });\n };\n\n const renderTable = (spec, providersBackstage) => {\n const renderTh = text => ({\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n });\n const renderHeader = header => ({\n dom: { tag: 'thead' },\n components: [{\n dom: { tag: 'tr' },\n components: map$2(header, renderTh)\n }]\n });\n const renderTd = text => ({\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n });\n const renderTr = row => ({\n dom: { tag: 'tr' },\n components: map$2(row, renderTd)\n });\n const renderRows = rows => ({\n dom: { tag: 'tbody' },\n components: map$2(rows, renderTr)\n });\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [\n renderHeader(spec.header),\n renderRows(spec.cells)\n ],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n\n const renderTextField = (spec, providersBackstage) => {\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const baseInputBehaviours = [\n Disabling.config({ disabled: () => spec.disabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: comp => {\n emit(comp, formSubmitEvent);\n return Optional.some(true);\n }\n }),\n config('textfield-change', [\n run$1(input(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run$1(postPaste(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ]),\n Tabstopping.config({})\n ];\n const validatingBehaviours = spec.validation.map(vl => Invalidating.config({\n getRoot: input => {\n return parentElement(input.element);\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: input => {\n const v = Representing.getValue(input);\n const result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n })).toArray();\n const placeholder = spec.placeholder.fold(constant$1({}), p => ({ placeholder: providersBackstage.translate(p) }));\n const inputMode = spec.inputMode.fold(constant$1({}), mode => ({ inputmode: mode }));\n const inputAttributes = {\n ...placeholder,\n ...inputMode,\n 'data-mce-name': spec.name\n };\n const pField = FormField.parts.field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n ...spec.data.map(data => ({ data })).getOr({}),\n inputAttributes,\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([\n baseInputBehaviours,\n validatingBehaviours\n ])),\n selectOnFocus: false,\n factory: Input\n });\n const pTextField = spec.multiline ? {\n dom: {\n tag: 'div',\n classes: ['tox-textarea-wrap']\n },\n components: [pField]\n } : pField;\n const extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n const extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n const extraBehaviours = [\n Disabling.config({\n disabled: () => spec.disabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ];\n return renderFormFieldWith(pLabel, pTextField, extraClasses2, extraBehaviours);\n };\n const renderInput = (spec, providersBackstage, initialData) => renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n inputMode: spec.inputMode,\n placeholder: spec.placeholder,\n flex: false,\n disabled: !spec.enabled,\n classname: 'tox-textfield',\n validation: Optional.none(),\n maximized: spec.maximized,\n data: initialData,\n context: spec.context\n }, providersBackstage);\n const renderTextarea = (spec, providersBackstage, initialData) => renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n inputMode: Optional.none(),\n placeholder: spec.placeholder,\n flex: true,\n disabled: !spec.enabled,\n classname: 'tox-textarea',\n validation: Optional.none(),\n maximized: spec.maximized,\n data: initialData,\n context: spec.context\n }, providersBackstage);\n\n const getAnimationRoot = (component, slideConfig) => slideConfig.getAnimationRoot.fold(() => component.element, get => get(component));\n\n const getDimensionProperty = slideConfig => slideConfig.dimension.property;\n const getDimension = (slideConfig, elem) => slideConfig.dimension.getDimension(elem);\n const disableTransitions = (component, slideConfig) => {\n const root = getAnimationRoot(component, slideConfig);\n remove$2(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n const setShrunk = (component, slideConfig) => {\n remove$3(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$8(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n const setGrown = (component, slideConfig) => {\n remove$3(component.element, slideConfig.closedClass);\n add$2(component.element, slideConfig.openClass);\n remove$7(component.element, getDimensionProperty(slideConfig));\n };\n const doImmediateShrink = (component, slideConfig, slideState, _calculatedSize) => {\n slideState.setCollapsed();\n set$8(component.element, getDimensionProperty(slideConfig), getDimension(slideConfig, component.element));\n disableTransitions(component, slideConfig);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n slideConfig.onShrunk(component);\n };\n const doStartShrink = (component, slideConfig, slideState, calculatedSize) => {\n const size = calculatedSize.getOrThunk(() => getDimension(slideConfig, component.element));\n slideState.setCollapsed();\n set$8(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n const root = getAnimationRoot(component, slideConfig);\n remove$3(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n const doStartSmartShrink = (component, slideConfig, slideState) => {\n const size = getDimension(slideConfig, component.element);\n const shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Optional.some(size));\n };\n const doStartGrow = (component, slideConfig, slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n const wasShrinking = has(root, slideConfig.shrinkingClass);\n const beforeSize = getDimension(slideConfig, component.element);\n setGrown(component, slideConfig);\n const fullSize = getDimension(slideConfig, component.element);\n const startPartialGrow = () => {\n set$8(component.element, getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element);\n };\n const startCompleteGrow = () => {\n setShrunk(component, slideConfig);\n };\n const setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$3(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$8(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n const refresh$3 = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n remove$7(component.element, getDimensionProperty(slideConfig));\n const fullSize = getDimension(slideConfig, component.element);\n set$8(component.element, getDimensionProperty(slideConfig), fullSize);\n }\n };\n const grow = (component, slideConfig, slideState) => {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n const shrink = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n const immediateShrink = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState);\n }\n };\n const hasGrown = (component, slideConfig, slideState) => slideState.isExpanded();\n const hasShrunk = (component, slideConfig, slideState) => slideState.isCollapsed();\n const isGrowing = (component, slideConfig, _slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.growingClass) === true;\n };\n const isShrinking = (component, slideConfig, _slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.shrinkingClass) === true;\n };\n const isTransitioning = (component, slideConfig, slideState) => isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\n const toggleGrow = (component, slideConfig, slideState) => {\n const f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\n const immediateGrow = (component, slideConfig, slideState) => {\n if (!slideState.isExpanded()) {\n setGrown(component, slideConfig);\n set$8(component.element, getDimensionProperty(slideConfig), getDimension(slideConfig, component.element));\n disableTransitions(component, slideConfig);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n slideConfig.onGrown(component);\n }\n };\n\n var SlidingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$3,\n grow: grow,\n shrink: shrink,\n immediateShrink: immediateShrink,\n hasGrown: hasGrown,\n hasShrunk: hasShrunk,\n isGrowing: isGrowing,\n isShrinking: isShrinking,\n isTransitioning: isTransitioning,\n toggleGrow: toggleGrow,\n disableTransitions: disableTransitions,\n immediateGrow: immediateGrow\n });\n\n const exhibit = (base, slideConfig, _slideState) => {\n const expanded = slideConfig.expanded;\n return expanded ? nu$8({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$8({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n const events$5 = (slideConfig, slideState) => derive$2([runOnSource(transitionend(), (component, simulatedEvent) => {\n const raw = simulatedEvent.event.raw;\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n if (slideState.isExpanded()) {\n remove$7(component.element, slideConfig.dimension.property);\n }\n const notify = slideState.isExpanded() ? slideConfig.onGrown : slideConfig.onShrunk;\n notify(component);\n }\n })]);\n\n var ActiveSliding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit,\n events: events$5\n });\n\n var SlidingSchema = [\n required$1('closedClass'),\n required$1('openClass'),\n required$1('shrinkingClass'),\n required$1('growingClass'),\n option$3('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted('expanded', false),\n requiredOf('dimension', choose$1('property', {\n width: [\n output$1('property', 'width'),\n output$1('getDimension', elem => get$d(elem) + 'px')\n ],\n height: [\n output$1('property', 'height'),\n output$1('getDimension', elem => get$e(elem) + 'px')\n ]\n }))\n ];\n\n const init$8 = spec => {\n const state = Cell(spec.expanded);\n const readState = () => 'expanded: ' + state.get();\n return nu$7({\n isExpanded: () => state.get() === true,\n isCollapsed: () => state.get() === false,\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState\n });\n };\n\n var SlidingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$8\n });\n\n const Sliding = create$4({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n const getMenuButtonApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setActive: state => {\n const elm = component.element;\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$9(elm, 'aria-pressed', true);\n } else {\n remove$3(elm, 'tox-tbtn--enabled');\n remove$8(elm, 'aria-pressed');\n }\n },\n isActive: () => has(component.element, 'tox-tbtn--enabled'),\n setText: text => {\n emitWith(component, updateMenuText, { text });\n },\n setIcon: icon => emitWith(component, updateMenuIcon, { icon })\n });\n const renderMenuButton = (spec, prefix, backstage, role, tabstopping = true, btnName) => {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n ariaLabel: spec.tooltip,\n searchable: spec.search.isSome(),\n role,\n fetch: (dropdownComp, callback) => {\n const fetchContext = { pattern: spec.search.isSome() ? getSearchPattern(dropdownComp) : '' };\n spec.fetch(items => {\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: spec.search\n }));\n }, fetchContext, getMenuButtonApi(dropdownComp));\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [...tabstopping ? [Tabstopping.config({})] : []],\n context: spec.context\n }, prefix, backstage.shared, btnName);\n };\n const getFetch = (items, getButton, backstage) => {\n const getMenuItemAction = item => api => {\n const newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(sink => {\n getButton().getOpt(sink).each(orig => {\n focus$3(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n const getMenuItemSetup = item => api => {\n api.setActive(item.storage.get());\n };\n return success => {\n success(map$2(items, item => {\n const text = item.text.fold(() => ({}), text => ({ text }));\n return {\n type: item.type,\n active: false,\n ...text,\n context: item.context,\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n };\n }));\n };\n };\n\n const renderLabel = text => ({\n dom: {\n tag: 'span',\n classes: ['tox-tree__label'],\n attributes: { 'aria-label': text }\n },\n components: [text$2(text)]\n });\n const renderCustomStateIcon = (container, components, backstage) => {\n container.customStateIcon.each(icon => components.push(renderIcon(icon, backstage.shared.providers.icons, container.customStateIconTooltip.fold(() => [], tooltip => [Tooltipping.config(backstage.shared.providers.tooltips.getConfig({ tooltipText: tooltip }))]), ['tox-icon-custom-state'], container.customStateIconTooltip.fold(() => ({}), tooltip => ({ title: tooltip })))));\n };\n const leafLabelEventsId = generate$6('leaf-label-event-id');\n const renderLeafLabel = ({leaf, onLeafAction, visible, treeId, selectedId, backstage}) => {\n const internalMenuButton = leaf.menu.map(btn => renderMenuButton(btn, 'tox-mbtn', backstage, Optional.none(), visible));\n const components = [renderLabel(leaf.title)];\n renderCustomStateIcon(leaf, components, backstage);\n internalMenuButton.each(btn => components.push(btn));\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-tree--leaf__label',\n 'tox-trbtn'\n ].concat(visible ? ['tox-tree--leaf__label--visible'] : [])\n },\n components,\n role: 'treeitem',\n action: button => {\n onLeafAction(leaf.id);\n button.getSystem().broadcastOn([`update-active-item-${ treeId }`], { value: leaf.id });\n },\n eventOrder: {\n [keydown()]: [\n leafLabelEventsId,\n 'keying'\n ]\n },\n buttonBehaviours: derive$1([\n ...visible ? [Tabstopping.config({})] : [],\n Toggling.config({\n toggleClass: 'tox-trbtn--enabled',\n toggleOnExecute: false,\n aria: { mode: 'selected' }\n }),\n Receiving.config({\n channels: {\n [`update-active-item-${ treeId }`]: {\n onReceive: (comp, message) => {\n (message.value === leaf.id ? Toggling.on : Toggling.off)(comp);\n }\n }\n }\n }),\n config(leafLabelEventsId, [\n runOnAttached((comp, _se) => {\n selectedId.each(id => {\n const toggle = id === leaf.id ? Toggling.on : Toggling.off;\n toggle(comp);\n });\n }),\n run$1(keydown(), (comp, se) => {\n const isLeftArrowKey = se.event.raw.code === 'ArrowLeft';\n const isRightArrowKey = se.event.raw.code === 'ArrowRight';\n if (isLeftArrowKey) {\n ancestor(comp.element, '.tox-tree--directory').each(dirElement => {\n comp.getSystem().getByDom(dirElement).each(dirComp => {\n child(dirElement, '.tox-tree--directory__label').each(dirLabelElement => {\n dirComp.getSystem().getByDom(dirLabelElement).each(Focusing.focus);\n });\n });\n });\n se.stop();\n } else if (isRightArrowKey) {\n se.stop();\n }\n })\n ])\n ])\n });\n };\n const renderIcon = (iconName, iconsProvider, behaviours, extraClasses, extraAttributes) => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-tree__icon-wrap',\n 'tox-icon'\n ].concat(extraClasses || []),\n behaviours,\n attributes: extraAttributes\n }, iconsProvider);\n const renderIconFromPack = (iconName, iconsProvider) => renderIcon(iconName, iconsProvider, []);\n const directoryLabelEventsId = generate$6('directory-label-event-id');\n const renderDirectoryLabel = ({directory, visible, noChildren, backstage}) => {\n const internalMenuButton = directory.menu.map(btn => renderMenuButton(btn, 'tox-mbtn', backstage, Optional.none()));\n const components = [\n {\n dom: {\n tag: 'div',\n classes: ['tox-chevron']\n },\n components: [renderIconFromPack('chevron-right', backstage.shared.providers.icons)]\n },\n renderLabel(directory.title)\n ];\n renderCustomStateIcon(directory, components, backstage);\n internalMenuButton.each(btn => {\n components.push(btn);\n });\n const toggleExpandChildren = button => {\n ancestor(button.element, '.tox-tree--directory').each(directoryEle => {\n button.getSystem().getByDom(directoryEle).each(directoryComp => {\n const willExpand = !Toggling.isOn(directoryComp);\n Toggling.toggle(directoryComp);\n emitWith(button, 'expand-tree-node', {\n expanded: willExpand,\n node: directory.id\n });\n });\n });\n };\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-tree--directory__label',\n 'tox-trbtn'\n ].concat(visible ? ['tox-tree--directory__label--visible'] : [])\n },\n components,\n action: toggleExpandChildren,\n eventOrder: {\n [keydown()]: [\n directoryLabelEventsId,\n 'keying'\n ]\n },\n buttonBehaviours: derive$1([\n ...visible ? [Tabstopping.config({})] : [],\n config(directoryLabelEventsId, [run$1(keydown(), (comp, se) => {\n const isRightArrowKey = se.event.raw.code === 'ArrowRight';\n const isLeftArrowKey = se.event.raw.code === 'ArrowLeft';\n if (isRightArrowKey && noChildren) {\n se.stop();\n }\n if (isRightArrowKey || isLeftArrowKey) {\n ancestor(comp.element, '.tox-tree--directory').each(directoryEle => {\n comp.getSystem().getByDom(directoryEle).each(directoryComp => {\n if (!Toggling.isOn(directoryComp) && isRightArrowKey || Toggling.isOn(directoryComp) && isLeftArrowKey) {\n toggleExpandChildren(comp);\n se.stop();\n } else if (isLeftArrowKey && !Toggling.isOn(directoryComp)) {\n ancestor(directoryComp.element, '.tox-tree--directory').each(parentDirElement => {\n child(parentDirElement, '.tox-tree--directory__label').each(parentDirLabelElement => {\n directoryComp.getSystem().getByDom(parentDirLabelElement).each(Focusing.focus);\n });\n });\n se.stop();\n }\n });\n });\n }\n })])\n ])\n });\n };\n const renderDirectoryChildren = ({children, onLeafAction, visible, treeId, expandedIds, selectedId, backstage}) => {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-tree--directory__children']\n },\n components: children.map(item => {\n return item.type === 'leaf' ? renderLeafLabel({\n leaf: item,\n selectedId,\n onLeafAction,\n visible,\n treeId,\n backstage\n }) : renderDirectory({\n directory: item,\n expandedIds,\n selectedId,\n onLeafAction,\n labelTabstopping: visible,\n treeId,\n backstage\n });\n }),\n behaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: 'tox-tree--directory__children--closed',\n openClass: 'tox-tree--directory__children--open',\n growingClass: 'tox-tree--directory__children--growing',\n shrinkingClass: 'tox-tree--directory__children--shrinking',\n expanded: visible\n }),\n Replacing.config({})\n ])\n };\n };\n const directoryEventsId = generate$6('directory-event-id');\n const renderDirectory = ({directory, onLeafAction, labelTabstopping, treeId, backstage, expandedIds, selectedId}) => {\n const {children} = directory;\n const expandedIdsCell = Cell(expandedIds);\n const computedChildrenComponents = visible => children.map(item => {\n return item.type === 'leaf' ? renderLeafLabel({\n leaf: item,\n selectedId,\n onLeafAction,\n visible,\n treeId,\n backstage\n }) : renderDirectory({\n directory: item,\n expandedIds: expandedIdsCell.get(),\n selectedId,\n onLeafAction,\n labelTabstopping: visible,\n treeId,\n backstage\n });\n });\n const childrenVisible = expandedIds.includes(directory.id);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-tree--directory'],\n attributes: { role: 'treeitem' }\n },\n components: [\n renderDirectoryLabel({\n directory,\n visible: labelTabstopping,\n noChildren: directory.children.length === 0,\n backstage\n }),\n renderDirectoryChildren({\n children,\n expandedIds,\n selectedId,\n onLeafAction,\n visible: childrenVisible,\n treeId,\n backstage\n })\n ],\n behaviours: derive$1([\n config(directoryEventsId, [\n runOnAttached((comp, _se) => {\n Toggling.set(comp, childrenVisible);\n }),\n run$1('expand-tree-node', (_cmp, se) => {\n const {expanded, node} = se.event;\n expandedIdsCell.set(expanded ? [\n ...expandedIdsCell.get(),\n node\n ] : expandedIdsCell.get().filter(id => id !== node));\n })\n ]),\n Toggling.config({\n ...directory.children.length > 0 ? { aria: { mode: 'expanded' } } : {},\n toggleClass: 'tox-tree--directory--expanded',\n onToggled: (comp, childrenVisible) => {\n const childrenComp = comp.components()[1];\n const newChildren = computedChildrenComponents(childrenVisible);\n if (childrenVisible) {\n Sliding.grow(childrenComp);\n } else {\n Sliding.shrink(childrenComp);\n }\n Replacing.set(childrenComp, newChildren);\n }\n })\n ])\n };\n };\n const treeEventsId = generate$6('tree-event-id');\n const renderTree = (spec, backstage) => {\n const onLeafAction = spec.onLeafAction.getOr(noop);\n const onToggleExpand = spec.onToggleExpand.getOr(noop);\n const defaultExpandedIds = spec.defaultExpandedIds;\n const expandedIds = Cell(defaultExpandedIds);\n const selectedIdCell = Cell(spec.defaultSelectedId);\n const treeId = generate$6('tree-id');\n const children = (selectedId, expandedIds) => spec.items.map(item => {\n return item.type === 'leaf' ? renderLeafLabel({\n leaf: item,\n selectedId,\n onLeafAction,\n visible: true,\n treeId,\n backstage\n }) : renderDirectory({\n directory: item,\n selectedId,\n onLeafAction,\n expandedIds,\n labelTabstopping: true,\n treeId,\n backstage\n });\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-tree'],\n attributes: { role: 'tree' }\n },\n components: children(selectedIdCell.get(), expandedIds.get()),\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: '.tox-tree--leaf__label--visible, .tox-tree--directory__label--visible',\n cycles: false\n }),\n config(treeEventsId, [run$1('expand-tree-node', (_cmp, se) => {\n const {expanded, node} = se.event;\n expandedIds.set(expanded ? [\n ...expandedIds.get(),\n node\n ] : expandedIds.get().filter(id => id !== node));\n onToggleExpand(expandedIds.get(), {\n expanded,\n node\n });\n })]),\n Receiving.config({\n channels: {\n [`update-active-item-${ treeId }`]: {\n onReceive: (comp, message) => {\n selectedIdCell.set(Optional.some(message.value));\n Replacing.set(comp, children(Optional.some(message.value), expandedIds.get()));\n }\n }\n }\n }),\n Replacing.config({})\n ])\n };\n };\n\n const events$4 = (streamConfig, streamState) => {\n const streams = streamConfig.stream.streams;\n const processor = streams.setup(streamConfig, streamState);\n return derive$2([\n run$1(streamConfig.event, processor),\n runOnDetached(() => streamState.cancel())\n ].concat(streamConfig.cancelEvent.map(e => [run$1(e, () => streamState.cancel())]).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$4\n });\n\n const throttle = _config => {\n const state = Cell(null);\n const readState = () => ({ timer: state.get() !== null ? 'set' : 'unset' });\n const setTimer = t => {\n state.set(t);\n };\n const cancel = () => {\n const t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$7({\n readState,\n setTimer,\n cancel\n });\n };\n const init$7 = spec => spec.stream.streams.state(spec);\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n throttle: throttle,\n init: init$7\n });\n\n const setup$c = (streamInfo, streamState) => {\n const sInfo = streamInfo.stream;\n const throttler = last(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return (component, simulatedEvent) => {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [\n requiredOf('stream', choose$1('mode', {\n throttle: [\n required$1('delay'),\n defaulted('stopEvent', true),\n output$1('streams', {\n setup: setup$c,\n state: throttle\n })\n ]\n })),\n defaulted('event', 'input'),\n option$3('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n const Streaming = create$4({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n const setValueFromItem = (model, input, item) => {\n const itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n const setSelectionOn = (input, f) => {\n const el = input.element;\n const value = get$7(el);\n const node = el.dom;\n if (get$g(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n const setCursorAtEnd = input => {\n setSelectionOn(input, (node, value) => node.setSelectionRange(value.length, value.length));\n };\n const setSelectionToEnd = (input, startOffset) => {\n setSelectionOn(input, (node, value) => node.setSelectionRange(startOffset, value.length));\n };\n const attemptSelectOver = (model, input, item) => {\n if (!model.selectsOver) {\n return Optional.none();\n } else {\n const currentValue = Representing.getValue(input);\n const inputDisplay = model.getDisplayText(currentValue);\n const itemValue = Representing.getValue(item);\n const itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay) === 0 ? Optional.some(() => {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay.length);\n }) : Optional.none();\n }\n };\n\n const itemExecute = constant$1('alloy.typeahead.itemexecute');\n\n const make$3 = (detail, components, spec, externals) => {\n const navigateList = (comp, simulatedEvent, highlighter) => {\n detail.previewing.set(false);\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(menu => {\n Highlighting.getHighlighted(menu).fold(() => {\n highlighter(menu);\n }, () => {\n dispatchEvent(sandbox, menu.element, 'keydown', simulatedEvent);\n });\n });\n } else {\n const onOpenSync = sandbox => {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }\n };\n const focusBehaviours$1 = focusBehaviours(detail);\n const mapFetch = comp => tdata => tdata.map(data => {\n const menus = values(data.menus);\n const items = bind$3(menus, menu => filter$2(menu.items, item => item.type === 'item'));\n const repState = Representing.getState(comp);\n repState.update(map$2(items, item => item.data));\n return data;\n });\n const getActiveMenu = sandboxComp => Composing.getCurrent(sandboxComp);\n const typeaheadCustomEvents = 'typeaheadevents';\n const behaviours = [\n Focusing.config({}),\n Representing.config({\n onSetValue: detail.onSetValue,\n store: {\n mode: 'dataset',\n getDataKey: comp => get$7(comp.element),\n getFallbackEntry: itemString => ({\n value: itemString,\n meta: {}\n }),\n setValue: (comp, data) => {\n set$5(comp.element, detail.model.getDisplayText(data));\n },\n ...detail.initialData.map(d => wrap$1('initialValue', d)).getOr({})\n }\n }),\n Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: (component, _simulatedEvent) => {\n const sandbox = Coupling.getCoupled(component, 'sandbox');\n const focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$7(component.element).length >= detail.minChars) {\n const previousValue = getActiveMenu(sandbox).bind(activeMenu => Highlighting.getHighlighted(activeMenu).map(Representing.getValue));\n detail.previewing.set(true);\n const onOpenSync = _sandbox => {\n getActiveMenu(sandbox).each(activeMenu => {\n previousValue.fold(() => {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(activeMenu);\n }\n }, pv => {\n Highlighting.highlightBy(activeMenu, item => {\n const itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(activeMenu).orThunk(() => {\n Highlighting.highlightFirst(activeMenu);\n return Optional.none();\n });\n });\n });\n };\n open(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightJustMenu).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }),\n Keying.config({\n mode: 'special',\n onDown: (comp, simulatedEvent) => {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Optional.some(true);\n },\n onEscape: comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n return Optional.none();\n },\n onUp: (comp, simulatedEvent) => {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.some(true);\n },\n onEnter: comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n const sandboxIsOpen = Sandboxing.isOpen(sandbox);\n if (sandboxIsOpen && !detail.previewing.get()) {\n return getActiveMenu(sandbox).bind(activeMenu => Highlighting.getHighlighted(activeMenu)).map(item => {\n emitWith(comp, itemExecute(), { item });\n return true;\n });\n } else {\n const currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n return Optional.some(true);\n }\n }\n }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: hotspot => {\n return makeSandbox$1(detail, hotspot, {\n onOpen: () => Toggling.on(hotspot),\n onClose: () => {\n detail.lazyTypeaheadComp.get().each(input => remove$8(input.element, 'aria-activedescendant'));\n Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n config(typeaheadCustomEvents, [\n runOnAttached(typeaheadComp => {\n detail.lazyTypeaheadComp.set(Optional.some(typeaheadComp));\n }),\n runOnDetached(_typeaheadComp => {\n detail.lazyTypeaheadComp.set(Optional.none());\n }),\n runOnExecute$1(comp => {\n const onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }),\n run$1(itemExecute(), (comp, se) => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n setValueFromItem(detail.model, comp, se.event.item);\n emit(comp, typeaheadCancel());\n detail.onItemExecute(comp, sandbox, se.event.item, Representing.getValue(comp));\n Sandboxing.close(sandbox);\n setCursorAtEnd(comp);\n })\n ].concat(detail.dismissOnBlur ? [run$1(postBlur(), typeahead => {\n const sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))\n ];\n const eventOrder = {\n [detachedFromDom()]: [\n Representing.name(),\n Streaming.name(),\n typeaheadCustomEvents\n ],\n ...detail.eventOrder\n };\n return {\n uid: detail.uid,\n dom: dom(deepMerge(detail, {\n inputAttributes: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true'\n }\n })),\n behaviours: {\n ...focusBehaviours$1,\n ...augment(detail.typeaheadBehaviours, behaviours)\n },\n eventOrder\n };\n };\n\n const schema$g = constant$1([\n option$3('lazySink'),\n required$1('fetch'),\n defaulted('minChars', 5),\n defaulted('responseTime', 1000),\n onHandler('onOpen'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n defaulted('layouts', Optional.none()),\n defaulted('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted('getDisplayText', itemData => itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value),\n defaulted('selectsOver', true),\n defaulted('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted('inputClasses', []),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('matchWidth', true),\n defaulted('useMinWidth', false),\n defaulted('dismissOnBlur', true),\n markers$1(['openClass']),\n option$3('initialData'),\n option$3('listRole'),\n field('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n customField('lazyTypeaheadComp', () => Cell(Optional.none)),\n customField('previewing', () => Cell(true))\n ].concat(schema$l()).concat(sandboxFields()));\n const parts$b = constant$1([external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: detail => {\n return {\n fakeFocus: true,\n onHighlightItem: (_tmenu, menu, item) => {\n if (!detail.previewing.get()) {\n detail.lazyTypeaheadComp.get().each(input => {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n getOpt(item.element, 'id').each(id => set$9(input.element, 'aria-activedescendant', id));\n });\n } else {\n detail.lazyTypeaheadComp.get().each(input => {\n attemptSelectOver(detail.model, input, item).fold(() => {\n if (detail.model.selectsOver) {\n Highlighting.dehighlight(menu, item);\n detail.previewing.set(true);\n } else {\n detail.previewing.set(false);\n }\n }, selectOverTextInInput => {\n selectOverTextInInput();\n detail.previewing.set(false);\n });\n });\n }\n },\n onExecute: (_menu, item) => {\n return detail.lazyTypeaheadComp.get().map(typeahead => {\n emitWith(typeahead, itemExecute(), { item });\n return true;\n });\n },\n onHover: (menu, item) => {\n detail.previewing.set(false);\n detail.lazyTypeaheadComp.get().each(input => {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n\n const Typeahead = composite({\n name: 'Typeahead',\n configFields: schema$g(),\n partFields: parts$b(),\n factory: make$3\n });\n\n const wrap = delegate => {\n const toCached = () => {\n return wrap(delegate.toCached());\n };\n const bindFuture = f => {\n return wrap(delegate.bind(resA => resA.fold(err => Future.pure(Result.error(err)), a => f(a))));\n };\n const bindResult = f => {\n return wrap(delegate.map(resA => resA.bind(f)));\n };\n const mapResult = f => {\n return wrap(delegate.map(resA => resA.map(f)));\n };\n const mapError = f => {\n return wrap(delegate.map(resA => resA.mapError(f)));\n };\n const foldResult = (whenError, whenValue) => {\n return delegate.map(res => res.fold(whenError, whenValue));\n };\n const withTimeout = (timeout, errorThunk) => {\n return wrap(Future.nu(callback => {\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(result => {\n if (!timedOut) {\n clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return {\n ...delegate,\n toCached,\n bindFuture,\n bindResult,\n mapResult,\n mapError,\n foldResult,\n withTimeout\n };\n };\n const nu$1 = worker => {\n return wrap(Future.nu(worker));\n };\n const value = value => {\n return wrap(Future.pure(Result.value(value)));\n };\n const error = error => {\n return wrap(Future.pure(Result.error(error)));\n };\n const fromResult = result => {\n return wrap(Future.pure(result));\n };\n const fromFuture = future => {\n return wrap(future.map(Result.value));\n };\n const fromPromise = promise => {\n return nu$1(completer => {\n promise.then(value => {\n completer(Result.value(value));\n }, error => {\n completer(Result.error(error));\n });\n });\n };\n const FutureResult = {\n nu: nu$1,\n wrap,\n pure: value,\n value,\n error,\n fromResult,\n fromFuture,\n fromPromise\n };\n\n const renderCommonSpec = (spec, actionOpt, extraBehaviours = [], dom, components, tooltip, providersBackstage) => {\n const action = actionOpt.fold(() => ({}), action => ({ action }));\n const common = {\n buttonBehaviours: derive$1([\n DisablingConfigs.item(() => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Tabstopping.config({}),\n ...tooltip.map(t => Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate(t) }))).toArray(),\n config('button press', [preventDefault('click')])\n ].concat(extraBehaviours)),\n eventOrder: {\n click: [\n 'button press',\n 'alloy.base.behaviour'\n ],\n mousedown: [\n 'button press',\n 'alloy.base.behaviour'\n ]\n },\n ...action\n };\n const domFinal = deepMerge(common, { dom });\n return deepMerge(domFinal, { components });\n };\n const renderIconButtonSpec = (spec, action, providersBackstage, extraBehaviours = [], btnName) => {\n const tooltipAttributes = spec.tooltip.map(tooltip => ({ 'aria-label': providersBackstage.translate(tooltip) })).getOr({});\n const dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: {\n ...tooltipAttributes,\n 'data-mce-name': btnName\n }\n };\n const icon = spec.icon.map(iconName => renderIconFromPack$1(iconName, providersBackstage.icons));\n const components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, spec.tooltip, providersBackstage);\n };\n const calculateClassesFromButtonType = buttonType => {\n switch (buttonType) {\n case 'primary':\n return ['tox-button'];\n case 'toolbar':\n return ['tox-tbtn'];\n case 'secondary':\n default:\n return [\n 'tox-button',\n 'tox-button--secondary'\n ];\n }\n };\n const renderButtonSpec = (spec, action, providersBackstage, extraBehaviours = [], extraClasses = []) => {\n const translatedText = providersBackstage.translate(spec.text);\n const icon = spec.icon.map(iconName => renderIconFromPack$1(iconName, providersBackstage.icons));\n const components = [icon.getOrThunk(() => text$2(translatedText))];\n const buttonType = spec.buttonType.getOr(!spec.primary && !spec.borderless ? 'secondary' : 'primary');\n const baseClasses = calculateClassesFromButtonType(buttonType);\n const classes = [\n ...baseClasses,\n ...icon.isSome() ? ['tox-button--icon'] : [],\n ...spec.borderless ? ['tox-button--naked'] : [],\n ...extraClasses\n ];\n const dom = {\n tag: 'button',\n classes,\n attributes: {\n 'aria-label': translatedText,\n 'data-mce-name': spec.text\n }\n };\n const optTooltip = spec.icon.map(constant$1(translatedText));\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, optTooltip, providersBackstage);\n };\n const renderButton$1 = (spec, action, providersBackstage, extraBehaviours = [], extraClasses = []) => {\n const buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n const getAction = (name, buttonType) => comp => {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n name,\n value: {}\n });\n } else if (buttonType === 'submit') {\n emit(comp, formSubmitEvent);\n } else if (buttonType === 'cancel') {\n emit(comp, formCancelEvent);\n } else {\n console.error('Unknown button type: ', buttonType);\n }\n };\n const isMenuFooterButtonSpec = (spec, buttonType) => buttonType === 'menu';\n const isNormalFooterButtonSpec = (spec, buttonType) => buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n const isToggleButtonSpec = (spec, buttonType) => buttonType === 'togglebutton';\n const renderToggleButton = (spec, providers, btnName) => {\n var _a, _b;\n const optMemIcon = spec.icon.map(memIcon => renderReplaceableIconFromPack(memIcon, providers.icons)).map(record);\n const action = comp => {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: {\n setIcon: newIcon => {\n optMemIcon.map(memIcon => memIcon.getOpt(comp).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(newIcon, providers.icons)]);\n }));\n }\n }\n });\n };\n const buttonType = spec.buttonType.getOr(!spec.primary ? 'secondary' : 'primary');\n const buttonSpec = {\n ...spec,\n name: (_a = spec.name) !== null && _a !== void 0 ? _a : '',\n primary: buttonType === 'primary',\n tooltip: spec.tooltip,\n enabled: (_b = spec.enabled) !== null && _b !== void 0 ? _b : false,\n borderless: false\n };\n const tooltipAttributes = buttonSpec.tooltip.or(spec.text).map(tooltip => ({ 'aria-label': providers.translate(tooltip) })).getOr({});\n const buttonTypeClasses = calculateClassesFromButtonType(buttonType !== null && buttonType !== void 0 ? buttonType : 'secondary');\n const showIconAndText = spec.icon.isSome() && spec.text.isSome();\n const dom = {\n tag: 'button',\n classes: [\n ...buttonTypeClasses.concat(spec.icon.isSome() ? ['tox-button--icon'] : []),\n ...spec.active ? ['tox-button--enabled'] : [],\n ...showIconAndText ? ['tox-button--icon-and-text'] : []\n ],\n attributes: {\n ...tooltipAttributes,\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n };\n const extraBehaviours = [];\n const translatedText = providers.translate(spec.text.getOr(''));\n const translatedTextComponed = text$2(translatedText);\n const iconComp = componentRenderPipeline([optMemIcon.map(memIcon => memIcon.asSpec())]);\n const components = [\n ...iconComp,\n ...spec.text.isSome() ? [translatedTextComponed] : []\n ];\n const iconButtonSpec = renderCommonSpec(buttonSpec, Optional.some(action), extraBehaviours, dom, components, spec.tooltip, providers);\n return Button.sketch(iconButtonSpec);\n };\n const renderFooterButton = (spec, buttonType, backstage) => {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n const getButton = () => memButton;\n const menuButtonSpec = spec;\n const fixedSpec = {\n ...spec,\n type: 'menubutton',\n search: Optional.none(),\n onSetup: api => {\n api.setEnabled(spec.enabled);\n return noop;\n },\n fetch: getFetch(menuButtonSpec.items, getButton, backstage)\n };\n const memButton = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Optional.none(), true, spec.text.or(spec.tooltip).getOrUndefined()));\n return memButton.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n const action = getAction(spec.name, buttonType);\n const buttonSpec = {\n ...spec,\n context: buttonType === 'cancel' ? 'any' : spec.context,\n borderless: false\n };\n return renderButton$1(buttonSpec, action, backstage.shared.providers, []);\n } else if (isToggleButtonSpec(spec, buttonType)) {\n return renderToggleButton(spec, backstage.shared.providers, spec.text.or(spec.tooltip).getOrUndefined());\n } else {\n console.error('Unknown footer button type: ', buttonType);\n throw new Error('Unknown footer button type');\n }\n };\n const renderDialogButton = (spec, providersBackstage) => {\n const action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field({\n factory: Button,\n ...renderButtonSpec(spec, Optional.some(action), providersBackstage, [\n memory(''),\n ComposingConfigs.self()\n ])\n }));\n };\n\n const separator$1 = { type: 'separator' };\n const toMenuItem = target => ({\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: { attach: target.attach },\n onAction: noop\n });\n const staticMenuItem = (title, url) => ({\n type: 'menuitem',\n value: url,\n text: title,\n meta: { attach: undefined },\n onAction: noop\n });\n const toMenuItems = targets => map$2(targets, toMenuItem);\n const filterLinkTargets = (type, targets) => filter$2(targets, target => target.type === type);\n const filteredTargets = (type, targets) => toMenuItems(filterLinkTargets(type, targets));\n const headerTargets = linkInfo => filteredTargets('header', linkInfo.targets);\n const anchorTargets = linkInfo => filteredTargets('anchor', linkInfo.targets);\n const anchorTargetTop = linkInfo => Optional.from(linkInfo.anchorTop).map(url => staticMenuItem('', url)).toArray();\n const anchorTargetBottom = linkInfo => Optional.from(linkInfo.anchorBottom).map(url => staticMenuItem('', url)).toArray();\n const historyTargets = history => map$2(history, url => staticMenuItem(url, url));\n const joinMenuLists = items => {\n return foldl(items, (a, b) => {\n const bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$1, b);\n }, []);\n };\n const filterByQuery = (term, menuItems) => {\n const lowerCaseTerm = term.toLowerCase();\n return filter$2(menuItems, item => {\n var _a;\n const text = item.meta !== undefined && item.meta.text !== undefined ? item.meta.text : item.text;\n const value = (_a = item.value) !== null && _a !== void 0 ? _a : '';\n return contains$1(text.toLowerCase(), lowerCaseTerm) || contains$1(value.toLowerCase(), lowerCaseTerm);\n });\n };\n\n const getItems = (fileType, input, urlBackstage) => {\n var _a, _b;\n const urlInputValue = Representing.getValue(input);\n const term = (_b = (_a = urlInputValue === null || urlInputValue === void 0 ? void 0 : urlInputValue.meta) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : urlInputValue.value;\n const info = urlBackstage.getLinkInformation();\n return info.fold(() => [], linkInfo => {\n const history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([\n history,\n filterByQuery(term, headerTargets(linkInfo)),\n filterByQuery(term, flatten([\n anchorTargetTop(linkInfo),\n anchorTargets(linkInfo),\n anchorTargetBottom(linkInfo)\n ]))\n ]) : history;\n });\n };\n const errorId = generate$6('aria-invalid');\n const renderUrlInput = (spec, backstage, urlBackstage, initialData) => {\n const providersBackstage = backstage.shared.providers;\n const updateHistory = component => {\n const urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n const typeaheadSpec = {\n ...initialData.map(initialData => ({ initialData })).getOr({}),\n dismissOnBlur: true,\n inputClasses: ['tox-textfield'],\n sandboxClasses: ['tox-dialog__popups'],\n inputAttributes: {\n 'aria-errormessage': errorId,\n 'type': 'url'\n },\n minChars: 0,\n responseTime: 0,\n fetch: input => {\n const items = getItems(spec.filetype, input, urlBackstage);\n const tdata = build(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n });\n return Future.pure(tdata);\n },\n getHotspot: comp => memUrlBox.getOpt(comp),\n onSetValue: (comp, _newValue) => {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1([\n ...urlBackstage.getValidationHandler().map(handler => Invalidating.config({\n getRoot: comp => parentElement(comp.element),\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: (comp, err) => {\n memInvalidIcon.getOpt(comp).each(invalidComp => {\n set$9(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: input => {\n const urlEntry = Representing.getValue(input);\n return FutureResult.nu(completer => {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, validation => {\n if (validation.status === 'invalid') {\n const err = Result.error(validation.message);\n completer(err);\n } else {\n const val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n })).toArray(),\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n Tabstopping.config({}),\n config('urlinput-events', [\n run$1(input(), comp => {\n const currentValue = get$7(comp.element);\n const trimmedValue = currentValue.trim();\n if (trimmedValue !== currentValue) {\n set$5(comp.element, trimmedValue);\n }\n if (spec.filetype === 'file') {\n emitWith(comp, formChangeEvent, { name: spec.name });\n }\n }),\n run$1(change(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run$1(postPaste(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n })\n ])\n ]),\n eventOrder: {\n [input()]: [\n 'streaming',\n 'urlinput-events',\n 'invalidating'\n ]\n },\n model: {\n getDisplayText: itemData => itemData.value,\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: { openClass: 'tox-textfield--popup-open' },\n lazySink: backstage.shared.getSink,\n parts: { menu: part(false, 1, 'normal') },\n onExecute: (_menu, component, _entry) => {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: (typeahead, _sandbox, _item, _value) => {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, { name: spec.name });\n }\n };\n const pField = FormField.parts.field({\n ...typeaheadSpec,\n factory: Typeahead\n });\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const makeIcon = (name, errId, icon = name, label = name) => render$3(icon, {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n attributes: {\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite',\n ...errId.fold(() => ({}), id => ({ id }))\n }\n }, providersBackstage.icons);\n const memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n const memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n const optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n const browseUrlEvent = generate$6('browser.url.event');\n const memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [\n pField,\n memStatus.asSpec()\n ],\n behaviours: derive$1([Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable })])\n });\n const memUrlPickerButton = record(renderButton$1({\n context: spec.context,\n name: spec.name,\n icon: Optional.some('browse'),\n text: spec.picker_text.or(spec.label).getOr(''),\n enabled: spec.enabled,\n primary: false,\n buttonType: Optional.none(),\n borderless: true\n }, component => emit(component, browseUrlEvent), providersBackstage, [], ['tox-browse-url']));\n const controlHWrapper = () => ({\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([\n [memUrlBox.asSpec()],\n optUrlPicker.map(() => memUrlPickerButton.asSpec()).toArray()\n ])\n });\n const openUrlPicker = comp => {\n Composing.getCurrent(comp).each(field => {\n const componentData = Representing.getValue(field);\n const urlData = {\n fieldname: spec.name,\n ...componentData\n };\n optUrlPicker.each(picker => {\n picker(urlData).get(chosenData => {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, { name: spec.name });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n config('url-input-events', [run$1(browseUrlEvent, openUrlPicker)])\n ])\n });\n };\n\n const renderAlertBanner = (spec, providersBackstage) => {\n const icon = get$3(spec.icon, providersBackstage.icons);\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n `tox-notification--${ spec.level }`\n ]\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon'],\n innerHtml: !spec.url ? icon : undefined\n },\n components: spec.url ? [Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n innerHtml: icon,\n attributes: { title: providersBackstage.translate(spec.iconTooltip) }\n },\n action: comp => emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n }),\n buttonBehaviours: derive$1([addFocusableBehaviour()])\n })] : undefined\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }\n ]\n });\n };\n\n const set$1 = (element, status) => {\n element.dom.checked = status;\n };\n const get$2 = element => element.dom.checked;\n\n const renderCheckbox = (spec, providerBackstage, initialData) => {\n const toggleCheckboxHandler = comp => {\n comp.element.dom.click();\n return Optional.some(true);\n };\n const pField = FormField.parts.field({\n factory: { sketch: identity },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Disabling.config({\n disabled: () => !spec.enabled || providerBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: component => {\n parentElement(component.element).each(element => add$2(element, 'tox-checkbox--disabled'));\n },\n onEnabled: component => {\n parentElement(component.element).each(element => remove$3(element, 'tox-checkbox--disabled'));\n }\n }),\n Tabstopping.config({}),\n Focusing.config({}),\n withElement(initialData, get$2, set$1),\n Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }),\n config('checkbox-events', [run$1(change(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n const pLabel = FormField.parts.label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label']\n },\n components: [text$2(providerBackstage.translate(spec.label))],\n behaviours: derive$1([Unselecting.config({})])\n });\n const makeIcon = className => {\n const iconName = className === 'checked' ? 'selected' : 'unselected';\n return render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ]\n }, providerBackstage.icons);\n };\n const memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [\n makeIcon('checked'),\n makeIcon('unchecked')\n ]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [\n pField,\n memIcons.asSpec(),\n pLabel\n ],\n fieldBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providerBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providerBackstage.checkUiComponentContext(spec.context))\n ])\n });\n };\n\n const renderHtmlPanel = (spec, providersBackstage) => {\n const classes = [\n 'tox-form__group',\n ...spec.stretched ? ['tox-form__group--stretched'] : []\n ];\n const init = config('htmlpanel', [runOnAttached(comp => {\n spec.onInit(comp.element.dom);\n })]);\n if (spec.presets === 'presentation') {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes,\n innerHtml: spec.html\n },\n containerBehaviours: derive$1([\n Tooltipping.config({\n ...providersBackstage.tooltips.getConfig({\n tooltipText: '',\n onShow: comp => {\n descendant(comp.element, '[data-mce-tooltip]:hover').orThunk(() => search(comp.element)).each(current => {\n getOpt(current, 'data-mce-tooltip').each(text => {\n Tooltipping.setComponents(comp, providersBackstage.tooltips.getComponents({ tooltipText: text }));\n });\n });\n }\n }),\n mode: 'children-normal',\n anchor: comp => ({\n type: 'node',\n node: descendant(comp.element, '[data-mce-tooltip]:hover').orThunk(() => search(comp.element).filter(current => getOpt(current, 'data-mce-tooltip').isSome())),\n root: comp.element,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n },\n bubble: nu$5(0, -2, {})\n })\n }),\n init\n ])\n });\n } else {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes,\n innerHtml: spec.html,\n attributes: { role: 'document' }\n },\n containerBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n init\n ])\n });\n }\n };\n\n const make$2 = render => {\n return (parts, spec, dialogData, backstage, getCompByName) => get$h(spec, 'name').fold(() => render(spec, backstage, Optional.none(), getCompByName), fieldName => parts.field(fieldName, render(spec, backstage, get$h(dialogData, fieldName), getCompByName)));\n };\n const makeIframe = render => (parts, spec, dialogData, backstage, getCompByName) => {\n const iframeSpec = deepMerge(spec, { source: 'dynamic' });\n return make$2(render)(parts, iframeSpec, dialogData, backstage, getCompByName);\n };\n const factories = {\n bar: make$2((spec, backstage) => renderBar(spec, backstage.shared)),\n collection: make$2((spec, backstage, data) => renderCollection(spec, backstage.shared.providers, data)),\n alertbanner: make$2((spec, backstage) => renderAlertBanner(spec, backstage.shared.providers)),\n input: make$2((spec, backstage, data) => renderInput(spec, backstage.shared.providers, data)),\n textarea: make$2((spec, backstage, data) => renderTextarea(spec, backstage.shared.providers, data)),\n label: make$2((spec, backstage, _data, getCompByName) => renderLabel$2(spec, backstage.shared, getCompByName)),\n iframe: makeIframe((spec, backstage, data) => renderIFrame(spec, backstage.shared.providers, data)),\n button: make$2((spec, backstage) => renderDialogButton(spec, backstage.shared.providers)),\n checkbox: make$2((spec, backstage, data) => renderCheckbox(spec, backstage.shared.providers, data)),\n colorinput: make$2((spec, backstage, data) => renderColorInput(spec, backstage.shared, backstage.colorinput, data)),\n colorpicker: make$2((spec, backstage, data) => renderColorPicker(spec, backstage.shared.providers, data)),\n dropzone: make$2((spec, backstage, data) => renderDropZone(spec, backstage.shared.providers, data)),\n grid: make$2((spec, backstage) => renderGrid(spec, backstage.shared)),\n listbox: make$2((spec, backstage, data) => renderListBox(spec, backstage, data)),\n selectbox: make$2((spec, backstage, data) => renderSelectBox(spec, backstage.shared.providers, data)),\n sizeinput: make$2((spec, backstage) => renderSizeInput(spec, backstage.shared.providers)),\n slider: make$2((spec, backstage, data) => renderSlider(spec, backstage.shared.providers, data)),\n urlinput: make$2((spec, backstage, data) => renderUrlInput(spec, backstage, backstage.urlinput, data)),\n customeditor: make$2(renderCustomEditor),\n htmlpanel: make$2((spec, backstage) => renderHtmlPanel(spec, backstage.shared.providers)),\n imagepreview: make$2((spec, _, data) => renderImagePreview(spec, data)),\n table: make$2((spec, backstage) => renderTable(spec, backstage.shared.providers)),\n tree: make$2((spec, backstage) => renderTree(spec, backstage)),\n panel: make$2((spec, backstage) => renderPanel(spec, backstage))\n };\n const noFormParts = {\n field: (_name, spec) => spec,\n record: constant$1([])\n };\n const interpretInForm = (parts, spec, dialogData, oldBackstage, getCompByName) => {\n const newBackstage = deepMerge(oldBackstage, { shared: { interpreter: childSpec => interpretParts(parts, childSpec, dialogData, newBackstage, getCompByName) } });\n return interpretParts(parts, spec, dialogData, newBackstage, getCompByName);\n };\n const interpretParts = (parts, spec, dialogData, backstage, getCompByName) => get$h(factories, spec.type).fold(() => {\n console.error(`Unknown factory type \"${ spec.type }\", defaulting to container: `, spec);\n return spec;\n }, factory => factory(parts, spec, dialogData, backstage, getCompByName));\n const interpretWithoutForm = (spec, dialogData, backstage, getCompByName) => interpretParts(noFormParts, spec, dialogData, backstage, getCompByName);\n\n const labelPrefix = 'layout-inset';\n const westEdgeX = anchor => anchor.x;\n const middleX = (anchor, element) => anchor.x + anchor.width / 2 - element.width / 2;\n const eastEdgeX = (anchor, element) => anchor.x + anchor.width - element.width;\n const northY = anchor => anchor.y;\n const southY = (anchor, element) => anchor.y + anchor.height - element.height;\n const centreY = (anchor, element) => anchor.y + anchor.height / 2 - element.height / 2;\n const southwest = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), southY(anchor, element), bubbles.insetSouthwest(), northwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 3\n }), labelPrefix);\n const southeast = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), southY(anchor, element), bubbles.insetSoutheast(), northeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 3\n }), labelPrefix);\n const northwest = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), northY(anchor), bubbles.insetNorthwest(), southwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n top: 2\n }), labelPrefix);\n const northeast = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), northY(anchor), bubbles.insetNortheast(), southeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n top: 2\n }), labelPrefix);\n const north = (anchor, element, bubbles) => nu$6(middleX(anchor, element), northY(anchor), bubbles.insetNorth(), south$3(), 'north', boundsRestriction(anchor, { top: 2 }), labelPrefix);\n const south = (anchor, element, bubbles) => nu$6(middleX(anchor, element), southY(anchor, element), bubbles.insetSouth(), north$3(), 'south', boundsRestriction(anchor, { bottom: 3 }), labelPrefix);\n const east = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), centreY(anchor, element), bubbles.insetEast(), west$3(), 'east', boundsRestriction(anchor, { right: 0 }), labelPrefix);\n const west = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), centreY(anchor, element), bubbles.insetWest(), east$3(), 'west', boundsRestriction(anchor, { left: 1 }), labelPrefix);\n const lookupPreserveLayout = lastPlacement => {\n switch (lastPlacement) {\n case 'north':\n return north;\n case 'northeast':\n return northeast;\n case 'northwest':\n return northwest;\n case 'south':\n return south;\n case 'southeast':\n return southeast;\n case 'southwest':\n return southwest;\n case 'east':\n return east;\n case 'west':\n return west;\n }\n };\n const preserve = (anchor, element, bubbles, placee, bounds) => {\n const layout = getPlacement(placee).map(lookupPreserveLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n const lookupFlippedLayout = lastPlacement => {\n switch (lastPlacement) {\n case 'north':\n return south;\n case 'northeast':\n return southeast;\n case 'northwest':\n return southwest;\n case 'south':\n return north;\n case 'southeast':\n return northeast;\n case 'southwest':\n return northwest;\n case 'east':\n return west;\n case 'west':\n return east;\n }\n };\n const flip = (anchor, element, bubbles, placee, bounds) => {\n const layout = getPlacement(placee).map(lookupFlippedLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n\n const bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n const getInlineDialogAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {\n const bubbleSize = 12;\n const overrides = { maxHeightFunction: expandable$1() };\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [northeast],\n onLtr: () => [northwest]\n },\n overrides\n });\n const standardAnchor = () => ({\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$5(-bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [\n southeast$2,\n southwest$2,\n south$2\n ],\n onLtr: () => [\n southwest$2,\n southeast$2,\n south$2\n ]\n },\n overrides\n });\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getInlineBottomDialogAnchor = (inline, contentAreaElement, lazyBottomAnchorBar, lazyUseEditableAreaAnchor) => {\n const bubbleSize = 12;\n const overrides = { maxHeightFunction: expandable$1() };\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [north],\n onLtr: () => [north]\n },\n overrides\n });\n const standardAnchor = () => inline ? {\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(0, -getOuter$2(contentAreaElement()), bubbleAlignments$2),\n layouts: {\n onRtl: () => [north$2],\n onLtr: () => [north$2]\n },\n overrides\n } : {\n type: 'hotspot',\n hotspot: lazyBottomAnchorBar(),\n bubble: nu$5(0, 0, bubbleAlignments$2),\n layouts: {\n onRtl: () => [north$2],\n onLtr: () => [north$2]\n },\n overrides\n };\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getBannerAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: () => [north],\n onLtr: () => [north]\n }\n });\n const standardAnchor = () => ({\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: () => [south$2],\n onLtr: () => [south$2]\n }\n });\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getCursorAnchor = (editor, bodyElement) => () => ({\n type: 'selection',\n root: bodyElement(),\n getSelection: () => {\n const rng = editor.selection.getRng();\n const selectedCells = editor.model.table.getSelectedCells();\n if (selectedCells.length > 1) {\n const firstCell = selectedCells[0];\n const lastCell = selectedCells[selectedCells.length - 1];\n const selectionTableCellRange = {\n firstCell: SugarElement.fromDom(firstCell),\n lastCell: SugarElement.fromDom(lastCell)\n };\n return Optional.some(selectionTableCellRange);\n }\n return Optional.some(SimSelection.range(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n }\n });\n const getNodeAnchor$1 = bodyElement => element => ({\n type: 'node',\n root: bodyElement(),\n node: element\n });\n const getAnchors = (editor, lazyAnchorbar, lazyBottomAnchorBar, isToolbarTop) => {\n const useFixedToolbarContainer = useFixedContainer(editor);\n const bodyElement = () => SugarElement.fromDom(editor.getBody());\n const contentAreaElement = () => SugarElement.fromDom(editor.getContentAreaContainer());\n const lazyUseEditableAreaAnchor = () => useFixedToolbarContainer || !isToolbarTop();\n return {\n inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n inlineBottomDialog: getInlineBottomDialogAnchor(editor.inline, contentAreaElement, lazyBottomAnchorBar, lazyUseEditableAreaAnchor),\n banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor$1(bodyElement)\n };\n };\n\n const colorPicker = editor => (callback, value) => {\n const dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n const hasCustomColors = editor => () => hasCustomColors$1(editor);\n const getColors = editor => id => getColors$2(editor, id);\n const getColorCols = editor => id => getColorCols$1(editor, id);\n const ColorInputBackstage = editor => ({\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors(editor),\n getColors: getColors(editor),\n getColorCols: getColorCols(editor)\n });\n\n const isDraggableModal = editor => () => isDraggableModal$1(editor);\n const DialogBackstage = editor => ({ isDraggableModal: isDraggableModal(editor) });\n\n const HeaderBackstage = editor => {\n const mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: () => mode.get() === 'top',\n getDockingMode: mode.get,\n setDockingMode: mode.set\n };\n };\n\n const isNestedFormat = format => hasNonNullableKey(format, 'items');\n const isFormatReference = format => hasNonNullableKey(format, 'format');\n const defaultStyleFormats = [\n {\n title: 'Headings',\n items: [\n {\n title: 'Heading 1',\n format: 'h1'\n },\n {\n title: 'Heading 2',\n format: 'h2'\n },\n {\n title: 'Heading 3',\n format: 'h3'\n },\n {\n title: 'Heading 4',\n format: 'h4'\n },\n {\n title: 'Heading 5',\n format: 'h5'\n },\n {\n title: 'Heading 6',\n format: 'h6'\n }\n ]\n },\n {\n title: 'Inline',\n items: [\n {\n title: 'Bold',\n format: 'bold'\n },\n {\n title: 'Italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n format: 'subscript'\n },\n {\n title: 'Code',\n format: 'code'\n }\n ]\n },\n {\n title: 'Blocks',\n items: [\n {\n title: 'Paragraph',\n format: 'p'\n },\n {\n title: 'Blockquote',\n format: 'blockquote'\n },\n {\n title: 'Div',\n format: 'div'\n },\n {\n title: 'Pre',\n format: 'pre'\n }\n ]\n },\n {\n title: 'Align',\n items: [\n {\n title: 'Left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n const isNestedFormats = format => has$2(format, 'items');\n const isBlockFormat = format => has$2(format, 'block');\n const isInlineFormat = format => has$2(format, 'inline');\n const isSelectorFormat = format => has$2(format, 'selector');\n const mapFormats = userFormats => foldl(userFormats, (acc, fmt) => {\n if (isNestedFormats(fmt)) {\n const result = mapFormats(fmt.items);\n return {\n customFormats: acc.customFormats.concat(result.customFormats),\n formats: acc.formats.concat([{\n title: fmt.title,\n items: result.formats\n }])\n };\n } else if (isInlineFormat(fmt) || isBlockFormat(fmt) || isSelectorFormat(fmt)) {\n const formatName = isString(fmt.name) ? fmt.name : fmt.title.toLowerCase();\n const formatNameWithPrefix = `custom-${ formatName }`;\n return {\n customFormats: acc.customFormats.concat([{\n name: formatNameWithPrefix,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatNameWithPrefix,\n icon: fmt.icon\n }])\n };\n } else {\n return {\n ...acc,\n formats: acc.formats.concat(fmt)\n };\n }\n }, {\n customFormats: [],\n formats: []\n });\n const registerCustomFormats = (editor, userFormats) => {\n const result = mapFormats(userFormats);\n const registerFormats = customFormats => {\n each$1(customFormats, fmt => {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\n }\n });\n };\n if (editor.formatter) {\n registerFormats(result.customFormats);\n } else {\n editor.on('init', () => {\n registerFormats(result.customFormats);\n });\n }\n return result.formats;\n };\n const getStyleFormats = editor => getUserStyleFormats(editor).map(userFormats => {\n const registeredUserFormats = registerCustomFormats(editor, userFormats);\n return shouldMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n\n const isSeparator$1 = format => {\n const keys$1 = keys(format);\n return keys$1.length === 1 && contains$2(keys$1, 'title');\n };\n const processBasic = (item, isSelectedFor, getPreviewFor) => ({\n ...item,\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n });\n const register$b = (editor, formats, isSelectedFor, getPreviewFor) => {\n const enrichSupported = item => processBasic(item, isSelectedFor, getPreviewFor);\n const enrichMenu = item => {\n const newItems = doEnrich(item.items);\n return {\n ...item,\n type: 'submenu',\n getStyleItems: constant$1(newItems)\n };\n };\n const enrichCustom = item => {\n const formatName = isString(item.name) ? item.name : generate$6(item.title);\n const formatNameWithPrefix = `custom-${ formatName }`;\n const newItem = {\n ...item,\n type: 'formatter',\n format: formatNameWithPrefix,\n isSelected: isSelectedFor(formatNameWithPrefix),\n getStylePreview: getPreviewFor(formatNameWithPrefix)\n };\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n const doEnrich = items => map$2(items, item => {\n if (isNestedFormat(item)) {\n return enrichMenu(item);\n } else if (isFormatReference(item)) {\n return enrichSupported(item);\n } else if (isSeparator$1(item)) {\n return {\n ...item,\n type: 'separator'\n };\n } else {\n return enrichCustom(item);\n }\n });\n return doEnrich(formats);\n };\n\n const init$6 = editor => {\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n const settingsFormats = Cell([]);\n const eventsFormats = Cell([]);\n const replaceSettings = Cell(false);\n editor.on('PreInit', _e => {\n const formats = getStyleFormats(editor);\n const enriched = register$b(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n });\n editor.on('addStyleModifications', e => {\n const modifications = register$b(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n });\n const getData = () => {\n const fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n const fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return { getData };\n };\n\n const TooltipsBackstage = getSink => {\n const tooltipDelay = 300;\n const intervalDelay = tooltipDelay * 0.2;\n let numActiveTooltips = 0;\n const alreadyShowingTooltips = () => numActiveTooltips > 0;\n const getComponents = spec => {\n return [{\n dom: {\n tag: 'div',\n classes: ['tox-tooltip__body']\n },\n components: [text$2(spec.tooltipText)]\n }];\n };\n const getConfig = spec => {\n return {\n delayForShow: () => alreadyShowingTooltips() ? intervalDelay : tooltipDelay,\n delayForHide: constant$1(tooltipDelay),\n exclusive: true,\n lazySink: getSink,\n tooltipDom: {\n tag: 'div',\n classes: [\n 'tox-tooltip',\n 'tox-tooltip--up'\n ]\n },\n tooltipComponents: getComponents(spec),\n onShow: (comp, tooltip) => {\n numActiveTooltips++;\n if (spec.onShow) {\n spec.onShow(comp, tooltip);\n }\n },\n onHide: (comp, tooltip) => {\n numActiveTooltips--;\n if (spec.onHide) {\n spec.onHide(comp, tooltip);\n }\n },\n onSetup: spec.onSetup\n };\n };\n return {\n getConfig,\n getComponents\n };\n };\n\n const isElement = node => isNonNullable(node) && node.nodeType === 1;\n const trim = global$1.trim;\n const hasContentEditableState = value => {\n return node => {\n if (isElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n const isContentEditableTrue = hasContentEditableState('true');\n const isContentEditableFalse = hasContentEditableState('false');\n const create = (type, title, url, level, attach) => ({\n type,\n title,\n url,\n level,\n attach\n });\n const isChildOfContentEditableTrue = node => {\n let tempNode = node;\n while (tempNode = tempNode.parentNode) {\n const value = tempNode.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(tempNode);\n }\n }\n return false;\n };\n const select = (selector, root) => {\n return map$2(descendants(SugarElement.fromDom(root), selector), element => {\n return element.dom;\n });\n };\n const getElementText = elm => {\n return elm.innerText || elm.textContent;\n };\n const getOrGenerateId = elm => {\n return elm.id ? elm.id : generate$6('h');\n };\n const isAnchor = elm => {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n const isValidAnchor = elm => {\n return isAnchor(elm) && isEditable(elm);\n };\n const isHeader = elm => {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n const isEditable = elm => {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n const isValidHeader = elm => {\n return isHeader(elm) && isEditable(elm);\n };\n const getLevel = elm => {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n const headerTarget = elm => {\n var _a;\n const headerId = getOrGenerateId(elm);\n const attach = () => {\n elm.id = headerId;\n };\n return create('header', (_a = getElementText(elm)) !== null && _a !== void 0 ? _a : '', '#' + headerId, getLevel(elm), attach);\n };\n const anchorTarget = elm => {\n const anchorId = elm.id || elm.name;\n const anchorText = getElementText(elm);\n return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n const getHeaderTargets = elms => {\n return map$2(filter$2(elms, isValidHeader), headerTarget);\n };\n const getAnchorTargets = elms => {\n return map$2(filter$2(elms, isValidAnchor), anchorTarget);\n };\n const getTargetElements = elm => {\n const elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n const hasTitle = target => {\n return trim(target.title).length > 0;\n };\n const find = elm => {\n const elms = getTargetElements(elm);\n return filter$2(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n const LinkTargets = { find };\n\n const STORAGE_KEY = 'tinymce-url-history';\n const HISTORY_LENGTH = 5;\n const isHttpUrl = url => isString(url) && /^https?/.test(url);\n const isArrayOfUrl = a => isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n const isRecordOfUrlArray = r => isObject(r) && find$4(r, value => !isArrayOfUrl(value)).isNone();\n const getAllHistory = () => {\n const unparsedHistory = global$4.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n let history;\n try {\n history = JSON.parse(unparsedHistory);\n } catch (e) {\n if (e instanceof SyntaxError) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n return history;\n };\n const setAllHistory = history => {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n global$4.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n const getHistory = fileType => {\n const history = getAllHistory();\n return get$h(history, fileType).getOr([]);\n };\n const addToHistory = (url, fileType) => {\n if (!isHttpUrl(url)) {\n return;\n }\n const history = getAllHistory();\n const items = get$h(history, fileType).getOr([]);\n const itemsWithoutUrl = filter$2(items, item => item !== url);\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n\n const isTruthy = value => !!value;\n const makeMap = value => map$1(global$1.makeMap(value, /[, ]/), isTruthy);\n const getPicker = editor => Optional.from(getFilePickerCallback(editor));\n const getPickerTypes = editor => {\n const optFileTypes = Optional.from(getFilePickerTypes(editor)).filter(isTruthy).map(makeMap);\n return getPicker(editor).fold(never, _picker => optFileTypes.fold(always, types => keys(types).length > 0 ? types : false));\n };\n const getPickerSetting = (editor, filetype) => {\n const pickerTypes = getPickerTypes(editor);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(editor) : Optional.none();\n } else {\n return pickerTypes[filetype] ? getPicker(editor) : Optional.none();\n }\n };\n const getUrlPicker = (editor, filetype) => getPickerSetting(editor, filetype).map(picker => entry => Future.nu(completer => {\n const handler = (value, meta) => {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n const r = {\n value,\n meta\n };\n completer(r);\n };\n const meta = {\n filetype,\n fieldname: entry.fieldname,\n ...Optional.from(entry.meta).getOr({})\n };\n picker.call(editor, handler, entry.value, meta);\n }));\n const getTextSetting = value => Optional.from(value).filter(isString).getOrUndefined();\n const getLinkInformation = editor => {\n if (!useTypeaheadUrls(editor)) {\n return Optional.none();\n }\n return Optional.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(getAnchorTop(editor)),\n anchorBottom: getTextSetting(getAnchorBottom(editor))\n });\n };\n const getValidationHandler = editor => Optional.from(getFilePickerValidatorHandler(editor));\n const UrlInputBackstage = editor => ({\n getHistory,\n addToHistory,\n getLinkInformation: () => getLinkInformation(editor),\n getValidationHandler: () => getValidationHandler(editor),\n getUrlPicker: filetype => getUrlPicker(editor, filetype)\n });\n\n const init$5 = (lazySinks, editor, lazyAnchorbar, lazyBottomAnchorBar) => {\n const contextMenuState = Cell(false);\n const toolbar = HeaderBackstage(editor);\n const providers = {\n icons: () => editor.ui.registry.getAll().icons,\n menuItems: () => editor.ui.registry.getAll().menuItems,\n translate: global$5.translate,\n isDisabled: () => !editor.ui.isEnabled(),\n getOption: editor.options.get,\n tooltips: TooltipsBackstage(lazySinks.dialog),\n checkUiComponentContext: specContext => {\n const [key, value = ''] = specContext.split(':');\n const contexts = editor.ui.registry.getAll().contexts;\n const enabledInContext = get$h(contexts, key).fold(() => get$h(contexts, 'mode').map(pred => pred('design')).getOr(false), pred => value.charAt(0) === '!' ? !pred(value.slice(1)) : pred(value));\n return {\n contextType: key,\n shouldDisable: !enabledInContext\n };\n }\n };\n const urlinput = UrlInputBackstage(editor);\n const styles = init$6(editor);\n const colorinput = ColorInputBackstage(editor);\n const dialogSettings = DialogBackstage(editor);\n const isContextMenuOpen = () => contextMenuState.get();\n const setContextMenuState = state => contextMenuState.set(state);\n const commonBackstage = {\n shared: {\n providers,\n anchors: getAnchors(editor, lazyAnchorbar, lazyBottomAnchorBar, toolbar.isPositionedAtTop),\n header: toolbar\n },\n urlinput,\n styles,\n colorinput,\n dialog: dialogSettings,\n isContextMenuOpen,\n setContextMenuState\n };\n const getCompByName = _name => Optional.none();\n const popupBackstage = {\n ...commonBackstage,\n shared: {\n ...commonBackstage.shared,\n interpreter: s => interpretWithoutForm(s, {}, popupBackstage, getCompByName),\n getSink: lazySinks.popup\n }\n };\n const dialogBackstage = {\n ...commonBackstage,\n shared: {\n ...commonBackstage.shared,\n interpreter: s => interpretWithoutForm(s, {}, dialogBackstage, getCompByName),\n getSink: lazySinks.dialog\n }\n };\n return {\n popup: popupBackstage,\n dialog: dialogBackstage\n };\n };\n\n const setup$b = (editor, mothership, uiMotherships) => {\n const broadcastEvent = (name, evt) => {\n each$1([\n mothership,\n ...uiMotherships\n ], m => {\n m.broadcastEvent(name, evt);\n });\n };\n const broadcastOn = (channel, message) => {\n each$1([\n mothership,\n ...uiMotherships\n ], m => {\n m.broadcastOn([channel], message);\n });\n };\n const fireDismissPopups = evt => broadcastOn(dismissPopups(), { target: evt.target });\n const doc = getDocument();\n const onTouchstart = bind(doc, 'touchstart', fireDismissPopups);\n const onTouchmove = bind(doc, 'touchmove', evt => broadcastEvent(documentTouchmove(), evt));\n const onTouchend = bind(doc, 'touchend', evt => broadcastEvent(documentTouchend(), evt));\n const onMousedown = bind(doc, 'mousedown', fireDismissPopups);\n const onMouseup = bind(doc, 'mouseup', evt => {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), { target: evt.target });\n }\n });\n const onContentClick = raw => broadcastOn(dismissPopups(), { target: SugarElement.fromDom(raw.target) });\n const onContentMouseup = raw => {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), { target: SugarElement.fromDom(raw.target) });\n }\n };\n const onContentMousedown = () => {\n each$1(editor.editorManager.get(), loopEditor => {\n if (editor !== loopEditor) {\n loopEditor.dispatch('DismissPopups', { relatedTarget: editor });\n }\n });\n };\n const onWindowScroll = evt => broadcastEvent(windowScroll(), fromRawEvent(evt));\n const onWindowResize = evt => {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent(evt));\n };\n const dos = getRootNode(SugarElement.fromDom(editor.getElement()));\n const onElementScroll = capture(dos, 'scroll', evt => {\n requestAnimationFrame(() => {\n const c = editor.getContainer();\n if (c !== undefined && c !== null) {\n const optScrollingContext = detectWhenSplitUiMode(editor, mothership.element);\n const scrollers = optScrollingContext.map(sc => [\n sc.element,\n ...sc.others\n ]).getOr([]);\n if (exists(scrollers, s => eq(s, evt.target))) {\n editor.dispatch('ElementScroll', { target: evt.target.dom });\n broadcastEvent(externalElementScroll(), evt);\n }\n }\n });\n });\n const onEditorResize = () => broadcastOn(repositionPopups(), {});\n const onEditorProgress = evt => {\n if (evt.state) {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(editor.getContainer()) });\n }\n };\n const onDismissPopups = event => {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(event.relatedTarget.getContainer()) });\n };\n const onFocusIn = event => editor.dispatch('focusin', event);\n const onFocusOut = event => editor.dispatch('focusout', event);\n editor.on('PostRender', () => {\n editor.on('click', onContentClick);\n editor.on('tap', onContentClick);\n editor.on('mouseup', onContentMouseup);\n editor.on('mousedown', onContentMousedown);\n editor.on('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n editor.on('AfterProgressState', onEditorProgress);\n editor.on('DismissPopups', onDismissPopups);\n each$1([\n mothership,\n ...uiMotherships\n ], gui => {\n gui.element.dom.addEventListener('focusin', onFocusIn);\n gui.element.dom.addEventListener('focusout', onFocusOut);\n });\n });\n editor.on('remove', () => {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('mousedown', onContentMousedown);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n editor.off('AfterProgressState', onEditorProgress);\n editor.off('DismissPopups', onDismissPopups);\n each$1([\n mothership,\n ...uiMotherships\n ], gui => {\n gui.element.dom.removeEventListener('focusin', onFocusIn);\n gui.element.dom.removeEventListener('focusout', onFocusOut);\n });\n onMousedown.unbind();\n onTouchstart.unbind();\n onTouchmove.unbind();\n onTouchend.unbind();\n onMouseup.unbind();\n onElementScroll.unbind();\n });\n editor.on('detach', () => {\n each$1([\n mothership,\n ...uiMotherships\n ], detachSystem);\n each$1([\n mothership,\n ...uiMotherships\n ], m => m.destroy());\n });\n };\n\n const parts$a = AlloyParts;\n const partType = PartType;\n\n const schema$f = constant$1([\n defaulted('shell', false),\n required$1('makeItem'),\n defaulted('setupItem', noop),\n SketchBehaviours.field('listBehaviours', [Replacing])\n ]);\n const customListDetail = () => ({ behaviours: derive$1([Replacing.config({})]) });\n const itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n const parts$9 = constant$1([itemsPart]);\n const name = constant$1('CustomList');\n\n const factory$f = (detail, components, _spec, _external) => {\n const setItems = (list, items) => {\n getListContainer(list).fold(() => {\n console.error('Custom List was defined to not be a shell, but no item container was specified in components');\n throw new Error('Custom List was defined to not be a shell, but no item container was specified in components');\n }, container => {\n const itemComps = Replacing.contents(container);\n const numListsRequired = items.length;\n const numListsToAdd = numListsRequired - itemComps.length;\n const itemsToAdd = numListsToAdd > 0 ? range$2(numListsToAdd, () => detail.makeItem()) : [];\n const itemsToRemove = itemComps.slice(numListsRequired);\n each$1(itemsToRemove, item => Replacing.remove(container, item));\n each$1(itemsToAdd, item => Replacing.append(container, item));\n const builtLists = Replacing.contents(container);\n each$1(builtLists, (item, i) => {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n const extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components\n };\n const getListContainer = component => detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: { setItems }\n };\n };\n const CustomList = composite({\n name: name(),\n configFields: schema$f(),\n partFields: parts$9(),\n factory: factory$f,\n apis: {\n setItems: (apis, list, items) => {\n apis.setItems(list, items);\n }\n }\n });\n\n const schema$e = constant$1([\n required$1('dom'),\n defaulted('shell', true),\n field('toolbarBehaviours', [Replacing])\n ]);\n const enhanceGroups = () => ({ behaviours: derive$1([Replacing.config({})]) });\n const parts$8 = constant$1([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n const factory$e = (detail, components, _spec, _externals) => {\n const setGroups = (toolbar, groups) => {\n getGroupContainer(toolbar).fold(() => {\n console.error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n throw new Error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n }, container => {\n Replacing.set(container, groups);\n });\n };\n const getGroupContainer = component => detail.shell ? Optional.some(component) : getPart(component, detail, 'groups');\n const extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.toolbarBehaviours, extra.behaviours),\n apis: {\n setGroups,\n refresh: noop\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const Toolbar = composite({\n name: 'Toolbar',\n configFields: schema$e(),\n partFields: parts$8(),\n factory: factory$e,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n const setup$a = noop;\n const isDocked$1 = never;\n const getBehaviours$1 = constant$1([]);\n\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$a,\n isDocked: isDocked$1,\n getBehaviours: getBehaviours$1\n });\n\n const toolbarHeightChange = constant$1(generate$6('toolbar-height-change'));\n\n const visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n const editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n const editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n const scrollFromBehindHeader = (e, containerHeader) => {\n const doc = owner$4(containerHeader);\n const win = defaultView(containerHeader);\n const viewHeight = win.dom.innerHeight;\n const scrollPos = get$c(doc);\n const markerElement = SugarElement.fromDom(e.elm);\n const markerPos = absolute$2(markerElement);\n const markerHeight = get$e(markerElement);\n const markerTop = markerPos.y;\n const markerBottom = markerTop + markerHeight;\n const editorHeaderPos = absolute$3(containerHeader);\n const editorHeaderHeight = get$e(containerHeader);\n const editorHeaderTop = editorHeaderPos.top;\n const editorHeaderBottom = editorHeaderTop + editorHeaderHeight;\n const editorHeaderDockedAtTop = Math.abs(editorHeaderTop - scrollPos.top) < 2;\n const editorHeaderDockedAtBottom = Math.abs(editorHeaderBottom - (scrollPos.top + viewHeight)) < 2;\n if (editorHeaderDockedAtTop && markerTop < editorHeaderBottom) {\n to(scrollPos.left, markerTop - editorHeaderHeight, doc);\n } else if (editorHeaderDockedAtBottom && markerBottom > editorHeaderTop) {\n const y = markerTop - viewHeight + markerHeight + editorHeaderHeight;\n to(scrollPos.left, y, doc);\n }\n };\n const isDockedMode = (header, mode) => contains$2(Docking.getModes(header), mode);\n const updateIframeContentFlow = header => {\n const getOccupiedHeight = elm => getOuter$2(elm) + (parseInt(get$f(elm, 'margin-top'), 10) || 0) + (parseInt(get$f(elm, 'margin-bottom'), 10) || 0);\n const elm = header.element;\n parentElement(elm).each(parentElem => {\n const padding = 'padding-' + Docking.getModes(header)[0];\n if (Docking.isDocked(header)) {\n const parentWidth = get$d(parentElem);\n set$8(elm, 'width', parentWidth + 'px');\n set$8(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$7(elm, 'width');\n remove$7(parentElem, padding);\n }\n });\n };\n const updateSinkVisibility = (sinkElem, visible) => {\n if (visible) {\n remove$3(sinkElem, visibility.fadeOutClass);\n add$1(sinkElem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n } else {\n remove$3(sinkElem, visibility.fadeInClass);\n add$1(sinkElem, [\n visibility.fadeOutClass,\n visibility.transitionClass\n ]);\n }\n };\n const updateEditorClasses = (editor, docked) => {\n const editorContainer = SugarElement.fromDom(editor.getContainer());\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$3(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$3(editorContainer, editorStickyOnClass);\n }\n };\n const restoreFocus = (headerElem, focusedElem) => {\n const ownerDoc = owner$4(focusedElem);\n active$1(ownerDoc).filter(activeElm => !eq(focusedElem, activeElm)).filter(activeElm => eq(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains(headerElem, activeElm)).each(() => focus$3(focusedElem));\n };\n const findFocusedElem = (rootElm, lazySink) => search(rootElm).orThunk(() => lazySink().toOptional().bind(sink => search(sink.element)));\n const setup$9 = (editor, sharedBackstage, lazyHeader) => {\n if (!editor.inline) {\n if (!sharedBackstage.header.isPositionedAtTop()) {\n editor.on('ResizeEditor', () => {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('ResizeWindow ResizeEditor', () => {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', () => {\n lazyHeader().each(comp => {\n Docking.isDocked(comp) ? Docking.reset(comp) : Docking.refresh(comp);\n });\n });\n editor.on('FullscreenStateChanged', () => {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('AfterScrollIntoView', e => {\n lazyHeader().each(header => {\n Docking.refresh(header);\n const headerElem = header.element;\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', () => {\n updateEditorClasses(editor, false);\n });\n };\n const isDocked = lazyHeader => lazyHeader().map(Docking.isDocked).getOr(false);\n const getIframeBehaviours = () => [Receiving.config({ channels: { [toolbarHeightChange()]: { onReceive: updateIframeContentFlow } } })];\n const getBehaviours = (editor, sharedBackstage) => {\n const focusedElm = value$4();\n const lazySink = sharedBackstage.getSink;\n const runOnSinkElement = f => {\n lazySink().each(sink => f(sink.element));\n };\n const onDockingSwitch = comp => {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(sink => sink.getSystem().broadcastOn([repositionPopups()], {}));\n };\n const additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return [\n Focusing.config({}),\n Docking.config({\n contextual: {\n lazyContext: comp => {\n const headerHeight = getOuter$2(comp.element);\n const container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n return Optional.from(container).map(c => {\n const box = box$1(SugarElement.fromDom(c));\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.fold(() => {\n const boxHeight = box.height - headerHeight;\n const topBound = box.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return bounds(box.x, topBound, box.width, boxHeight);\n }, scrollEnv => {\n const constrainedBounds = constrain(box, getBoundsFrom(scrollEnv));\n const constrainedBoundsY = isDockedMode(comp, 'top') ? constrainedBounds.y : constrainedBounds.y + headerHeight;\n return bounds(constrainedBounds.x, constrainedBoundsY, constrainedBounds.width, constrainedBounds.height - headerHeight);\n });\n });\n },\n onShow: () => {\n runOnSinkElement(elem => updateSinkVisibility(elem, true));\n },\n onShown: comp => {\n runOnSinkElement(elem => remove$2(elem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]));\n focusedElm.get().each(elem => {\n restoreFocus(comp.element, elem);\n focusedElm.clear();\n });\n },\n onHide: comp => {\n findFocusedElem(comp.element, lazySink).fold(focusedElm.clear, focusedElm.set);\n runOnSinkElement(elem => updateSinkVisibility(elem, false));\n },\n onHidden: () => {\n runOnSinkElement(elem => remove$2(elem, [visibility.transitionClass]));\n },\n ...visibility\n },\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.fold(() => {\n const boundsWithoutOffset = win();\n const offset = getStickyToolbarOffset(editor);\n const top = boundsWithoutOffset.y + (isDockedMode(comp, 'top') && !isFullscreen(editor) ? offset : 0);\n const height = boundsWithoutOffset.height - (isDockedMode(comp, 'bottom') ? offset : 0);\n return {\n bounds: bounds(boundsWithoutOffset.x, top, boundsWithoutOffset.width, height),\n optScrollEnv: Optional.none()\n };\n }, sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n });\n },\n modes: [sharedBackstage.header.getDockingMode()],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n }),\n ...additionalBehaviours\n ];\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$9,\n isDocked: isDocked,\n getBehaviours: getBehaviours\n });\n\n const renderHeader = spec => {\n const editor = spec.editor;\n const getBehaviours$2 = spec.sticky ? getBehaviours : getBehaviours$1;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours$2(editor, spec.sharedBackstage))\n };\n };\n\n const groupToolbarButtonSchema = objOf([\n type,\n requiredOf('items', oneOf([\n arrOfObj([\n name$1,\n requiredArrayOf('items', string)\n ]),\n string\n ]))\n ].concat(baseToolbarButtonFields));\n const createGroupToolbarButton = spec => asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n\n const baseMenuButtonFields = [\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n defaultedOf('search', false, oneOf([\n boolean,\n objOf([optionString('placeholder')])\n ], x => {\n if (isBoolean(x)) {\n return x ? Optional.some({ placeholder: Optional.none() }) : Optional.none();\n } else {\n return Optional.some(x);\n }\n })),\n requiredFunction('fetch'),\n defaultedFunction('onSetup', () => noop),\n defaultedString('context', 'mode:design')\n ];\n\n const MenuButtonSchema = objOf([\n type,\n ...baseMenuButtonFields\n ]);\n const createMenuButton = spec => asRaw('menubutton', MenuButtonSchema, spec);\n\n const splitButtonSchema = objOf([\n type,\n optionalTooltip,\n optionalIcon,\n optionalText,\n optionalSelect,\n fetch$1,\n onSetup,\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaultedColumns(1),\n onAction,\n onItemAction,\n defaultedString('context', 'mode:design')\n ]);\n const createSplitButton = spec => asRaw('SplitButton', splitButtonSchema, spec);\n\n const factory$d = (detail, spec) => {\n const setMenus = (comp, menus) => {\n const newMenus = map$2(menus, m => {\n const buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: callback => {\n callback(m.getItems());\n },\n context: 'any'\n };\n const internal = createMenuButton(buttonSpec).mapError(errInfo => formatError(errInfo)).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', spec.backstage, Optional.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n const apis = {\n focus: Keying.focusIn,\n setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n config('menubar-events', [\n runOnAttached(component => {\n detail.onSetup(component);\n }),\n run$1(mouseover(), (comp, se) => {\n descendant(comp.element, '.' + 'tox-mbtn--active').each(activeButton => {\n closest$1(se.event.target, '.' + 'tox-mbtn').each(hoveredButton => {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(activeComp => {\n comp.getSystem().getByDom(hoveredButton).each(hoveredComp => {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }),\n run$1(focusShifted(), (comp, se) => {\n se.event.prevFocus.bind(prev => comp.getSystem().getByDom(prev).toOptional()).each(prev => {\n se.event.newFocus.bind(nu => comp.getSystem().getByDom(nu).toOptional()).each(nu => {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })\n ]),\n Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: comp => {\n detail.onEscape(comp);\n return Optional.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single({\n factory: factory$d,\n name: 'silver.Menubar',\n configFields: [\n required$1('dom'),\n required$1('uid'),\n required$1('onEscape'),\n required$1('backstage'),\n defaulted('onSetup', noop)\n ],\n apis: {\n focus: (apis, comp) => {\n apis.focus(comp);\n },\n setMenus: (apis, comp, menus) => {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n const promotionMessage = '\\u26A1\\ufe0fUpgrade';\n const promotionLink = 'https://www.tiny.cloud/tinymce-self-hosted-premium-features/?utm_campaign=self_hosted_upgrade_promo&utm_source=tiny&utm_medium=referral';\n const renderPromotion = spec => {\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: [{\n dom: {\n tag: 'a',\n attributes: {\n 'href': promotionLink,\n 'rel': 'noopener',\n 'target': '_blank',\n 'aria-hidden': 'true'\n },\n classes: ['tox-promotion-link'],\n innerHtml: promotionMessage\n }\n }]\n };\n };\n\n const owner = 'container';\n const schema$d = [field('slotBehaviours', [])];\n const getPartName = name => '';\n const sketch = sSpec => {\n const parts = (() => {\n const record = [];\n const slot = (name, config) => {\n record.push(name);\n return generateOne$1(owner, getPartName(name), config);\n };\n return {\n slot,\n record: constant$1(record)\n };\n })();\n const spec = sSpec(parts);\n const partNames = parts.record();\n const fieldParts = map$2(partNames, n => required({\n name: n,\n pname: getPartName(n)\n }));\n return composite$1(owner, schema$d, fieldParts, make$1, spec);\n };\n const make$1 = (detail, components) => {\n const getSlotNames = _ => getAllPartNames(detail);\n const getSlot = (container, key) => getPart(container, detail, key);\n const onSlot = (f, def) => (container, key) => getPart(container, detail, key).map(slot => f(slot, key)).getOr(def);\n const onSlots = f => (container, keys) => {\n each$1(keys, key => f(container, key));\n };\n const doShowing = (comp, _key) => get$g(comp.element, 'aria-hidden') !== 'true';\n const doShow = (comp, key) => {\n if (!doShowing(comp)) {\n const element = comp.element;\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n const doHide = (comp, key) => {\n if (doShowing(comp)) {\n const element = comp.element;\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n const isShowing = onSlot(doShowing, false);\n const hideSlot = onSlot(doHide);\n const hideSlots = onSlots(hideSlot);\n const hideAllSlots = container => hideSlots(container, getSlotNames());\n const showSlot = onSlot(doShow);\n const apis = {\n getSlotNames,\n getSlot,\n isShowing,\n hideSlot,\n hideAllSlots,\n showSlot\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: get$4(detail.slotBehaviours),\n apis\n };\n };\n const slotApis = map$1({\n getSlotNames: (apis, c) => apis.getSlotNames(c),\n getSlot: (apis, c, key) => apis.getSlot(c, key),\n isShowing: (apis, c, key) => apis.isShowing(c, key),\n hideSlot: (apis, c, key) => apis.hideSlot(c, key),\n hideAllSlots: (apis, c) => apis.hideAllSlots(c),\n showSlot: (apis, c, key) => apis.showSlot(c, key)\n }, value => makeApi(value));\n const SlotContainer = {\n ...slotApis,\n ...{ sketch }\n };\n\n const sidebarSchema = objOf([\n optionalIcon,\n optionalTooltip,\n defaultedFunction('onShow', noop),\n defaultedFunction('onHide', noop),\n onSetup\n ]);\n const createSidebar = spec => asRaw('sidebar', sidebarSchema, spec);\n\n const setup$8 = editor => {\n const {sidebars} = editor.ui.registry.getAll();\n each$1(keys(sidebars), name => {\n const spec = sidebars[name];\n const isActive = () => is$1(Optional.from(editor.queryCommandValue('ToggleSidebar')), name);\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: buttonApi => {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: buttonApi => {\n buttonApi.setActive(isActive());\n const handleToggle = () => buttonApi.setActive(isActive());\n editor.on('ToggleSidebar', handleToggle);\n return () => {\n editor.off('ToggleSidebar', handleToggle);\n };\n },\n context: 'any'\n });\n });\n };\n const getApi = comp => ({ element: () => comp.element.dom });\n const makePanels = (parts, panelConfigs) => {\n const specs = map$2(keys(panelConfigs), name => {\n const spec = panelConfigs[name];\n const bridged = getOrDie(createSidebar(spec));\n return {\n name,\n getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map$2(specs, spec => {\n const editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell),\n run$1(slotVisibility(), (sidepanel, se) => {\n const data = se.event;\n const optSidePanelSpec = find$5(specs, config => config.name === data.name);\n optSidePanelSpec.each(sidePanelSpec => {\n const handler = data.visible ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })\n ])\n });\n });\n };\n const makeSidebar = panelConfigs => SlotContainer.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(slotContainer => SlotContainer.hideAllSlots(slotContainer))])\n }));\n const setSidebar = (sidebar, panelConfigs, showSidebar) => {\n const optSlider = Composing.getCurrent(sidebar);\n optSlider.each(slider => {\n Replacing.set(slider, [makeSidebar(panelConfigs)]);\n const configKey = showSidebar === null || showSidebar === void 0 ? void 0 : showSidebar.toLowerCase();\n if (isString(configKey) && has$2(panelConfigs, configKey)) {\n Composing.getCurrent(slider).each(slotContainer => {\n SlotContainer.showSlot(slotContainer, configKey);\n Sliding.immediateGrow(slider);\n remove$7(slider.element, 'width');\n updateSidebarRoleOnToggle(sidebar.element, 'region');\n });\n }\n });\n };\n const updateSidebarRoleOnToggle = (sidebar, sidebarState) => {\n set$9(sidebar, 'role', sidebarState);\n };\n const toggleSidebar = (sidebar, name) => {\n const optSlider = Composing.getCurrent(sidebar);\n optSlider.each(slider => {\n const optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(slotContainer => {\n if (Sliding.hasGrown(slider)) {\n if (SlotContainer.isShowing(slotContainer, name)) {\n Sliding.shrink(slider);\n updateSidebarRoleOnToggle(sidebar.element, 'presentation');\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n updateSidebarRoleOnToggle(sidebar.element, 'region');\n }\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n Sliding.grow(slider);\n updateSidebarRoleOnToggle(sidebar.element, 'region');\n }\n });\n });\n };\n const whichSidebar = sidebar => {\n const optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(slider => {\n const sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n const optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(slotContainer => find$5(SlotContainer.getSlotNames(slotContainer), name => SlotContainer.isShowing(slotContainer, name)));\n } else {\n return Optional.none();\n }\n });\n };\n const fixSize = generate$6('FixSizeEvent');\n const autoSize = generate$6('AutoSizeEvent');\n const renderSidebar = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: { role: 'presentation' }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Sliding.config({\n dimension: { property: 'width' },\n closedClass: 'tox-sidebar--sliding-closed',\n openClass: 'tox-sidebar--sliding-open',\n shrinkingClass: 'tox-sidebar--sliding-shrinking',\n growingClass: 'tox-sidebar--sliding-growing',\n onShrunk: slider => {\n const optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: slider => {\n emit(slider, autoSize);\n },\n onStartGrow: slider => {\n emitWith(slider, fixSize, { width: getRaw(slider.element, 'width').getOr('') });\n },\n onStartShrink: slider => {\n emitWith(slider, fixSize, { width: get$d(slider.element) + 'px' });\n }\n }),\n Replacing.config({}),\n Composing.config({\n find: comp => {\n const children = Replacing.contents(comp);\n return head(children);\n }\n })\n ])\n }],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n config('sidebar-sliding-events', [\n run$1(fixSize, (comp, se) => {\n set$8(comp.element, 'width', se.event.width);\n }),\n run$1(autoSize, (comp, _se) => {\n remove$7(comp.element, 'width');\n })\n ])\n ])\n });\n\n const block = (component, config, state, getBusySpec) => {\n set$9(component.element, 'aria-busy', true);\n const root = config.getRoot(component).getOr(component);\n const blockerBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: () => Optional.some(true),\n onShiftTab: () => Optional.some(true)\n }),\n Focusing.config({})\n ]);\n const blockSpec = getBusySpec(root, blockerBehaviours);\n const blocker = root.getSystem().build(blockSpec);\n Replacing.append(root, premade(blocker));\n if (blocker.hasConfigured(Keying) && config.focus) {\n Keying.focusIn(blocker);\n }\n if (!state.isBlocked()) {\n config.onBlock(component);\n }\n state.blockWith(() => Replacing.remove(root, blocker));\n };\n const unblock = (component, config, state) => {\n remove$8(component.element, 'aria-busy');\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n state.clear();\n };\n const isBlocked = (component, blockingConfig, blockingState) => blockingState.isBlocked();\n\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock,\n isBlocked: isBlocked\n });\n\n var BlockingSchema = [\n defaultedFunction('getRoot', Optional.none),\n defaultedBoolean('focus', true),\n onHandler('onBlock'),\n onHandler('onUnblock')\n ];\n\n const init$4 = () => {\n const blocker = destroyable();\n const blockWith = destroy => {\n blocker.set({ destroy });\n };\n return nu$7({\n readState: blocker.isSet,\n blockWith,\n clear: blocker.clear,\n isBlocked: blocker.isSet\n });\n };\n\n var BlockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n\n const Blocking = create$4({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\n });\n\n const getBusySpec$1 = providerBackstage => (_root, _behaviours) => ({\n dom: {\n tag: 'div',\n attributes: {\n 'aria-label': providerBackstage.translate('Loading...'),\n 'tabindex': '0'\n },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{ dom: fromHtml('
') }]\n });\n const focusBusyComponent = throbber => Composing.getCurrent(throbber).each(comp => focus$3(comp.element, true));\n const toggleEditorTabIndex = (editor, state) => {\n const tabIndexAttr = 'tabindex';\n const dataTabIndexAttr = `data-mce-${ tabIndexAttr }`;\n Optional.from(editor.iframeElement).map(SugarElement.fromDom).each(iframe => {\n if (state) {\n getOpt(iframe, tabIndexAttr).each(tabIndex => set$9(iframe, dataTabIndexAttr, tabIndex));\n set$9(iframe, tabIndexAttr, -1);\n } else {\n remove$8(iframe, tabIndexAttr);\n getOpt(iframe, dataTabIndexAttr).each(tabIndex => {\n set$9(iframe, tabIndexAttr, tabIndex);\n remove$8(iframe, dataTabIndexAttr);\n });\n }\n });\n };\n const toggleThrobber = (editor, comp, state, providerBackstage) => {\n const element = comp.element;\n toggleEditorTabIndex(editor, state);\n if (state) {\n Blocking.block(comp, getBusySpec$1(providerBackstage));\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n if (editor.hasFocus()) {\n focusBusyComponent(comp);\n }\n } else {\n const throbberFocus = Composing.getCurrent(comp).exists(busyComp => hasFocus(busyComp.element));\n Blocking.unblock(comp);\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n if (throbberFocus) {\n editor.focus();\n }\n }\n };\n const renderThrobber = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: { 'aria-hidden': 'true' },\n classes: ['tox-throbber'],\n styles: { display: 'none' }\n },\n behaviours: derive$1([\n Replacing.config({}),\n Blocking.config({ focus: false }),\n Composing.config({ find: comp => head(comp.components()) })\n ]),\n components: []\n });\n const isFocusEvent = event => event.type === 'focusin';\n const isPasteBinTarget = event => {\n if (isFocusEvent(event)) {\n const node = event.composed ? head(event.composedPath()) : Optional.from(event.target);\n return node.map(SugarElement.fromDom).filter(isElement$1).exists(targetElm => has(targetElm, 'mce-pastebin'));\n } else {\n return false;\n }\n };\n const setup$7 = (editor, lazyThrobber, sharedBackstage) => {\n const throbberState = Cell(false);\n const timer = value$4();\n const stealFocus = e => {\n if (throbberState.get() && !isPasteBinTarget(e)) {\n e.preventDefault();\n focusBusyComponent(lazyThrobber());\n editor.editorManager.setActive(editor);\n }\n };\n if (!editor.inline) {\n editor.on('PreInit', () => {\n editor.dom.bind(editor.getWin(), 'focusin', stealFocus);\n editor.on('BeforeExecCommand', e => {\n if (e.command.toLowerCase() === 'mcefocus' && e.value !== true) {\n stealFocus(e);\n }\n });\n });\n }\n const toggle = state => {\n if (state !== throbberState.get()) {\n throbberState.set(state);\n toggleThrobber(editor, lazyThrobber(), state, sharedBackstage.providers);\n fireAfterProgressState(editor, state);\n }\n };\n editor.on('ProgressState', e => {\n timer.on(clearTimeout);\n if (isNumber(e.time)) {\n const timerId = global$9.setEditorTimeout(editor, () => toggle(e.state), e.time);\n timer.set(timerId);\n } else {\n toggle(e.state);\n timer.clear();\n }\n });\n };\n\n const generate$1 = (xs, f) => {\n const init = {\n len: 0,\n list: []\n };\n const r = foldl(xs, (b, a) => {\n const value = f(a, b.len);\n return value.fold(constant$1(b), v => ({\n len: v.finish,\n list: b.list.concat([v])\n }));\n }, init);\n return r.list;\n };\n\n const output = (within, extra, withinWidth) => ({\n within,\n extra,\n withinWidth\n });\n const apportion = (units, total, len) => {\n const parray = generate$1(units, (unit, current) => {\n const width = len(unit);\n return Optional.some({\n element: unit,\n start: current,\n finish: current + width,\n width\n });\n });\n const within = filter$2(parray, unit => unit.finish <= total);\n const withinWidth = foldr(within, (acc, el) => acc + el.width, 0);\n const extra = parray.slice(within.length);\n return {\n within,\n extra,\n withinWidth\n };\n };\n const toUnit = parray => map$2(parray, unit => unit.element);\n const fitLast = (within, extra, withinWidth) => {\n const fits = toUnit(within.concat(extra));\n return output(fits, [], withinWidth);\n };\n const overflow = (within, extra, overflower, withinWidth) => {\n const fits = toUnit(within).concat([overflower]);\n return output(fits, toUnit(extra), withinWidth);\n };\n const fitAll = (within, extra, withinWidth) => output(toUnit(within), [], withinWidth);\n const tryFit = (total, units, len) => {\n const divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n const partition = (total, units, len, overflower) => {\n const divide = tryFit(total, units, len).getOrThunk(() => apportion(units, total - len(overflower), len));\n const within = divide.within;\n const extra = divide.extra;\n const withinWidth = divide.withinWidth;\n if (extra.length === 1 && extra[0].width <= len(overflower)) {\n return fitLast(within, extra, withinWidth);\n } else if (extra.length >= 1) {\n return overflow(within, extra, overflower, withinWidth);\n } else {\n return fitAll(within, extra, withinWidth);\n }\n };\n\n const setGroups$1 = (toolbar, storedGroups) => {\n const bGroups = map$2(storedGroups, g => premade(g));\n Toolbar.setGroups(toolbar, bGroups);\n };\n const findFocusedComp = comps => findMap(comps, comp => search(comp.element).bind(focusedElm => comp.getSystem().getByDom(focusedElm).toOptional()));\n const refresh$2 = (toolbar, detail, setOverflow) => {\n const builtGroups = detail.builtGroups.get();\n if (builtGroups.length === 0) {\n return;\n }\n const primary = getPartOrDie(toolbar, detail, 'primary');\n const overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$8(primary.element, 'visibility', 'hidden');\n const groups = builtGroups.concat([overflowGroup]);\n const focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups$1(primary, groups);\n const availableWidth = get$d(primary.element);\n const overflows = partition(availableWidth, detail.builtGroups.get(), comp => Math.ceil(comp.element.dom.getBoundingClientRect().width), overflowGroup);\n if (overflows.extra.length === 0) {\n Replacing.remove(primary, overflowGroup);\n setOverflow([]);\n } else {\n setGroups$1(primary, overflows.within);\n setOverflow(overflows.extra);\n }\n remove$7(primary.element, 'visibility');\n reflow(primary.element);\n focusedComp.each(Focusing.focus);\n };\n\n const schema$c = constant$1([\n field('splitToolbarBehaviours', [Coupling]),\n customField('builtGroups', () => Cell([]))\n ]);\n\n const schema$b = constant$1([\n markers$1(['overflowToggledClass']),\n optionFunction('getOverflowBounds'),\n required$1('lazySink'),\n customField('overflowGroups', () => Cell([])),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$c()));\n const parts$7 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n external({\n schema: schema$e(),\n name: 'overflow'\n }),\n external({ name: 'overflow-button' }),\n external({ name: 'overflow-group' })\n ]);\n\n const expandable = constant$1((element, available) => {\n setMax(element, Math.floor(available));\n });\n\n const schema$a = constant$1([\n markers$1(['toggledClass']),\n required$1('lazySink'),\n requiredFunction('fetch'),\n optionFunction('getBounds'),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n schema$y(),\n onHandler('onToggled')\n ]);\n const parts$6 = constant$1([\n external({\n name: 'button',\n overrides: detail => ({\n dom: { attributes: { 'aria-haspopup': 'true' } },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false,\n onToggled: detail.onToggled\n })])\n })\n }),\n external({\n factory: Toolbar,\n schema: schema$e(),\n name: 'toolbar',\n overrides: detail => {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: comp => {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })\n ]);\n\n const shouldSkipFocus = value$4();\n const toggleWithoutFocusing = (button, externals) => {\n shouldSkipFocus.set(true);\n toggle(button, externals);\n shouldSkipFocus.clear();\n };\n const toggle = (button, externals) => {\n const toolbarSandbox = Coupling.getCoupled(button, 'toolbarSandbox');\n if (Sandboxing.isOpen(toolbarSandbox)) {\n Sandboxing.close(toolbarSandbox);\n } else {\n Sandboxing.open(toolbarSandbox, externals.toolbar());\n }\n };\n const position = (button, toolbar, detail, layouts) => {\n const bounds = detail.getBounds.map(bounder => bounder());\n const sink = detail.lazySink(button).getOrDie();\n Positioning.positionWithinBounds(sink, toolbar, {\n anchor: {\n type: 'hotspot',\n hotspot: button,\n layouts,\n overrides: { maxWidthFunction: expandable() }\n }\n }, bounds);\n };\n const setGroups = (button, toolbar, detail, layouts, groups) => {\n Toolbar.setGroups(toolbar, groups);\n position(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n const makeSandbox = (button, spec, detail) => {\n const ariaControls = manager();\n const onOpen = (sandbox, toolbar) => {\n const skipFocus = shouldSkipFocus.get().getOr(false);\n detail.fetch().get(groups => {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n ariaControls.link(button.element);\n if (!skipFocus) {\n Keying.focusIn(toolbar);\n }\n });\n };\n const onClose = () => {\n Toggling.off(button);\n if (!shouldSkipFocus.get().getOr(false)) {\n Focusing.focus(button);\n }\n ariaControls.unlink(button.element);\n };\n return {\n dom: {\n tag: 'div',\n attributes: { id: ariaControls.id }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onEscape: comp => {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }),\n Sandboxing.config({\n onOpen,\n onClose,\n isPartOf: (container, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOf$1(button, queryElem);\n },\n getAttachPoint: () => {\n return detail.lazySink(button).getOrDie();\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({\n isExtraPart: never,\n ...detail.fireDismissalEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({})\n }),\n ...receivingChannel({\n doReposition: () => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n position(button, toolbar, detail, spec.layouts);\n });\n }\n })\n }\n })\n ])\n };\n };\n const factory$c = (detail, components, spec, externals) => ({\n ...Button.sketch({\n ...externals.button(),\n action: button => {\n toggle(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({ dump: externals.button().buttonBehaviours }, [Coupling.config({\n others: {\n toolbarSandbox: button => {\n return makeSandbox(button, spec, detail);\n }\n }\n })])\n }),\n apis: {\n setGroups: (button, groups) => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: button => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n position(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: button => {\n toggle(button, externals);\n },\n toggleWithoutFocusing: button => {\n toggleWithoutFocusing(button, externals);\n },\n getToolbar: button => {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: button => {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n const FloatingToolbarButton = composite({\n name: 'FloatingToolbarButton',\n factory: factory$c,\n configFields: schema$a(),\n partFields: parts$6(),\n apis: {\n setGroups: (apis, button, groups) => {\n apis.setGroups(button, groups);\n },\n reposition: (apis, button) => {\n apis.reposition(button);\n },\n toggle: (apis, button) => {\n apis.toggle(button);\n },\n toggleWithoutFocusing: (apis, button) => {\n apis.toggleWithoutFocusing(button);\n },\n getToolbar: (apis, button) => apis.getToolbar(button),\n isOpen: (apis, button) => apis.isOpen(button)\n }\n });\n\n const schema$9 = constant$1([\n required$1('items'),\n markers$1(['itemSelector']),\n field('tgroupBehaviours', [Keying])\n ]);\n const parts$5 = constant$1([group({\n name: 'items',\n unit: 'item'\n })]);\n\n const factory$b = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: { attributes: { role: 'toolbar' } }\n });\n const ToolbarGroup = composite({\n name: 'ToolbarGroup',\n configFields: schema$9(),\n partFields: parts$5(),\n factory: factory$b\n });\n\n const buildGroups = comps => map$2(comps, g => premade(g));\n const refresh$1 = (toolbar, memFloatingToolbarButton, detail) => {\n refresh$2(toolbar, detail, overflowGroups => {\n detail.overflowGroups.set(overflowGroups);\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.setGroups(floatingToolbarButton, buildGroups(overflowGroups));\n });\n });\n };\n const factory$a = (detail, components, spec, externals) => {\n const memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: () => Future.nu(resolve => {\n resolve(buildGroups(detail.overflowGroups.get()));\n }),\n layouts: {\n onLtr: () => [\n southwest$2,\n southeast$2\n ],\n onRtl: () => [\n southeast$2,\n southwest$2\n ],\n onBottomLtr: () => [\n northwest$2,\n northeast$2\n ],\n onBottomRtl: () => [\n northeast$2,\n northwest$2\n ]\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: { toggledClass: detail.markers.overflowToggledClass },\n parts: {\n button: externals['overflow-button'](),\n toolbar: externals.overflow()\n },\n onToggled: (comp, state) => detail[state ? 'onOpened' : 'onClosed'](comp)\n }));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: () => {\n return ToolbarGroup.sketch({\n ...externals['overflow-group'](),\n items: [memFloatingToolbarButton.asSpec()]\n });\n }\n }\n })]),\n apis: {\n setGroups: (toolbar, groups) => {\n detail.builtGroups.set(map$2(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: toolbar => refresh$1(toolbar, memFloatingToolbarButton, detail),\n toggle: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n toggleWithoutFocusing: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(FloatingToolbarButton.toggleWithoutFocusing);\n },\n isOpen: toolbar => memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false),\n reposition: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: toolbar => memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar)\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const SplitFloatingToolbar = composite({\n name: 'SplitFloatingToolbar',\n configFields: schema$b(),\n partFields: parts$7(),\n factory: factory$a,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n },\n refresh: (apis, toolbar) => {\n apis.refresh(toolbar);\n },\n reposition: (apis, toolbar) => {\n apis.reposition(toolbar);\n },\n toggle: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n toggleWithoutFocusing: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n isOpen: (apis, toolbar) => apis.isOpen(toolbar),\n getOverflow: (apis, toolbar) => apis.getOverflow(toolbar)\n }\n });\n\n const schema$8 = constant$1([\n markers$1([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$c()));\n const parts$4 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'overflow',\n overrides: detail => {\n return {\n toolbarBehaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: comp => {\n getPart(comp, detail, 'overflow-button').each(button => {\n Toggling.off(button);\n });\n detail.onClosed(comp);\n },\n onGrown: comp => {\n detail.onOpened(comp);\n },\n onStartGrow: comp => {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: comp => {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })\n ])\n };\n }\n }),\n external({\n name: 'overflow-button',\n overrides: detail => ({\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false\n })])\n })\n }),\n external({ name: 'overflow-group' })\n ]);\n\n const isOpen = (toolbar, detail) => getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n const toggleToolbar = (toolbar, detail, skipFocus) => {\n getPart(toolbar, detail, 'overflow-button').each(oveflowButton => {\n getPart(toolbar, detail, 'overflow').each(overf => {\n refresh(toolbar, detail);\n if (Sliding.hasShrunk(overf)) {\n const fn = detail.onOpened;\n detail.onOpened = comp => {\n if (!skipFocus) {\n Keying.focusIn(overf);\n }\n fn(comp);\n detail.onOpened = fn;\n };\n } else {\n const fn = detail.onClosed;\n detail.onClosed = comp => {\n if (!skipFocus) {\n Focusing.focus(oveflowButton);\n }\n fn(comp);\n detail.onClosed = fn;\n };\n }\n Sliding.toggleGrow(overf);\n });\n });\n };\n const refresh = (toolbar, detail) => {\n getPart(toolbar, detail, 'overflow').each(overflow => {\n refresh$2(toolbar, detail, groups => {\n const builtGroups = map$2(groups, g => premade(g));\n Toolbar.setGroups(overflow, builtGroups);\n });\n getPart(toolbar, detail, 'overflow-button').each(button => {\n if (Sliding.hasGrown(overflow)) {\n Toggling.on(button);\n }\n });\n Sliding.refresh(overflow);\n });\n };\n const factory$9 = (detail, components, spec, externals) => {\n const toolbarToggleEvent = 'alloy.toolbar.toggle';\n const doSetGroups = (toolbar, groups) => {\n const built = map$2(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.splitToolbarBehaviours, [\n Coupling.config({\n others: {\n overflowGroup: toolbar => {\n return ToolbarGroup.sketch({\n ...externals['overflow-group'](),\n items: [Button.sketch({\n ...externals['overflow-button'](),\n action: _button => {\n emit(toolbar, toolbarToggleEvent);\n }\n })]\n });\n }\n }\n }),\n config('toolbar-toggle-events', [run$1(toolbarToggleEvent, toolbar => {\n toggleToolbar(toolbar, detail, false);\n })])\n ]),\n apis: {\n setGroups: (toolbar, groups) => {\n doSetGroups(toolbar, groups);\n refresh(toolbar, detail);\n },\n refresh: toolbar => refresh(toolbar, detail),\n toggle: toolbar => {\n toggleToolbar(toolbar, detail, false);\n },\n toggleWithoutFocusing: toolbar => {\n toggleToolbar(toolbar, detail, true);\n },\n isOpen: toolbar => isOpen(toolbar, detail)\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const SplitSlidingToolbar = composite({\n name: 'SplitSlidingToolbar',\n configFields: schema$8(),\n partFields: parts$4(),\n factory: factory$9,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n },\n refresh: (apis, toolbar) => {\n apis.refresh(toolbar);\n },\n toggle: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n isOpen: (apis, toolbar) => apis.isOpen(toolbar)\n }\n });\n\n const renderToolbarGroupCommon = toolbarGroup => {\n const attributes = toolbarGroup.title.fold(() => ({}), title => ({ attributes: { title } }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__group'],\n ...attributes\n },\n components: [ToolbarGroup.parts.items({})],\n items: toolbarGroup.items,\n markers: { itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), ' + '.tox-split-button:not([disabled]), ' + '.tox-toolbar-nav-js:not([disabled]), ' + '.tox-number-input:not([disabled])' },\n tgroupBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n const renderToolbarGroup = toolbarGroup => ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n const getToolbarBehaviours = (toolbarSpec, modeName) => {\n const onAttached = runOnAttached(component => {\n const groups = map$2(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([\n DisablingConfigs.toolbarButton(() => toolbarSpec.providers.checkUiComponentContext('any').shouldDisable),\n toggleOnReceive(() => toolbarSpec.providers.checkUiComponentContext('any')),\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', [onAttached])\n ]);\n };\n const renderMoreToolbarCommon = toolbarSpec => {\n const modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return {\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Optional.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n context: 'any',\n name: 'more',\n icon: Optional.some('more-drawer'),\n enabled: true,\n tooltip: Optional.some('Reveal or hide additional toolbar items'),\n primary: false,\n buttonType: Optional.none(),\n borderless: false\n }, Optional.none(), toolbarSpec.providers, [], 'overflow-button')\n },\n splitToolbarBehaviours: getToolbarBehaviours(toolbarSpec, modeName)\n };\n };\n const renderFloatingMoreToolbar = toolbarSpec => {\n const baseSpec = renderMoreToolbarCommon(toolbarSpec);\n const overflowXOffset = 4;\n const primary = SplitFloatingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch({\n ...baseSpec,\n lazySink: toolbarSpec.getSink,\n getOverflowBounds: () => {\n const headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n const headerBounds = absolute$2(headerElem);\n const docElem = documentElement(headerElem);\n const docBounds = absolute$2(docElem);\n const height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds(headerBounds.x + overflowXOffset, docBounds.y, headerBounds.width - overflowXOffset * 2, height);\n },\n parts: {\n ...baseSpec.parts,\n overflow: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: toolbarSpec.attributes\n }\n }\n },\n components: [primary],\n markers: { overflowToggledClass: 'tox-tbtn--enabled' },\n onOpened: comp => toolbarSpec.onToggled(comp, true),\n onClosed: comp => toolbarSpec.onToggled(comp, false)\n });\n };\n const renderSlidingMoreToolbar = toolbarSpec => {\n const primary = SplitSlidingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n const overflow = SplitSlidingToolbar.parts.overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n const baseSpec = renderMoreToolbarCommon(toolbarSpec);\n return SplitSlidingToolbar.sketch({\n ...baseSpec,\n components: [\n primary,\n overflow\n ],\n markers: {\n openClass: 'tox-toolbar__overflow--open',\n closedClass: 'tox-toolbar__overflow--closed',\n growingClass: 'tox-toolbar__overflow--growing',\n shrinkingClass: 'tox-toolbar__overflow--shrinking',\n overflowToggledClass: 'tox-tbtn--enabled'\n },\n onOpened: comp => {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'opened' });\n toolbarSpec.onToggled(comp, true);\n },\n onClosed: comp => {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'closed' });\n toolbarSpec.onToggled(comp, false);\n }\n });\n };\n const renderToolbar = toolbarSpec => {\n const modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return Toolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar'].concat(toolbarSpec.type === ToolbarMode$1.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts.groups({})],\n toolbarBehaviours: getToolbarBehaviours(toolbarSpec, modeName)\n });\n };\n\n const baseButtonFields = [\n optionalText,\n optionalIcon,\n optionString('tooltip'),\n defaultedStringEnum('buttonType', 'secondary', [\n 'primary',\n 'secondary'\n ]),\n defaultedBoolean('borderless', false),\n requiredFunction('onAction'),\n defaultedString('context', 'mode:design')\n ];\n const normalButtonFields = [\n ...baseButtonFields,\n text,\n requiredStringEnum('type', ['button'])\n ];\n const toggleButtonFields = [\n ...baseButtonFields,\n defaultedBoolean('active', false),\n requiredStringEnum('type', ['togglebutton'])\n ];\n const schemaWithoutGroupButton = {\n button: normalButtonFields,\n togglebutton: toggleButtonFields\n };\n const groupFields = [\n requiredStringEnum('type', ['group']),\n defaultedArrayOf('buttons', [], choose$1('type', schemaWithoutGroupButton))\n ];\n const viewButtonSchema = choose$1('type', {\n ...schemaWithoutGroupButton,\n group: groupFields\n });\n\n const viewSchema = objOf([\n defaultedArrayOf('buttons', [], viewButtonSchema),\n requiredFunction('onShow'),\n requiredFunction('onHide')\n ]);\n const createView = spec => asRaw('view', viewSchema, spec);\n\n const renderButton = (spec, providers) => {\n var _a, _b;\n const isToggleButton = spec.type === 'togglebutton';\n const optMemIcon = spec.icon.map(memIcon => renderReplaceableIconFromPack(memIcon, providers.icons)).map(record);\n const getAction = () => comp => {\n const setIcon = newIcon => {\n optMemIcon.map(memIcon => memIcon.getOpt(comp).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(newIcon, providers.icons)]);\n }));\n };\n const setActive = state => {\n const elm = comp.element;\n if (state) {\n add$2(elm, 'tox-button--enabled');\n set$9(elm, 'aria-pressed', true);\n } else {\n remove$3(elm, 'tox-button--enabled');\n remove$8(elm, 'aria-pressed');\n }\n };\n const isActive = () => has(comp.element, 'tox-button--enabled');\n const focus = () => focus$3(comp.element);\n if (isToggleButton) {\n return spec.onAction({\n setIcon,\n setActive,\n isActive,\n focus\n });\n }\n if (spec.type === 'button') {\n return spec.onAction({ setIcon });\n }\n };\n const action = getAction();\n const buttonSpec = {\n ...spec,\n name: isToggleButton ? spec.text.getOr(spec.icon.getOr('')) : (_a = spec.text) !== null && _a !== void 0 ? _a : spec.icon.getOr(''),\n primary: spec.buttonType === 'primary',\n buttonType: Optional.from(spec.buttonType),\n tooltip: spec.tooltip,\n icon: spec.icon,\n enabled: true,\n borderless: spec.borderless\n };\n const buttonTypeClasses = calculateClassesFromButtonType((_b = spec.buttonType) !== null && _b !== void 0 ? _b : 'secondary');\n const optTranslatedText = isToggleButton ? spec.text.map(providers.translate) : Optional.some(providers.translate(spec.text));\n const optTranslatedTextComponed = optTranslatedText.map(text$2);\n const ariaLabelAttributes = buttonSpec.tooltip.or(optTranslatedText).map(al => ({ 'aria-label': providers.translate(al) })).getOr({});\n const optIconSpec = optMemIcon.map(memIcon => memIcon.asSpec());\n const components = componentRenderPipeline([\n optIconSpec,\n optTranslatedTextComponed\n ]);\n const hasIconAndText = spec.icon.isSome() && optTranslatedTextComponed.isSome();\n const dom = {\n tag: 'button',\n classes: buttonTypeClasses.concat(...spec.icon.isSome() && !hasIconAndText ? ['tox-button--icon'] : []).concat(...hasIconAndText ? ['tox-button--icon-and-text'] : []).concat(...spec.borderless ? ['tox-button--naked'] : []).concat(...spec.type === 'togglebutton' && spec.active ? ['tox-button--enabled'] : []),\n attributes: ariaLabelAttributes\n };\n const extraBehaviours = [];\n const iconButtonSpec = renderCommonSpec(buttonSpec, Optional.some(action), extraBehaviours, dom, components, spec.tooltip, providers);\n return Button.sketch(iconButtonSpec);\n };\n\n const renderViewButton = (spec, providers) => renderButton(spec, providers);\n const renderButtonsGroup = (spec, providers) => {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-view__toolbar__group']\n },\n components: map$2(spec.buttons, button => renderViewButton(button, providers))\n };\n };\n const deviceDetection = detect$1().deviceType;\n const isPhone = deviceDetection.isPhone();\n const isTablet = deviceDetection.isTablet();\n const renderViewHeader = spec => {\n let hasGroups = false;\n const endButtons = map$2(spec.buttons, btnspec => {\n if (btnspec.type === 'group') {\n hasGroups = true;\n return renderButtonsGroup(btnspec, spec.providers);\n } else {\n return renderViewButton(btnspec, spec.providers);\n }\n });\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: [\n !hasGroups ? 'tox-view__header' : 'tox-view__toolbar',\n ...isPhone || isTablet ? [\n 'tox-view--mobile',\n 'tox-view--scrolling'\n ] : []\n ]\n },\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'flow',\n selector: 'button, .tox-button',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode\n })\n ]),\n components: hasGroups ? endButtons : [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-view__header-start']\n },\n components: []\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-view__header-end']\n },\n components: endButtons\n })\n ]\n };\n };\n const renderViewPane = spec => {\n return {\n uid: spec.uid,\n behaviours: derive$1([\n Focusing.config({}),\n Tabstopping.config({})\n ]),\n dom: {\n tag: 'div',\n classes: ['tox-view__pane']\n }\n };\n };\n const factory$8 = (detail, components, _spec, _externals) => {\n const apis = {\n getPane: comp => parts$a.getPart(comp, detail, 'pane'),\n getOnShow: _comp => detail.viewConfig.onShow,\n getOnHide: _comp => detail.viewConfig.onHide\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'cyclic',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode\n })\n ]),\n apis\n };\n };\n var View = composite({\n name: 'silver.View',\n configFields: [required$1('viewConfig')],\n partFields: [\n optional({\n factory: { sketch: renderViewHeader },\n schema: [\n required$1('buttons'),\n required$1('providers')\n ],\n name: 'header'\n }),\n optional({\n factory: { sketch: renderViewPane },\n schema: [],\n name: 'pane'\n })\n ],\n factory: factory$8,\n apis: {\n getPane: (apis, comp) => apis.getPane(comp),\n getOnShow: (apis, comp) => apis.getOnShow(comp),\n getOnHide: (apis, comp) => apis.getOnHide(comp)\n }\n });\n\n const makeViews = (parts, viewConfigs, providers) => {\n return mapToArray(viewConfigs, (config, name) => {\n const internalViewConfig = getOrDie(createView(config));\n return parts.slot(name, View.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-view']\n },\n viewConfig: internalViewConfig,\n components: [\n ...internalViewConfig.buttons.length > 0 ? [View.parts.header({\n buttons: internalViewConfig.buttons,\n providers\n })] : [],\n View.parts.pane({})\n ]\n }));\n });\n };\n const makeSlotContainer = (viewConfigs, providers) => SlotContainer.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-view-wrap__slot-container']\n },\n components: makeViews(parts, viewConfigs, providers),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(slotContainer => SlotContainer.hideAllSlots(slotContainer))])\n }));\n const getCurrentName = slotContainer => {\n return find$5(SlotContainer.getSlotNames(slotContainer), name => SlotContainer.isShowing(slotContainer, name));\n };\n const hideContainer = comp => {\n const element = comp.element;\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n };\n const showContainer = comp => {\n const element = comp.element;\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n };\n const makeViewInstanceApi = slot => ({ getContainer: constant$1(slot) });\n const runOnPaneWithInstanceApi = (slotContainer, name, get) => {\n SlotContainer.getSlot(slotContainer, name).each(view => {\n View.getPane(view).each(pane => {\n const onCallback = get(view);\n onCallback(makeViewInstanceApi(pane.element.dom));\n });\n });\n };\n const runOnShow = (slotContainer, name) => runOnPaneWithInstanceApi(slotContainer, name, View.getOnShow);\n const runOnHide = (slotContainer, name) => runOnPaneWithInstanceApi(slotContainer, name, View.getOnHide);\n const factory$7 = (detail, spec) => {\n const setViews = (comp, viewConfigs) => {\n Replacing.set(comp, [makeSlotContainer(viewConfigs, spec.backstage.shared.providers)]);\n };\n const whichView = comp => {\n return Composing.getCurrent(comp).bind(getCurrentName);\n };\n const toggleView = (comp, showMainView, hideMainView, name) => {\n return Composing.getCurrent(comp).exists(slotContainer => {\n const optCurrentSlotName = getCurrentName(slotContainer);\n const isTogglingCurrentView = optCurrentSlotName.exists(current => name === current);\n const exists = SlotContainer.getSlot(slotContainer, name).isSome();\n if (exists) {\n SlotContainer.hideAllSlots(slotContainer);\n if (!isTogglingCurrentView) {\n hideMainView();\n showContainer(comp);\n SlotContainer.showSlot(slotContainer, name);\n runOnShow(slotContainer, name);\n } else {\n hideContainer(comp);\n showMainView();\n }\n optCurrentSlotName.each(prevName => runOnHide(slotContainer, prevName));\n }\n return exists;\n });\n };\n const apis = {\n setViews,\n whichView,\n toggleView\n };\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n classes: ['tox-view-wrap'],\n attributes: { 'aria-hidden': 'true' },\n styles: { display: 'none' }\n },\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n Composing.config({\n find: comp => {\n const children = Replacing.contents(comp);\n return head(children);\n }\n })\n ]),\n apis\n };\n };\n var ViewWrapper = single({\n factory: factory$7,\n name: 'silver.ViewWrapper',\n configFields: [required$1('backstage')],\n apis: {\n setViews: (apis, comp, views) => apis.setViews(comp, views),\n toggleView: (apis, comp, outerContainer, editorCont, name) => apis.toggleView(comp, outerContainer, editorCont, name),\n whichView: (apis, comp) => apis.whichView(comp)\n }\n });\n\n const factory$6 = (detail, components, _spec) => {\n let toolbarDrawerOpenState = false;\n const toggleStatusbar = editorContainer => {\n sibling(editorContainer, '.tox-statusbar').each(statusBar => {\n if (get$f(statusBar, 'display') === 'none' && get$g(statusBar, 'aria-hidden') === 'true') {\n remove$7(statusBar, 'display');\n remove$8(statusBar, 'aria-hidden');\n } else {\n set$8(statusBar, 'display', 'none');\n set$9(statusBar, 'aria-hidden', 'true');\n }\n });\n };\n const apis = {\n getSocket: comp => {\n return parts$a.getPart(comp, detail, 'socket');\n },\n setSidebar: (comp, panelConfigs, showSidebar) => {\n parts$a.getPart(comp, detail, 'sidebar').each(sidebar => setSidebar(sidebar, panelConfigs, showSidebar));\n },\n toggleSidebar: (comp, name) => {\n parts$a.getPart(comp, detail, 'sidebar').each(sidebar => toggleSidebar(sidebar, name));\n },\n whichSidebar: comp => {\n return parts$a.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: comp => {\n return parts$a.getPart(comp, detail, 'header');\n },\n getToolbar: comp => {\n return parts$a.getPart(comp, detail, 'toolbar');\n },\n setToolbar: (comp, groups) => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n const renderedGroups = map$2(groups, renderToolbarGroup);\n toolbar.getApis().setGroups(toolbar, renderedGroups);\n });\n },\n setToolbars: (comp, toolbars) => {\n parts$a.getPart(comp, detail, 'multiple-toolbar').each(mToolbar => {\n const renderedToolbars = map$2(toolbars, g => map$2(g, renderToolbarGroup));\n CustomList.setItems(mToolbar, renderedToolbars);\n });\n },\n refreshToolbar: comp => {\n const toolbar = parts$a.getPart(comp, detail, 'toolbar');\n toolbar.each(toolbar => toolbar.getApis().refresh(toolbar));\n },\n toggleToolbarDrawer: comp => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n mapFrom(toolbar.getApis().toggle, toggle => toggle(toolbar));\n });\n },\n toggleToolbarDrawerWithoutFocusing: comp => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n mapFrom(toolbar.getApis().toggleWithoutFocusing, toggleWithoutFocusing => toggleWithoutFocusing(toolbar));\n });\n },\n isToolbarDrawerToggled: comp => {\n return parts$a.getPart(comp, detail, 'toolbar').bind(toolbar => Optional.from(toolbar.getApis().isOpen).map(isOpen => isOpen(toolbar))).getOr(false);\n },\n getThrobber: comp => {\n return parts$a.getPart(comp, detail, 'throbber');\n },\n focusToolbar: comp => {\n const optToolbar = parts$a.getPart(comp, detail, 'toolbar').orThunk(() => parts$a.getPart(comp, detail, 'multiple-toolbar'));\n optToolbar.each(toolbar => {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: (comp, menus) => {\n parts$a.getPart(comp, detail, 'menubar').each(menubar => {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: comp => {\n parts$a.getPart(comp, detail, 'menubar').each(menubar => {\n SilverMenubar.focus(menubar);\n });\n },\n setViews: (comp, viewConfigs) => {\n parts$a.getPart(comp, detail, 'viewWrapper').each(wrapper => {\n ViewWrapper.setViews(wrapper, viewConfigs);\n });\n },\n toggleView: (comp, name) => {\n return parts$a.getPart(comp, detail, 'viewWrapper').exists(wrapper => ViewWrapper.toggleView(wrapper, () => apis.showMainView(comp), () => apis.hideMainView(comp), name));\n },\n whichView: comp => {\n return parts$a.getPart(comp, detail, 'viewWrapper').bind(ViewWrapper.whichView).getOrNull();\n },\n hideMainView: comp => {\n toolbarDrawerOpenState = apis.isToolbarDrawerToggled(comp);\n if (toolbarDrawerOpenState) {\n apis.toggleToolbarDrawer(comp);\n }\n parts$a.getPart(comp, detail, 'editorContainer').each(editorContainer => {\n const element = editorContainer.element;\n toggleStatusbar(element);\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n });\n },\n showMainView: comp => {\n if (toolbarDrawerOpenState) {\n apis.toggleToolbarDrawer(comp);\n }\n parts$a.getPart(comp, detail, 'editorContainer').each(editorContainer => {\n const element = editorContainer.element;\n toggleStatusbar(element);\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis,\n behaviours: detail.behaviours\n };\n };\n const partMenubar = partType.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [required$1('backstage')]\n });\n const toolbarFactory = spec => {\n if (spec.type === ToolbarMode$1.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.type === ToolbarMode$1.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n const partMultipleToolbar = partType.optional({\n factory: {\n sketch: spec => CustomList.sketch({\n uid: spec.uid,\n dom: spec.dom,\n listBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n selector: '.tox-toolbar'\n })]),\n makeItem: () => renderToolbar({\n type: spec.type,\n uid: generate$6('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: () => {\n spec.onEscape();\n return Optional.some(true);\n }\n }),\n setupItem: (_mToolbar, tc, data, _index) => {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n })\n },\n name: 'multiple-toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape')\n ]\n });\n const partToolbar = partType.optional({\n factory: {\n sketch: spec => {\n const renderer = toolbarFactory(spec);\n const toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: () => {\n spec.onEscape();\n return Optional.some(true);\n },\n onToggled: (_comp, state) => spec.onToolbarToggled(state),\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n providers: spec.providers,\n moreDrawerData: {\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton,\n lazyHeader: spec.lazyHeader\n },\n attributes: spec.attributes\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape'),\n required$1('getSink')\n ]\n });\n const partHeader = partType.optional({\n factory: { sketch: renderHeader },\n name: 'header',\n schema: [required$1('dom')]\n });\n const partPromotion = partType.optional({\n factory: { sketch: renderPromotion },\n name: 'promotion',\n schema: [required$1('dom')]\n });\n const partSocket = partType.optional({\n name: 'socket',\n schema: [required$1('dom')]\n });\n const partSidebar = partType.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [required$1('dom')]\n });\n const partThrobber = partType.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [required$1('dom')]\n });\n const partViewWrapper = partType.optional({\n factory: ViewWrapper,\n name: 'viewWrapper',\n schema: [required$1('backstage')]\n });\n const renderEditorContainer = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: spec.components\n });\n const partEditorContainer = partType.optional({\n factory: { sketch: renderEditorContainer },\n name: 'editorContainer',\n schema: []\n });\n var OuterContainer = composite({\n name: 'OuterContainer',\n factory: factory$6,\n configFields: [\n required$1('dom'),\n required$1('behaviours')\n ],\n partFields: [\n partHeader,\n partMenubar,\n partToolbar,\n partMultipleToolbar,\n partSocket,\n partSidebar,\n partPromotion,\n partThrobber,\n partViewWrapper,\n partEditorContainer\n ],\n apis: {\n getSocket: (apis, comp) => {\n return apis.getSocket(comp);\n },\n setSidebar: (apis, comp, panelConfigs, showSidebar) => {\n apis.setSidebar(comp, panelConfigs, showSidebar);\n },\n toggleSidebar: (apis, comp, name) => {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: (apis, comp) => {\n return apis.whichSidebar(comp);\n },\n getHeader: (apis, comp) => {\n return apis.getHeader(comp);\n },\n getToolbar: (apis, comp) => {\n return apis.getToolbar(comp);\n },\n setToolbar: (apis, comp, groups) => {\n apis.setToolbar(comp, groups);\n },\n setToolbars: (apis, comp, toolbars) => {\n apis.setToolbars(comp, toolbars);\n },\n refreshToolbar: (apis, comp) => {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: (apis, comp) => {\n apis.toggleToolbarDrawer(comp);\n },\n toggleToolbarDrawerWithoutFocusing: (apis, comp) => {\n apis.toggleToolbarDrawerWithoutFocusing(comp);\n },\n isToolbarDrawerToggled: (apis, comp) => {\n return apis.isToolbarDrawerToggled(comp);\n },\n getThrobber: (apis, comp) => {\n return apis.getThrobber(comp);\n },\n setMenubar: (apis, comp, menus) => {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: (apis, comp) => {\n apis.focusMenubar(comp);\n },\n focusToolbar: (apis, comp) => {\n apis.focusToolbar(comp);\n },\n setViews: (apis, comp, views) => {\n apis.setViews(comp, views);\n },\n toggleView: (apis, comp, name) => {\n return apis.toggleView(comp, name);\n },\n whichView: (apis, comp) => {\n return apis.whichView(comp);\n }\n }\n });\n\n const defaultMenubar = 'file edit view insert format tools table help';\n const defaultMenus = {\n file: {\n title: 'File',\n items: 'newdocument restoredraft | preview | importword exportpdf exportword | export print | deleteallconversations'\n },\n edit: {\n title: 'Edit',\n items: 'undo redo | cut copy paste pastetext | selectall | searchreplace'\n },\n view: {\n title: 'View',\n items: 'code revisionhistory | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments'\n },\n insert: {\n title: 'Insert',\n items: 'image link media addcomment pageembed inserttemplate codesample inserttable accordion math | charmap emoticons hr | pagebreak nonbreaking anchor tableofcontents footnotes | mergetags | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | styles blocks fontfamily fontsize align lineheight | forecolor backcolor | language | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'aidialog aishortcuts | spellchecker spellcheckerlanguage | autocorrect capitalization | a11ycheck code typography wordcount addtemplate'\n },\n table: {\n title: 'Table',\n items: 'inserttable | cell row column | advtablesort | tableprops deletetable'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n const make = (menu, registry, editor) => {\n const removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: () => bind$3(menu.items, i => {\n const itemName = i.toLowerCase();\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, removedMenuItem => removedMenuItem === itemName)) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{ type: 'separator' }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n })\n };\n };\n const parseItemsString = items => {\n return items.split(' ');\n };\n const identifyMenus = (editor, registry) => {\n const rawMenuData = {\n ...defaultMenus,\n ...registry.menus\n };\n const userDefinedMenus = keys(registry.menus).length > 0;\n const menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n const validMenus = filter$2(menubar, menuName => {\n const isDefaultMenu = has$2(defaultMenus, menuName);\n if (userDefinedMenus) {\n return isDefaultMenu || get$h(registry.menus, menuName).exists(menu => has$2(menu, 'items'));\n } else {\n return isDefaultMenu;\n }\n });\n const menus = map$2(validMenus, menuName => {\n const menuData = rawMenuData[menuName];\n return make({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter$2(menus, menu => {\n const isNotSeparator = item => isString(item) || item.type !== 'separator';\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n const fireSkinLoaded = editor => {\n const done = () => {\n editor._skinLoaded = true;\n fireSkinLoaded$1(editor);\n };\n return () => {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n const fireSkinLoadError = (editor, err) => () => fireSkinLoadError$1(editor, { message: err });\n\n const loadStylesheet = (editor, stylesheetUrl, styleSheetLoader) => {\n editor.on('remove', () => styleSheetLoader.unload(stylesheetUrl));\n return styleSheetLoader.load(stylesheetUrl);\n };\n const loadRawCss = (editor, key, css, styleSheetLoader) => {\n editor.on('remove', () => styleSheetLoader.unloadRawCss(key));\n return styleSheetLoader.loadRawCss(key, css);\n };\n const loadUiSkins = async (editor, skinUrl) => {\n const skinResourceIdentifier = getSkinUrlOption(editor).getOr('default');\n const skinUiCss = 'ui/' + skinResourceIdentifier + '/skin.css';\n const css = tinymce.Resource.get(skinUiCss);\n if (isString(css)) {\n loadRawCss(editor, skinUiCss, css, editor.ui.styleSheetLoader);\n } else {\n const suffix = editor.editorManager.suffix;\n const skinUiCss = skinUrl + `/skin${ suffix }.css`;\n return loadStylesheet(editor, skinUiCss, editor.ui.styleSheetLoader);\n }\n };\n const loadShadowDomUiSkins = async (editor, skinUrl) => {\n const isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n if (isInShadowRoot$1) {\n const skinResourceIdentifier = getSkinUrlOption(editor).getOr('default');\n const shadowDomSkinCss = 'ui/' + skinResourceIdentifier + '/skin.shadowdom.css';\n const css = tinymce.Resource.get(shadowDomSkinCss);\n if (isString(css)) {\n loadRawCss(editor, shadowDomSkinCss, css, global$8.DOM.styleSheetLoader);\n } else {\n const suffix = editor.editorManager.suffix;\n const shadowDomSkinCss = skinUrl + `/skin.shadowdom${ suffix }.css`;\n return loadStylesheet(editor, shadowDomSkinCss, global$8.DOM.styleSheetLoader);\n }\n }\n };\n const loadUrlSkin = async (isInline, editor) => {\n const unbundled = () => {\n const skinResourceIdentifier = getSkinUrl(editor);\n const suffix = editor.editorManager.suffix;\n if (skinResourceIdentifier) {\n editor.contentCSS.push(skinResourceIdentifier + (isInline ? '/content.inline' : '/content') + `${ suffix }.css`);\n }\n };\n getSkinUrlOption(editor).fold(unbundled, skinUrl => {\n const skinContentCss = 'ui/' + skinUrl + (isInline ? '/content.inline' : '/content') + '.css';\n const css = tinymce.Resource.get(skinContentCss);\n if (isString(css)) {\n loadRawCss(editor, skinContentCss, css, editor.ui.styleSheetLoader);\n } else {\n unbundled();\n }\n });\n const skinUrl = getSkinUrl(editor);\n if (!isSkinDisabled(editor) && isString(skinUrl)) {\n return Promise.all([\n loadUiSkins(editor, skinUrl),\n loadShadowDomUiSkins(editor, skinUrl)\n ]).then();\n }\n };\n const loadSkin = (isInline, editor) => {\n return loadUrlSkin(isInline, editor).then(fireSkinLoaded(editor), fireSkinLoadError(editor, 'Skin could not be loaded'));\n };\n const iframe = curry(loadSkin, false);\n const inline = curry(loadSkin, true);\n\n const makeTooltipText = (editor, labelWithPlaceholder, value) => isEmpty(value) ? editor.translate(labelWithPlaceholder) : editor.translate([\n labelWithPlaceholder,\n editor.translate(value)\n ]);\n\n const generateSelectItems = (backstage, spec) => {\n const generateItem = (rawItem, response, invalid, value) => {\n const translatedText = backstage.shared.providers.translate(rawItem.title);\n if (rawItem.type === 'separator') {\n return Optional.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n const items = bind$3(rawItem.getStyleItems(), si => validate(si, response, value));\n if (response === 0 && items.length <= 0) {\n return Optional.none();\n } else {\n return Optional.some({\n type: 'nestedmenuitem',\n text: translatedText,\n enabled: items.length > 0,\n getSubmenuItems: () => bind$3(rawItem.getStyleItems(), si => validate(si, response, value))\n });\n }\n } else {\n return Optional.some({\n type: 'togglemenuitem',\n text: translatedText,\n icon: rawItem.icon,\n active: rawItem.isSelected(value),\n enabled: !invalid,\n onAction: spec.onAction(rawItem),\n ...rawItem.getStylePreview().fold(() => ({}), preview => ({ meta: { style: preview } }))\n });\n }\n };\n const validate = (item, response, value) => {\n const invalid = item.type === 'formatter' && spec.isInvalid(item);\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false, value).toArray();\n } else {\n return generateItem(item, response, invalid, value).toArray();\n }\n };\n const validateItems = preItems => {\n const value = spec.getCurrentValue();\n const response = spec.shouldHide ? 0 : 1;\n return bind$3(preItems, item => validate(item, response, value));\n };\n const getFetch = (backstage, getStyleItems) => (comp, callback) => {\n const preItems = getStyleItems();\n const items = validateItems(preItems);\n const menu = build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n });\n callback(menu);\n };\n return {\n validateItems,\n getFetch\n };\n };\n const createMenuItems = (backstage, spec) => {\n const dataset = spec.dataset;\n const getStyleItems = dataset.type === 'basic' ? () => map$2(dataset.data, d => processBasic(d, spec.isSelectedFor, spec.getPreviewFor)) : dataset.getData;\n return {\n items: generateSelectItems(backstage, spec),\n getStyleItems\n };\n };\n const createSelectButton = (editor, backstage, spec, getTooltip, textUpdateEventName, btnName) => {\n const {items, getStyleItems} = createMenuItems(backstage, spec);\n const tooltipString = Cell(spec.tooltip);\n const getApi = comp => ({\n getComponent: constant$1(comp),\n setTooltip: tooltip => {\n const translatedTooltip = backstage.shared.providers.translate(tooltip);\n set$9(comp.element, 'aria-label', translatedTooltip);\n tooltipString.set(tooltip);\n }\n });\n const onSetup = api => {\n const handler = e => api.setTooltip(makeTooltipText(editor, getTooltip(e.value), e.value));\n editor.on(textUpdateEventName, handler);\n return composeUnbinders(onSetupEvent(editor, 'NodeChange', api => {\n const comp = api.getComponent();\n spec.updateText(comp);\n Disabling.set(api.getComponent(), !editor.selection.isEditable());\n })(api), () => editor.off(textUpdateEventName, handler));\n };\n return renderCommonDropdown({\n context: 'mode:design',\n text: spec.icon.isSome() ? Optional.none() : spec.text,\n icon: spec.icon,\n ariaLabel: Optional.some(spec.tooltip),\n tooltip: Optional.none(),\n role: Optional.none(),\n fetch: items.getFetch(backstage, getStyleItems),\n onSetup,\n getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: [Tooltipping.config({\n ...backstage.shared.providers.tooltips.getConfig({\n tooltipText: backstage.shared.providers.translate(spec.tooltip),\n onShow: comp => {\n if (spec.tooltip !== tooltipString.get()) {\n const translatedTooltip = backstage.shared.providers.translate(tooltipString.get());\n Tooltipping.setComponents(comp, backstage.shared.providers.tooltips.getComponents({ tooltipText: translatedTooltip }));\n }\n }\n })\n })]\n }, 'tox-tbtn', backstage.shared, btnName);\n };\n\n const process = rawFormats => map$2(rawFormats, item => {\n let title = item, format = item;\n const values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title,\n format\n };\n });\n const buildBasicStaticDataset = data => ({\n type: 'basic',\n data\n });\n var Delimiter;\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n }(Delimiter || (Delimiter = {})));\n const split = (rawFormats, delimiter) => {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n const buildBasicSettingsDataset = (editor, settingName, delimiter) => {\n const rawFormats = editor.options.get(settingName);\n const data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data\n };\n };\n\n const menuTitle$4 = 'Align';\n const getTooltipPlaceholder$4 = constant$1('Alignment {0}');\n const fallbackAlignment = 'left';\n const alignMenuItems = [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft',\n command: 'JustifyLeft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }\n ];\n const getSpec$4 = editor => {\n const getMatchingValue = () => find$5(alignMenuItems, item => editor.formatter.match(item.format));\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = _format => Optional.none;\n const updateSelectMenuIcon = comp => {\n const match = getMatchingValue();\n const alignment = match.fold(constant$1(fallbackAlignment), item => item.title.toLowerCase());\n emitWith(comp, updateMenuIcon, { icon: `align-${ alignment }` });\n fireAlignTextUpdate(editor, { value: alignment });\n };\n const dataset = buildBasicStaticDataset(alignMenuItems);\n const onAction = rawItem => () => find$5(alignMenuItems, item => item.format === rawItem.format).each(item => editor.execCommand(item.command));\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$4(), fallbackAlignment),\n text: Optional.none(),\n icon: Optional.some('align-left'),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction,\n updateText: updateSelectMenuIcon,\n dataset,\n shouldHide: false,\n isInvalid: item => !editor.formatter.canApply(item.format)\n };\n };\n const createAlignButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$4(editor), getTooltipPlaceholder$4, 'AlignTextUpdate', 'align');\n const createAlignMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$4(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate(menuTitle$4),\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const findNearest = (editor, getStyles) => {\n const styles = getStyles();\n const formats = map$2(styles, style => style.format);\n return Optional.from(editor.formatter.closest(formats)).bind(fmt => find$5(styles, data => data.format === fmt));\n };\n\n const menuTitle$3 = 'Blocks';\n const getTooltipPlaceholder$3 = constant$1('Block {0}');\n const fallbackFormat = 'Paragraph';\n const getSpec$3 = editor => {\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const fmt = editor.formatter.get(format);\n if (fmt) {\n return Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n });\n } else {\n return Optional.none();\n }\n };\n const updateSelectMenuText = comp => {\n const detectedFormat = findNearest(editor, () => dataset.data);\n const text = detectedFormat.fold(constant$1(fallbackFormat), fmt => fmt.title);\n emitWith(comp, updateMenuText, { text });\n fireBlocksTextUpdate(editor, { value: text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'block_formats', Delimiter.SemiColon);\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$3(), fallbackFormat),\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: item => !editor.formatter.canApply(item.format)\n };\n };\n const createBlocksButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$3(editor), getTooltipPlaceholder$3, 'BlocksTextUpdate', 'blocks');\n const createBlocksMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('blocks', {\n text: menuTitle$3,\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const menuTitle$2 = 'Fonts';\n const getTooltipPlaceholder$2 = constant$1('Font {0}');\n const systemFont = 'System Font';\n const systemStackFonts = [\n '-apple-system',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'sans-serif'\n ];\n const splitFonts = fontFamily => {\n const fonts = fontFamily.split(/\\s*,\\s*/);\n return map$2(fonts, font => font.replace(/^['\"]+|['\"]+$/g, ''));\n };\n const matchesStack = (fonts, stack) => stack.length > 0 && forall(stack, font => fonts.indexOf(font.toLowerCase()) > -1);\n const isSystemFontStack = (fontFamily, userStack) => {\n if (fontFamily.indexOf('-apple-system') === 0 || userStack.length > 0) {\n const fonts = splitFonts(fontFamily.toLowerCase());\n return matchesStack(fonts, systemStackFonts) || matchesStack(fonts, userStack);\n } else {\n return false;\n }\n };\n const getSpec$2 = editor => {\n const getMatchingValue = () => {\n const getFirstFont = fontFamily => fontFamily ? splitFonts(fontFamily)[0] : '';\n const fontFamily = editor.queryCommandValue('FontName');\n const items = dataset.data;\n const font = fontFamily ? fontFamily.toLowerCase() : '';\n const userStack = getDefaultFontStack(editor);\n const matchOpt = find$5(items, item => {\n const format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(() => {\n return someIf(isSystemFontStack(font, userStack), {\n title: systemFont,\n format: font\n });\n });\n return {\n matchOpt,\n font: fontFamily\n };\n };\n const isSelectedFor = item => valueOpt => valueOpt.exists(value => value.format === item);\n const getCurrentValue = () => {\n const {matchOpt} = getMatchingValue();\n return matchOpt;\n };\n const getPreviewFor = item => () => Optional.some({\n tag: 'div',\n styles: item.indexOf('dings') === -1 ? { 'font-family': item } : {}\n });\n const onAction = rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n const updateSelectMenuText = comp => {\n const {matchOpt, font} = getMatchingValue();\n const text = matchOpt.fold(constant$1(font), item => item.title);\n emitWith(comp, updateMenuText, { text });\n fireFontFamilyTextUpdate(editor, { value: text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'font_family_formats', Delimiter.SemiColon);\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$2(), systemFont),\n text: Optional.some(systemFont),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue,\n getPreviewFor,\n onAction,\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n const createFontFamilyButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$2(editor), getTooltipPlaceholder$2, 'FontFamilyTextUpdate', 'fontfamily');\n const createFontFamilyMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontfamily', {\n text: backstage.shared.providers.translate(menuTitle$2),\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n const pattern = (() => {\n const decimalDigits = '[0-9]+';\n const signedInteger = '[+-]?' + decimalDigits;\n const exponentPart = '[eE]' + signedInteger;\n const dot = '\\\\.';\n const opt = input => `(?:${ input })?`;\n const unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n const float = `[+-]?(?:${ unsignedDecimalLiteral })`;\n return new RegExp(`^(${ float })(.*)$`);\n })();\n const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check));\n const parse = (input, accepted) => {\n const match = Optional.from(pattern.exec(input));\n return match.bind(array => {\n const value = Number(array[1]);\n const unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n const normalise = (input, accepted) => parse(input, accepted).map(({value, unit}) => value + unit);\n\n const Keys = {\n tab: constant$1(9),\n escape: constant$1(27),\n enter: constant$1(13),\n backspace: constant$1(8),\n delete: constant$1(46),\n left: constant$1(37),\n up: constant$1(38),\n right: constant$1(39),\n down: constant$1(40),\n space: constant$1(32),\n home: constant$1(36),\n end: constant$1(35),\n pageUp: constant$1(33),\n pageDown: constant$1(34)\n };\n\n const createBespokeNumberInput = (editor, backstage, spec, btnName) => {\n let currentComp = Optional.none();\n const getValueFromCurrentComp = comp => comp.map(alloyComp => Representing.getValue(alloyComp)).getOr('');\n const onSetup = onSetupEvent(editor, 'NodeChange SwitchMode', api => {\n const comp = api.getComponent();\n currentComp = Optional.some(comp);\n spec.updateInputValue(comp);\n Disabling.set(comp, !editor.selection.isEditable());\n });\n const getApi = comp => ({ getComponent: constant$1(comp) });\n const editorOffCell = Cell(noop);\n const customEvents = generate$6('custom-number-input-events');\n const changeValue = (f, fromInput, focusBack) => {\n const text = getValueFromCurrentComp(currentComp);\n const newValue = spec.getNewValue(text, f);\n const lenghtDelta = text.length - `${ newValue }`.length;\n const oldStart = currentComp.map(comp => comp.element.dom.selectionStart - lenghtDelta);\n const oldEnd = currentComp.map(comp => comp.element.dom.selectionEnd - lenghtDelta);\n spec.onAction(newValue, focusBack);\n currentComp.each(comp => {\n Representing.setValue(comp, newValue);\n if (fromInput) {\n oldStart.each(oldStart => comp.element.dom.selectionStart = oldStart);\n oldEnd.each(oldEnd => comp.element.dom.selectionEnd = oldEnd);\n }\n });\n };\n const decrease = (fromInput, focusBack) => changeValue((n, s) => n - s, fromInput, focusBack);\n const increase = (fromInput, focusBack) => changeValue((n, s) => n + s, fromInput, focusBack);\n const goToParent = comp => parentElement(comp.element).fold(Optional.none, parent => {\n focus$3(parent);\n return Optional.some(true);\n });\n const focusInput = comp => {\n if (hasFocus(comp.element)) {\n firstChild(comp.element).each(input => focus$3(input));\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n };\n const makeStepperButton = (action, title, tooltip, classes) => {\n const editorOffCellStepButton = Cell(noop);\n const translatedTooltip = backstage.shared.providers.translate(tooltip);\n const altExecuting = generate$6('altExecuting');\n const onSetup = onSetupEvent(editor, 'NodeChange SwitchMode', api => {\n Disabling.set(api.getComponent(), !editor.selection.isEditable());\n });\n const onClick = comp => {\n if (!Disabling.isDisabled(comp)) {\n action(true);\n }\n };\n return Button.sketch({\n dom: {\n tag: 'button',\n attributes: {\n 'aria-label': translatedTooltip,\n 'data-mce-name': title\n },\n classes: classes.concat(title)\n },\n components: [renderIconFromPack$1(title, backstage.shared.providers.icons)],\n buttonBehaviours: derive$1([\n Disabling.config({}),\n Tooltipping.config(backstage.shared.providers.tooltips.getConfig({ tooltipText: translatedTooltip })),\n config(altExecuting, [\n onControlAttached({\n onSetup,\n getApi\n }, editorOffCellStepButton),\n onControlDetached({ getApi }, editorOffCellStepButton),\n run$1(keydown(), (comp, se) => {\n if (se.event.raw.keyCode === Keys.space() || se.event.raw.keyCode === Keys.enter()) {\n if (!Disabling.isDisabled(comp)) {\n action(false);\n }\n }\n }),\n run$1(click(), onClick),\n run$1(touchend(), onClick)\n ])\n ]),\n eventOrder: {\n [keydown()]: [\n altExecuting,\n 'keying'\n ],\n [click()]: [\n altExecuting,\n 'alloy.base.behaviour'\n ],\n [touchend()]: [\n altExecuting,\n 'alloy.base.behaviour'\n ],\n [attachedToDom()]: [\n 'alloy.base.behaviour',\n altExecuting,\n 'tooltipping'\n ],\n [detachedFromDom()]: [\n altExecuting,\n 'tooltipping'\n ]\n }\n });\n };\n const memMinus = record(makeStepperButton(focusBack => decrease(false, focusBack), 'minus', 'Decrease font size', []));\n const memPlus = record(makeStepperButton(focusBack => increase(false, focusBack), 'plus', 'Increase font size', []));\n const memInput = record({\n dom: {\n tag: 'div',\n classes: ['tox-input-wrapper']\n },\n components: [Input.sketch({\n inputBehaviours: derive$1([\n Disabling.config({}),\n config(customEvents, [\n onControlAttached({\n onSetup,\n getApi\n }, editorOffCell),\n onControlDetached({ getApi }, editorOffCell)\n ]),\n config('input-update-display-text', [\n run$1(updateMenuText, (comp, se) => {\n Representing.setValue(comp, se.event.text);\n }),\n run$1(focusout(), comp => {\n spec.onAction(Representing.getValue(comp));\n }),\n run$1(change(), comp => {\n spec.onAction(Representing.getValue(comp));\n })\n ]),\n Keying.config({\n mode: 'special',\n onEnter: _comp => {\n changeValue(identity, true, true);\n return Optional.some(true);\n },\n onEscape: goToParent,\n onUp: _comp => {\n increase(true, false);\n return Optional.some(true);\n },\n onDown: _comp => {\n decrease(true, false);\n return Optional.some(true);\n },\n onLeft: (_comp, se) => {\n se.cut();\n return Optional.none();\n },\n onRight: (_comp, se) => {\n se.cut();\n return Optional.none();\n }\n })\n ])\n })],\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'special',\n onEnter: focusInput,\n onSpace: focusInput,\n onEscape: goToParent\n }),\n config('input-wrapper-events', [run$1(mouseover(), comp => {\n each$1([\n memMinus,\n memPlus\n ], button => {\n const buttonNode = SugarElement.fromDom(button.get(comp).element.dom);\n if (hasFocus(buttonNode)) {\n blur$1(buttonNode);\n }\n });\n })])\n ])\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-number-input'],\n attributes: { ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {} }\n },\n components: [\n memMinus.asSpec(),\n memInput.asSpec(),\n memPlus.asSpec()\n ],\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'flow',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode,\n cycles: false,\n selector: 'button, .tox-input-wrapper',\n onEscape: wrapperComp => {\n if (hasFocus(wrapperComp.element)) {\n return Optional.none();\n } else {\n focus$3(wrapperComp.element);\n return Optional.some(true);\n }\n }\n })\n ])\n };\n };\n\n const menuTitle$1 = 'Font sizes';\n const getTooltipPlaceholder$1 = constant$1('Font size {0}');\n const fallbackFontSize = '12pt';\n const legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n const keywordFontSizes = {\n 'xx-small': '7pt',\n 'x-small': '8pt',\n 'small': '10pt',\n 'medium': '12pt',\n 'large': '14pt',\n 'x-large': '18pt',\n 'xx-large': '24pt'\n };\n const round = (number, precision) => {\n const factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n const toPt = (fontSize, precision) => {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n } else {\n return get$h(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n const toLegacy = fontSize => get$h(legacyFontSizes, fontSize).getOr('');\n const getSpec$1 = editor => {\n const getMatchingValue = () => {\n let matchOpt = Optional.none();\n const items = dataset.data;\n const fontSize = editor.queryCommandValue('FontSize');\n if (fontSize) {\n for (let precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n const pt = toPt(fontSize, precision);\n const legacy = toLegacy(pt);\n matchOpt = find$5(items, item => item.format === fontSize || item.format === pt || item.format === legacy);\n }\n }\n return {\n matchOpt,\n size: fontSize\n };\n };\n const isSelectedFor = item => valueOpt => valueOpt.exists(value => value.format === item);\n const getCurrentValue = () => {\n const {matchOpt} = getMatchingValue();\n return matchOpt;\n };\n const getPreviewFor = constant$1(Optional.none);\n const onAction = rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n const updateSelectMenuText = comp => {\n const {matchOpt, size} = getMatchingValue();\n const text = matchOpt.fold(constant$1(size), match => match.title);\n emitWith(comp, updateMenuText, { text });\n fireFontSizeTextUpdate(editor, { value: text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'font_size_formats', Delimiter.Space);\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$1(), fallbackFontSize),\n text: Optional.some(fallbackFontSize),\n icon: Optional.none(),\n isSelectedFor,\n getPreviewFor,\n getCurrentValue,\n onAction,\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n const createFontSizeButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$1(editor), getTooltipPlaceholder$1, 'FontSizeTextUpdate', 'fontsize');\n const getConfigFromUnit = unit => {\n var _a;\n const baseConfig = { step: 1 };\n const configs = {\n em: { step: 0.1 },\n cm: { step: 0.1 },\n in: { step: 0.1 },\n pc: { step: 0.1 },\n ch: { step: 0.1 },\n rem: { step: 0.1 }\n };\n return (_a = configs[unit]) !== null && _a !== void 0 ? _a : baseConfig;\n };\n const defaultValue = 16;\n const isValidValue = value => value >= 0;\n const getNumberInputSpec = editor => {\n const getCurrentValue = () => editor.queryCommandValue('FontSize');\n const updateInputValue = comp => emitWith(comp, updateMenuText, { text: getCurrentValue() });\n return {\n updateInputValue,\n onAction: (format, focusBack) => editor.execCommand('FontSize', false, format, { skip_focus: !focusBack }),\n getNewValue: (text, updateFunction) => {\n parse(text, [\n 'unsupportedLength',\n 'empty'\n ]);\n const currentValue = getCurrentValue();\n const parsedText = parse(text, [\n 'unsupportedLength',\n 'empty'\n ]).or(parse(currentValue, [\n 'unsupportedLength',\n 'empty'\n ]));\n const value = parsedText.map(res => res.value).getOr(defaultValue);\n const defaultUnit = getFontSizeInputDefaultUnit(editor);\n const unit = parsedText.map(res => res.unit).filter(u => u !== '').getOr(defaultUnit);\n const newValue = updateFunction(value, getConfigFromUnit(unit).step);\n const res = `${ isValidValue(newValue) ? newValue : value }${ unit }`;\n if (res !== currentValue) {\n fireFontSizeInputTextUpdate(editor, { value: res });\n }\n return res;\n }\n };\n };\n const createFontSizeInputButton = (editor, backstage) => createBespokeNumberInput(editor, backstage, getNumberInputSpec(editor), 'fontsizeinput');\n const createFontSizeMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('fontsize', {\n text: menuTitle$1,\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const menuTitle = 'Formats';\n const getTooltipPlaceholder = value => isEmpty(value) ? 'Formats' : 'Format {0}';\n const getSpec = (editor, dataset) => {\n const fallbackFormat = 'Formats';\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n const updateSelectMenuText = comp => {\n const getFormatItems = fmt => {\n if (isNestedFormat(fmt)) {\n return bind$3(fmt.items, getFormatItems);\n } else if (isFormatReference(fmt)) {\n return [{\n title: fmt.title,\n format: fmt.format\n }];\n } else {\n return [];\n }\n };\n const flattenedItems = bind$3(getStyleFormats(editor), getFormatItems);\n const detectedFormat = findNearest(editor, constant$1(flattenedItems));\n const text = detectedFormat.fold(constant$1({\n title: fallbackFormat,\n tooltipLabel: ''\n }), fmt => ({\n title: fmt.title,\n tooltipLabel: fmt.title\n }));\n emitWith(comp, updateMenuText, { text: text.title });\n fireStylesTextUpdate(editor, { value: text.tooltipLabel });\n };\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder(''), ''),\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n shouldHide: shouldAutoHideStyleFormats(editor),\n isInvalid: item => !editor.formatter.canApply(item.format),\n dataset\n };\n };\n const createStylesButton = (editor, backstage) => {\n const dataset = {\n type: 'advanced',\n ...backstage.styles\n };\n return createSelectButton(editor, backstage, getSpec(editor, dataset), getTooltipPlaceholder, 'StylesTextUpdate', 'styles');\n };\n const createStylesMenu = (editor, backstage) => {\n const dataset = {\n type: 'advanced',\n ...backstage.styles\n };\n const menuItems = createMenuItems(backstage, getSpec(editor, dataset));\n editor.ui.registry.addNestedMenuItem('styles', {\n text: menuTitle,\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const schema$7 = constant$1([\n required$1('toggleClass'),\n required$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n onStrictHandler('onItemExecute'),\n option$3('lazySink'),\n required$1('dom'),\n onHandler('onOpen'),\n field('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n defaulted('eventOrder', {}),\n option$3('role'),\n option$3('listRole')\n ].concat(sandboxFields()));\n const arrowPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'arrow',\n defaults: () => {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: detail => {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: arrow => {\n arrow.getSystem().getByUid(detail.uid).each(emitExecute);\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleOnExecute: false,\n toggleClass: detail.toggleClass\n })])\n };\n }\n });\n const buttonPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'button',\n defaults: () => {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: detail => {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: btn => {\n btn.getSystem().getByUid(detail.uid).each(splitDropdown => {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n const parts$3 = constant$1([\n arrowPart,\n buttonPart,\n optional({\n factory: {\n sketch: spec => {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }),\n external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: detail => {\n return {\n onExecute: (tmenu, item) => {\n tmenu.getSystem().getByUid(detail.uid).each(splitDropdown => {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }),\n partType$1()\n ]);\n\n const factory$5 = (detail, components, spec, externals) => {\n const switchToMenu = sandbox => {\n Composing.getCurrent(sandbox).each(current => {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n const action = component => {\n const onOpenSync = switchToMenu;\n togglePopup(detail, identity, component, externals, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n };\n const openMenu = comp => {\n action(comp);\n return Optional.some(true);\n };\n const executeOnButton = comp => {\n const button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n const buttonEvents = {\n ...derive$2([runOnAttached((component, _simulatedEvent) => {\n const ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(descriptor => {\n const descriptorId = generate$6('aria');\n set$9(descriptor.element, 'id', descriptorId);\n set$9(component.element, 'aria-describedby', descriptorId);\n });\n })]),\n ...events$9(Optional.some(action))\n };\n const apis = {\n repositionMenus: comp => {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis,\n eventOrder: {\n ...detail.eventOrder,\n [execute$5()]: [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n },\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [\n Coupling.config({\n others: {\n sandbox: hotspot => {\n const arrow = getPartOrDie(hotspot, detail, 'arrow');\n const extras = {\n onOpen: () => {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: () => {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox$1(detail, hotspot, extras);\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }),\n Focusing.config({}),\n Toggling.config({\n toggleOnExecute: false,\n aria: { mode: 'expanded' }\n })\n ]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n const SplitDropdown = composite({\n name: 'SplitDropdown',\n configFields: schema$7(),\n partFields: parts$3(),\n factory: factory$5,\n apis: { repositionMenus: (apis, comp) => apis.repositionMenus(comp) }\n });\n\n const getButtonApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setText: text => emitWith(component, updateMenuText, { text }),\n setIcon: icon => emitWith(component, updateMenuIcon, { icon })\n });\n const getToggleApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setText: text => emitWith(component, updateMenuText, { text }),\n setIcon: icon => emitWith(component, updateMenuIcon, { icon })\n });\n const getTooltipAttributes = (tooltip, providersBackstage) => tooltip.map(tooltip => ({ 'aria-label': providersBackstage.translate(tooltip) })).getOr({});\n const focusButtonEvent = generate$6('focus-button');\n const renderCommonStructure = (optIcon, optText, tooltip, behaviours, providersBackstage, context, btnName) => {\n const optMemDisplayText = optText.map(text => record(renderLabel$1(text, 'tox-tbtn', providersBackstage)));\n const optMemDisplayIcon = optIcon.map(icon => record(renderReplaceableIconFromPack(icon, providersBackstage.icons)));\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(optText.isSome() ? ['tox-tbtn--select'] : []),\n attributes: {\n ...getTooltipAttributes(tooltip, providersBackstage),\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(mem => mem.asSpec()),\n optMemDisplayText.map(mem => mem.asSpec())\n ]),\n eventOrder: {\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n commonButtonDisplayEvent\n ],\n [attachedToDom()]: [\n commonButtonDisplayEvent,\n 'toolbar-group-button-events'\n ]\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.toolbarButton(() => providersBackstage.checkUiComponentContext(context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(context)),\n config(commonButtonDisplayEvent, [\n runOnAttached((comp, _se) => forceInitialSize(comp)),\n run$1(updateMenuText, (comp, se) => {\n optMemDisplayText.bind(mem => mem.getOpt(comp)).each(displayText => {\n Replacing.set(displayText, [text$2(providersBackstage.translate(se.event.text))]);\n });\n }),\n run$1(updateMenuIcon, (comp, se) => {\n optMemDisplayIcon.bind(mem => mem.getOpt(comp)).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(se.event.icon, providersBackstage.icons)]);\n });\n }),\n run$1(mousedown(), (button, se) => {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })\n ])\n ].concat(behaviours.getOr([])))\n };\n };\n const renderFloatingToolbarButton = (spec, backstage, identifyButtons, attributes, btnName) => {\n const sharedBackstage = backstage.shared;\n const editorOffCell = Cell(noop);\n const specialisation = {\n toolbarButtonBehaviours: [],\n getApi: getButtonApi,\n onSetup: spec.onSetup\n };\n const behaviours = [config('toolbar-group-button-events', [\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ])];\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: () => Future.nu(resolve => {\n resolve(map$2(identifyButtons(spec.items), renderToolbarGroup));\n }),\n markers: { toggledClass: 'tox-tbtn--enabled' },\n parts: {\n button: renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.some(behaviours), sharedBackstage.providers, spec.context, btnName),\n toolbar: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes\n }\n }\n }\n });\n };\n const renderCommonToolbarButton = (spec, specialisation, providersBackstage, btnName) => {\n var _d;\n const editorOffCell = Cell(noop);\n const structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), providersBackstage, spec.context, btnName);\n return Button.sketch({\n dom: structure.dom,\n components: structure.components,\n eventOrder: toolbarButtonEventOrder,\n buttonBehaviours: {\n ...derive$1([\n config('toolbar-button-events', [\n onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n ...spec.tooltip.map(t => Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate(t) + spec.shortcut.map(shortcut => ` (${ convertText(shortcut) })`).getOr('') }))).toArray(),\n DisablingConfigs.toolbarButton(() => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ].concat(specialisation.toolbarButtonBehaviours)),\n [commonButtonDisplayEvent]: (_d = structure.buttonBehaviours) === null || _d === void 0 ? void 0 : _d[commonButtonDisplayEvent]\n }\n });\n };\n const renderToolbarButton = (spec, providersBackstage, btnName) => renderToolbarButtonWith(spec, providersBackstage, [], btnName);\n const renderToolbarButtonWith = (spec, providersBackstage, bonusEvents, btnName) => renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : [],\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage, btnName);\n const renderToolbarToggleButton = (spec, providersBackstage, btnName) => renderToolbarToggleButtonWith(spec, providersBackstage, [], btnName);\n const renderToolbarToggleButtonWith = (spec, providersBackstage, bonusEvents, btnName) => renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [\n Replacing.config({}),\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })\n ].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage, btnName);\n const fetchChoices = (getApi, spec, providersBackstage) => comp => Future.nu(callback => spec.fetch(callback)).map(items => Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), providersBackstage), {\n movement: deriveMenuMovement(spec.columns, spec.presets),\n menuBehaviours: SimpleBehaviours.unnamedEvents(spec.columns !== 'auto' ? [] : [runOnAttached((comp, _se) => {\n detectSize(comp, 4, classForPreset(spec.presets)).each(({numRows, numColumns}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n }))));\n const renderSplitButton = (spec, sharedBackstage, btnName) => {\n const tooltipString = Cell(spec.tooltip.getOr(''));\n const getApi = comp => ({\n isEnabled: () => !Disabling.isDisabled(comp),\n setEnabled: state => Disabling.set(comp, !state),\n setIconFill: (id, value) => {\n descendant(comp.element, `svg path[class=\"${ id }\"], rect[class=\"${ id }\"]`).each(underlinePath => {\n set$9(underlinePath, 'fill', value);\n });\n },\n setActive: state => {\n set$9(comp.element, 'aria-pressed', state);\n descendant(comp.element, 'span').each(button => {\n comp.getSystem().getByDom(button).each(buttonComp => Toggling.set(buttonComp, state));\n });\n },\n isActive: () => descendant(comp.element, 'span').exists(button => comp.getSystem().getByDom(button).exists(Toggling.isOn)),\n setText: text => descendant(comp.element, 'span').each(button => comp.getSystem().getByDom(button).each(buttonComp => emitWith(buttonComp, updateMenuText, { text }))),\n setIcon: icon => descendant(comp.element, 'span').each(button => comp.getSystem().getByDom(button).each(buttonComp => emitWith(buttonComp, updateMenuIcon, { icon }))),\n setTooltip: tooltip => {\n const translatedTooltip = sharedBackstage.providers.translate(tooltip);\n set$9(comp.element, 'aria-label', translatedTooltip);\n tooltipString.set(tooltip);\n }\n });\n const editorOffCell = Cell(noop);\n const specialisation = {\n getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: {\n 'aria-pressed': false,\n ...getTooltipAttributes(spec.tooltip, sharedBackstage.providers),\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n },\n onExecute: button => {\n const api = getApi(button);\n if (api.isEnabled()) {\n spec.onAction(api);\n }\n },\n onItemExecute: (_a, _b, _c) => {\n },\n splitDropdownBehaviours: derive$1([\n config('split-dropdown-events', [\n runOnAttached((comp, _se) => forceInitialSize(comp)),\n run$1(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n DisablingConfigs.splitButton(() => sharedBackstage.providers.isDisabled() || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Unselecting.config({}),\n ...spec.tooltip.map(tooltip => {\n return Tooltipping.config({\n ...sharedBackstage.providers.tooltips.getConfig({\n tooltipText: sharedBackstage.providers.translate(tooltip),\n onShow: comp => {\n if (tooltipString.get() !== tooltip) {\n const translatedTooltip = sharedBackstage.providers.translate(tooltipString.get());\n Tooltipping.setComponents(comp, sharedBackstage.providers.tooltips.getComponents({ tooltipText: translatedTooltip }));\n }\n }\n })\n });\n }).toArray()\n ]),\n eventOrder: {\n [attachedToDom()]: [\n 'alloy.base.behaviour',\n 'split-dropdown-events',\n 'tooltipping'\n ],\n [detachedFromDom()]: [\n 'split-dropdown-events',\n 'tooltipping'\n ]\n },\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: { menu: part(false, spec.columns, spec.presets) },\n components: [\n SplitDropdown.parts.button(renderCommonStructure(spec.icon, spec.text, Optional.none(), Optional.some([\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n toggleOnExecute: false\n }),\n DisablingConfigs.toolbarButton(never),\n toggleOnReceive(constant$1({\n contextType: 'any',\n shouldDisable: false\n }))\n ]), sharedBackstage.providers, spec.context)),\n SplitDropdown.parts.arrow({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n 'tox-split-button__chevron'\n ],\n innerHtml: get$3('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.splitButton(never),\n toggleOnReceive(constant$1({\n contextType: 'any',\n shouldDisable: false\n }))\n ])\n }),\n SplitDropdown.parts['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\n ]\n });\n };\n\n const defaultToolbar = [\n {\n name: 'history',\n items: [\n 'undo',\n 'redo'\n ]\n },\n {\n name: 'ai',\n items: [\n 'aidialog',\n 'aishortcuts'\n ]\n },\n {\n name: 'styles',\n items: ['styles']\n },\n {\n name: 'formatting',\n items: [\n 'bold',\n 'italic'\n ]\n },\n {\n name: 'alignment',\n items: [\n 'alignleft',\n 'aligncenter',\n 'alignright',\n 'alignjustify'\n ]\n },\n {\n name: 'indentation',\n items: [\n 'outdent',\n 'indent'\n ]\n },\n {\n name: 'permanent pen',\n items: ['permanentpen']\n },\n {\n name: 'comments',\n items: ['addcomment']\n }\n ];\n const renderFromBridge = (bridgeBuilder, render) => (spec, backstage, editor, btnName) => {\n const internal = bridgeBuilder(spec).mapError(errInfo => formatError(errInfo)).getOrDie();\n return render(internal, backstage, editor, btnName);\n };\n const types = {\n button: renderFromBridge(createToolbarButton, (s, backstage, _, btnName) => renderToolbarButton(s, backstage.shared.providers, btnName)),\n togglebutton: renderFromBridge(createToggleButton, (s, backstage, _, btnName) => renderToolbarToggleButton(s, backstage.shared.providers, btnName)),\n menubutton: renderFromBridge(createMenuButton, (s, backstage, _, btnName) => renderMenuButton(s, 'tox-tbtn', backstage, Optional.none(), false, btnName)),\n splitbutton: renderFromBridge(createSplitButton, (s, backstage, _, btnName) => renderSplitButton(s, backstage.shared, btnName)),\n grouptoolbarbutton: renderFromBridge(createGroupToolbarButton, (s, backstage, editor, btnName) => {\n const buttons = editor.ui.registry.getAll().buttons;\n const identify = toolbar => identifyButtons(editor, {\n buttons,\n toolbar,\n allowToolbarGroups: false\n }, backstage, Optional.none());\n const attributes = { [Attribute]: backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop };\n switch (getToolbarMode(editor)) {\n case ToolbarMode$1.floating:\n return renderFloatingToolbarButton(s, backstage, identify, attributes, btnName);\n default:\n throw new Error('Toolbar groups are only supported when using floating toolbar mode');\n }\n })\n };\n const extractFrom = (spec, backstage, editor, btnName) => get$h(types, spec.type).fold(() => {\n console.error('skipping button defined by', spec);\n return Optional.none();\n }, render => Optional.some(render(spec, backstage, editor, btnName)));\n const bespokeButtons = {\n styles: createStylesButton,\n fontsize: createFontSizeButton,\n fontsizeinput: createFontSizeInputButton,\n fontfamily: createFontFamilyButton,\n blocks: createBlocksButton,\n align: createAlignButton\n };\n const removeUnusedDefaults = buttons => {\n const filteredItemGroups = map$2(defaultToolbar, group => {\n const items = filter$2(group.items, subItem => has$2(buttons, subItem) || has$2(bespokeButtons, subItem));\n return {\n name: group.name,\n items\n };\n });\n return filter$2(filteredItemGroups, group => group.items.length > 0);\n };\n const convertStringToolbar = strToolbar => {\n const groupsStrings = strToolbar.split('|');\n return map$2(groupsStrings, g => ({ items: g.trim().split(' ') }));\n };\n const isToolbarGroupSettingArray = toolbar => isArrayOf(toolbar, t => has$2(t, 'name') && has$2(t, 'items'));\n const createToolbar = toolbarConfig => {\n const toolbar = toolbarConfig.toolbar;\n const buttons = toolbarConfig.buttons;\n if (toolbar === false) {\n return [];\n } else if (toolbar === undefined || toolbar === true) {\n return removeUnusedDefaults(buttons);\n } else if (isString(toolbar)) {\n return convertStringToolbar(toolbar);\n } else if (isToolbarGroupSettingArray(toolbar)) {\n return toolbar;\n } else {\n console.error('Toolbar type should be string, string[], boolean or ToolbarGroup[]');\n return [];\n }\n };\n const lookupButton = (editor, buttons, toolbarItem, allowToolbarGroups, backstage, prefixes) => get$h(buttons, toolbarItem.toLowerCase()).orThunk(() => prefixes.bind(ps => findMap(ps, prefix => get$h(buttons, prefix + toolbarItem.toLowerCase())))).fold(() => get$h(bespokeButtons, toolbarItem.toLowerCase()).map(r => r(editor, backstage)), spec => {\n if (spec.type === 'grouptoolbarbutton' && !allowToolbarGroups) {\n console.warn(`Ignoring the '${ toolbarItem }' toolbar button. Group toolbar buttons are only supported when using floating toolbar mode and cannot be nested.`);\n return Optional.none();\n } else {\n return extractFrom(spec, backstage, editor, toolbarItem.toLowerCase());\n }\n });\n const identifyButtons = (editor, toolbarConfig, backstage, prefixes) => {\n const toolbarGroups = createToolbar(toolbarConfig);\n const groups = map$2(toolbarGroups, group => {\n const items = bind$3(group.items, toolbarItem => {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, toolbarConfig.allowToolbarGroups, backstage, prefixes).toArray();\n });\n return {\n title: Optional.from(editor.translate(group.name)),\n items\n };\n });\n return filter$2(groups, group => group.items.length > 0);\n };\n\n const setToolbar = (editor, uiRefs, rawUiConfig, backstage) => {\n const outerContainer = uiRefs.mainUi.outerContainer;\n const toolbarConfig = rawUiConfig.toolbar;\n const toolbarButtonsConfig = rawUiConfig.buttons;\n if (isArrayOf(toolbarConfig, isString)) {\n const toolbars = toolbarConfig.map(t => {\n const config = {\n toolbar: t,\n buttons: toolbarButtonsConfig,\n allowToolbarGroups: rawUiConfig.allowToolbarGroups\n };\n return identifyButtons(editor, config, backstage, Optional.none());\n });\n OuterContainer.setToolbars(outerContainer, toolbars);\n } else {\n OuterContainer.setToolbar(outerContainer, identifyButtons(editor, rawUiConfig, backstage, Optional.none()));\n }\n };\n\n const detection = detect$1();\n const isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n const setupEvents$1 = (editor, uiRefs) => {\n const {uiMotherships} = uiRefs;\n const dom = editor.dom;\n let contentWindow = editor.getWin();\n const initialDocEle = editor.getDoc().documentElement;\n const lastWindowDimensions = Cell(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n const lastDocumentDimensions = Cell(SugarPosition(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n const resizeWindow = () => {\n const outer = lastWindowDimensions.get();\n if (outer.left !== contentWindow.innerWidth || outer.top !== contentWindow.innerHeight) {\n lastWindowDimensions.set(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n fireResizeContent(editor);\n }\n };\n const resizeDocument = () => {\n const docEle = editor.getDoc().documentElement;\n const inner = lastDocumentDimensions.get();\n if (inner.left !== docEle.offsetWidth || inner.top !== docEle.offsetHeight) {\n lastDocumentDimensions.set(SugarPosition(docEle.offsetWidth, docEle.offsetHeight));\n fireResizeContent(editor);\n }\n };\n const scroll = e => {\n fireScrollContent(editor, e);\n };\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n const elementLoad = capture(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n editor.on('hide', () => {\n each$1(uiMotherships, m => {\n set$8(m.element, 'display', 'none');\n });\n });\n editor.on('show', () => {\n each$1(uiMotherships, m => {\n remove$7(m.element, 'display');\n });\n });\n editor.on('NodeChange', resizeDocument);\n editor.on('remove', () => {\n elementLoad.unbind();\n dom.unbind(contentWindow, 'resize', resizeWindow);\n dom.unbind(contentWindow, 'scroll', scroll);\n contentWindow = null;\n });\n };\n const attachUiMotherships = (editor, uiRoot, uiRefs) => {\n if (isSplitUiMode(editor)) {\n attachSystemAfter(uiRefs.mainUi.mothership.element, uiRefs.popupUi.mothership);\n }\n attachSystem(uiRoot, uiRefs.dialogUi.mothership);\n };\n const render$1 = (editor, uiRefs, rawUiConfig, backstage, args) => {\n const {mainUi, uiMotherships} = uiRefs;\n const lastToolbarWidth = Cell(0);\n const outerContainer = mainUi.outerContainer;\n iframe(editor);\n const eTargetNode = SugarElement.fromDom(args.targetNode);\n const uiRoot = getContentContainer(getRootNode(eTargetNode));\n attachSystemAfter(eTargetNode, mainUi.mothership);\n attachUiMotherships(editor, uiRoot, uiRefs);\n editor.on('PostRender', () => {\n OuterContainer.setSidebar(outerContainer, rawUiConfig.sidebar, getSidebarShow(editor));\n });\n editor.on('SkinLoaded', () => {\n setToolbar(editor, uiRefs, rawUiConfig, backstage);\n lastToolbarWidth.set(editor.getWin().innerWidth);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setViews(outerContainer, rawUiConfig.views);\n setupEvents$1(editor, uiRefs);\n });\n const socket = OuterContainer.getSocket(outerContainer).getOrDie('Could not find expected socket element');\n if (isiOS12) {\n setAll(socket.element, {\n 'overflow': 'scroll',\n '-webkit-overflow-scrolling': 'touch'\n });\n const limit = first(() => {\n editor.dispatch('ScrollContent');\n }, 20);\n const unbinder = bind(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\n }\n setupEventsForUi(editor, uiRefs);\n editor.addCommand('ToggleSidebar', (_ui, value) => {\n OuterContainer.toggleSidebar(outerContainer, value);\n fireToggleSidebar(editor);\n });\n editor.addQueryValueHandler('ToggleSidebar', () => {\n var _a;\n return (_a = OuterContainer.whichSidebar(outerContainer)) !== null && _a !== void 0 ? _a : '';\n });\n editor.addCommand('ToggleView', (_ui, value) => {\n if (OuterContainer.toggleView(outerContainer, value)) {\n const target = outerContainer.element;\n mainUi.mothership.broadcastOn([dismissPopups()], { target });\n each$1(uiMotherships, m => {\n m.broadcastOn([dismissPopups()], { target });\n });\n if (isNull(OuterContainer.whichView(outerContainer))) {\n editor.focus();\n editor.nodeChanged();\n OuterContainer.refreshToolbar(outerContainer);\n }\n fireToggleView(editor);\n }\n });\n editor.addQueryValueHandler('ToggleView', () => {\n var _a;\n return (_a = OuterContainer.whichView(outerContainer)) !== null && _a !== void 0 ? _a : '';\n });\n const toolbarMode = getToolbarMode(editor);\n const refreshDrawer = () => {\n OuterContainer.refreshToolbar(uiRefs.mainUi.outerContainer);\n };\n if (toolbarMode === ToolbarMode$1.sliding || toolbarMode === ToolbarMode$1.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', () => {\n const width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n const api = {\n setEnabled: state => {\n const eventType = state ? 'setEnabled' : 'setDisabled';\n broadcastEvents(uiRefs, eventType);\n },\n isEnabled: () => !Disabling.isDisabled(outerContainer)\n };\n return {\n iframeContainer: socket.element.dom,\n editorContainer: outerContainer.element.dom,\n api\n };\n };\n\n var Iframe = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render$1\n });\n\n const parseToInt = val => {\n const re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n return Optional.none();\n };\n const numToPx = val => isNumber(val) ? val + 'px' : val;\n const calcCappedSize = (size, minSize, maxSize) => {\n const minOverride = minSize.filter(min => size < min);\n const maxOverride = maxSize.filter(max => size > max);\n return minOverride.or(maxOverride).getOr(size);\n };\n\n const getHeight = editor => {\n const baseHeight = getHeightOption(editor);\n const minHeight = getMinHeightOption(editor);\n const maxHeight = getMaxHeightOption(editor);\n return parseToInt(baseHeight).map(height => calcCappedSize(height, minHeight, maxHeight));\n };\n const getHeightWithFallback = editor => {\n const height = getHeight(editor);\n return height.getOr(getHeightOption(editor));\n };\n const getWidth = editor => {\n const baseWidth = getWidthOption(editor);\n const minWidth = getMinWidthOption(editor);\n const maxWidth = getMaxWidthOption(editor);\n return parseToInt(baseWidth).map(width => calcCappedSize(width, minWidth, maxWidth));\n };\n const getWidthWithFallback = editor => {\n const width = getWidth(editor);\n return width.getOr(getWidthOption(editor));\n };\n\n const {ToolbarLocation, ToolbarMode} = Options;\n const maximumDistanceToEdge = 40;\n const InlineHeader = (editor, targetElm, uiRefs, backstage, floatContainer) => {\n const {mainUi, uiMotherships} = uiRefs;\n const DOM = global$8.DOM;\n const useFixedToolbarContainer = useFixedContainer(editor);\n const isSticky = isStickyToolbar(editor);\n const editorMaxWidthOpt = getMaxWidthOption(editor).or(getWidth(editor));\n const headerBackstage = backstage.shared.header;\n const isPositionedAtTop = headerBackstage.isPositionedAtTop;\n const minimumToolbarWidth = 150;\n const toolbarMode = getToolbarMode(editor);\n const isSplitToolbar = toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating;\n const visible = Cell(false);\n const isVisible = () => visible.get() && !editor.removed;\n const calcToolbarOffset = toolbar => isSplitToolbar ? toolbar.fold(constant$1(0), tbar => tbar.components().length > 1 ? get$e(tbar.components()[1].element) : 0) : 0;\n const calcMode = container => {\n switch (getToolbarLocation(editor)) {\n case ToolbarLocation.auto:\n const toolbar = OuterContainer.getToolbar(mainUi.outerContainer);\n const offset = calcToolbarOffset(toolbar);\n const toolbarHeight = get$e(container.element) - offset;\n const targetBounds = box$1(targetElm);\n const roomAtTop = targetBounds.y > toolbarHeight;\n if (roomAtTop) {\n return 'top';\n } else {\n const doc = documentElement(targetElm);\n const docHeight = Math.max(doc.dom.scrollHeight, get$e(doc));\n const roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\n if (roomAtBottom) {\n return 'bottom';\n } else {\n const winBounds = win();\n const isRoomAtBottomViewport = winBounds.bottom < targetBounds.bottom - toolbarHeight;\n return isRoomAtBottomViewport ? 'bottom' : 'top';\n }\n }\n case ToolbarLocation.bottom:\n return 'bottom';\n case ToolbarLocation.top:\n default:\n return 'top';\n }\n };\n const setupMode = mode => {\n floatContainer.on(container => {\n Docking.setModes(container, [mode]);\n headerBackstage.setDockingMode(mode);\n const verticalDir = isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop;\n set$9(container.element, Attribute, verticalDir);\n });\n };\n const updateChromeWidth = () => {\n floatContainer.on(container => {\n const maxWidth = editorMaxWidthOpt.getOrThunk(() => {\n return getBounds$3().width - viewport$1(targetElm).left - 10;\n });\n set$8(container.element, 'max-width', maxWidth + 'px');\n });\n };\n const updateChromePosition = (isOuterContainerWidthRestored, prevScroll) => {\n floatContainer.on(container => {\n const toolbar = OuterContainer.getToolbar(mainUi.outerContainer);\n const offset = calcToolbarOffset(toolbar);\n const targetBounds = box$1(targetElm);\n const offsetParent = getOffsetParent$1(editor, mainUi.outerContainer.element);\n const getLeft = () => offsetParent.fold(() => targetBounds.x, offsetParent => {\n const offsetBox = box$1(offsetParent);\n const isOffsetParentBody = eq(offsetParent, body());\n return isOffsetParentBody ? targetBounds.x : targetBounds.x - offsetBox.x;\n });\n const getTop = () => offsetParent.fold(() => isPositionedAtTop() ? Math.max(targetBounds.y - get$e(container.element) + offset, 0) : targetBounds.bottom, offsetParent => {\n var _a;\n const offsetBox = box$1(offsetParent);\n const scrollDelta = (_a = offsetParent.dom.scrollTop) !== null && _a !== void 0 ? _a : 0;\n const isOffsetParentBody = eq(offsetParent, body());\n const topValue = isOffsetParentBody ? Math.max(targetBounds.y - get$e(container.element) + offset, 0) : targetBounds.y - offsetBox.y + scrollDelta - get$e(container.element) + offset;\n return isPositionedAtTop() ? topValue : targetBounds.bottom;\n });\n const left = getLeft();\n const widthProperties = someIf(isOuterContainerWidthRestored, Math.ceil(mainUi.outerContainer.element.dom.getBoundingClientRect().width)).filter(w => w > minimumToolbarWidth).map(toolbarWidth => {\n const scroll = prevScroll.getOr(get$c());\n const availableWidth = window.innerWidth - (left - scroll.left);\n const width = Math.max(Math.min(toolbarWidth, availableWidth), minimumToolbarWidth);\n if (availableWidth < toolbarWidth) {\n set$8(mainUi.outerContainer.element, 'width', width + 'px');\n }\n return { width: width + 'px' };\n }).getOr({ width: 'max-content' });\n const baseProperties = {\n position: 'absolute',\n left: Math.round(left) + 'px',\n top: getTop() + 'px'\n };\n setAll(mainUi.outerContainer.element, {\n ...baseProperties,\n ...widthProperties\n });\n });\n };\n const getOffsetParent$1 = (editor, element) => isSplitUiMode(editor) ? getOffsetParent(element) : Optional.none();\n const repositionPopups$1 = () => {\n each$1(uiMotherships, m => {\n m.broadcastOn([repositionPopups()], {});\n });\n };\n const restoreOuterContainerWidth = () => {\n if (!useFixedToolbarContainer) {\n const toolbarCurrentRightsidePosition = absolute$3(mainUi.outerContainer.element).left + getOuter$1(mainUi.outerContainer.element);\n if (toolbarCurrentRightsidePosition >= window.innerWidth - maximumDistanceToEdge || getRaw(mainUi.outerContainer.element, 'width').isSome()) {\n set$8(mainUi.outerContainer.element, 'position', 'absolute');\n set$8(mainUi.outerContainer.element, 'left', '0px');\n remove$7(mainUi.outerContainer.element, 'width');\n return true;\n }\n }\n return false;\n };\n const update = stickyAction => {\n if (!isVisible()) {\n return;\n }\n if (!useFixedToolbarContainer) {\n updateChromeWidth();\n }\n const prevScroll = get$c();\n const isOuterContainerWidthRestored = useFixedToolbarContainer ? false : restoreOuterContainerWidth();\n if (isSplitToolbar) {\n OuterContainer.refreshToolbar(mainUi.outerContainer);\n }\n if (!useFixedToolbarContainer) {\n const currentScroll = get$c();\n const optScroll = someIf(prevScroll.left !== currentScroll.left, prevScroll);\n updateChromePosition(isOuterContainerWidthRestored, optScroll);\n optScroll.each(scroll => {\n to(scroll.left, currentScroll.top);\n });\n }\n if (isSticky) {\n floatContainer.on(stickyAction);\n }\n repositionPopups$1();\n };\n const doUpdateMode = () => {\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return false;\n }\n return floatContainer.get().exists(fc => {\n const currentMode = headerBackstage.getDockingMode();\n const newMode = calcMode(fc);\n if (newMode !== currentMode) {\n setupMode(newMode);\n return true;\n } else {\n return false;\n }\n });\n };\n const show = () => {\n visible.set(true);\n set$8(mainUi.outerContainer.element, 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n each$1(uiMotherships, m => {\n remove$7(m.element, 'display');\n });\n doUpdateMode();\n if (isSplitUiMode(editor)) {\n update(elem => Docking.isDocked(elem) ? Docking.reset(elem) : Docking.refresh(elem));\n } else {\n update(Docking.refresh);\n }\n };\n const hide = () => {\n visible.set(false);\n set$8(mainUi.outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n each$1(uiMotherships, m => {\n set$8(m.element, 'display', 'none');\n });\n };\n const updateMode = () => {\n const changedMode = doUpdateMode();\n if (changedMode) {\n update(Docking.reset);\n }\n };\n return {\n isVisible,\n isPositionedAtTop,\n show,\n hide,\n update,\n updateMode,\n repositionPopups: repositionPopups$1\n };\n };\n\n const getTargetPosAndBounds = (targetElm, isToolbarTop) => {\n const bounds = box$1(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds\n };\n };\n const setupEvents = (editor, targetElm, ui, toolbarPersist) => {\n const prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n const resizeContent = e => {\n const {pos, bounds} = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop());\n const {\n pos: prevPos,\n bounds: prevBounds\n } = prevPosAndBounds.get();\n const hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos,\n bounds\n });\n if (hasResized) {\n fireResizeContent(editor, e);\n }\n if (ui.isVisible()) {\n if (prevPos !== pos) {\n ui.update(Docking.reset);\n } else if (hasResized) {\n ui.updateMode();\n ui.repositionPopups();\n }\n }\n };\n if (!toolbarPersist) {\n editor.on('activate', ui.show);\n editor.on('deactivate', ui.hide);\n }\n editor.on('SkinLoaded ResizeWindow', () => ui.update(Docking.reset));\n editor.on('NodeChange keydown', e => {\n requestAnimationFrame(() => resizeContent(e));\n });\n let lastScrollX = 0;\n const updateUi = last(() => ui.update(Docking.refresh), 33);\n editor.on('ScrollWindow', () => {\n const newScrollX = get$c().left;\n if (newScrollX !== lastScrollX) {\n lastScrollX = newScrollX;\n updateUi.throttle();\n }\n ui.updateMode();\n });\n if (isSplitUiMode(editor)) {\n editor.on('ElementScroll', _args => {\n ui.update(Docking.refresh);\n });\n }\n const elementLoad = unbindable();\n elementLoad.set(capture(SugarElement.fromDom(editor.getBody()), 'load', e => resizeContent(e.raw)));\n editor.on('remove', () => {\n elementLoad.clear();\n });\n };\n const render = (editor, uiRefs, rawUiConfig, backstage, args) => {\n const {mainUi} = uiRefs;\n const floatContainer = value$4();\n const targetElm = SugarElement.fromDom(args.targetNode);\n const ui = InlineHeader(editor, targetElm, uiRefs, backstage, floatContainer);\n const toolbarPersist = isToolbarPersist(editor);\n inline(editor);\n const render = () => {\n if (floatContainer.isSet()) {\n ui.show();\n return;\n }\n floatContainer.set(OuterContainer.getHeader(mainUi.outerContainer).getOrDie());\n const uiContainer = getUiContainer(editor);\n if (isSplitUiMode(editor)) {\n attachSystemAfter(targetElm, mainUi.mothership);\n attachSystemAfter(targetElm, uiRefs.popupUi.mothership);\n } else {\n attachSystem(uiContainer, mainUi.mothership);\n }\n attachSystem(uiContainer, uiRefs.dialogUi.mothership);\n const setup = () => {\n setToolbar(editor, uiRefs, rawUiConfig, backstage);\n OuterContainer.setMenubar(mainUi.outerContainer, identifyMenus(editor, rawUiConfig));\n ui.show();\n setupEvents(editor, targetElm, ui, toolbarPersist);\n editor.nodeChanged();\n };\n if (toolbarPersist) {\n editor.once('SkinLoaded', setup);\n } else {\n setup();\n }\n };\n editor.on('show', render);\n editor.on('hide', ui.hide);\n if (!toolbarPersist) {\n editor.on('focus', render);\n editor.on('blur', ui.hide);\n }\n editor.on('init', () => {\n if (editor.hasFocus() || toolbarPersist) {\n render();\n }\n });\n setupEventsForUi(editor, uiRefs);\n const api = {\n show: render,\n hide: ui.hide,\n setEnabled: state => {\n const eventType = state ? 'setEnabled' : 'setDisabled';\n broadcastEvents(uiRefs, eventType);\n },\n isEnabled: () => !Disabling.isDisabled(mainUi.outerContainer)\n };\n return {\n editorContainer: mainUi.outerContainer.element.dom,\n api\n };\n };\n\n var Inline = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render\n });\n\n const LazyUiReferences = () => {\n const dialogUi = value$4();\n const popupUi = value$4();\n const mainUi = value$4();\n const lazyGetInOuterOrDie = (label, f) => () => mainUi.get().bind(oc => f(oc.outerContainer)).getOrDie(`Could not find ${ label } element in OuterContainer`);\n const getUiMotherships = () => {\n const optDialogMothership = dialogUi.get().map(ui => ui.mothership);\n const optPopupMothership = popupUi.get().map(ui => ui.mothership);\n return optDialogMothership.fold(() => optPopupMothership.toArray(), dm => optPopupMothership.fold(() => [dm], pm => eq(dm.element, pm.element) ? [dm] : [\n dm,\n pm\n ]));\n };\n return {\n dialogUi,\n popupUi,\n mainUi,\n getUiMotherships,\n lazyGetInOuterOrDie\n };\n };\n\n const showContextToolbarEvent = 'contexttoolbar-show';\n const hideContextToolbarEvent = 'contexttoolbar-hide';\n\n const getFormApi = input => ({\n hide: () => emit(input, sandboxClose()),\n getValue: () => Representing.getValue(input)\n });\n const runOnExecute = (memInput, original) => run$1(internalToolbarButtonExecute, (comp, se) => {\n const input = memInput.get(comp);\n const formApi = getFormApi(input);\n original.onAction(formApi, se.event.buttonApi);\n });\n const renderContextButton = (memInput, button, providers) => {\n const {primary, ...rest} = button.original;\n const bridged = getOrDie(createToolbarButton({\n ...rest,\n type: 'button',\n onAction: noop\n }));\n return renderToolbarButtonWith(bridged, providers, [runOnExecute(memInput, button)]);\n };\n const renderContextToggleButton = (memInput, button, providers) => {\n const {primary, ...rest} = button.original;\n const bridged = getOrDie(createToggleButton({\n ...rest,\n type: 'togglebutton',\n onAction: noop\n }));\n return renderToolbarToggleButtonWith(bridged, providers, [runOnExecute(memInput, button)]);\n };\n const isToggleButton = button => button.type === 'contextformtogglebutton';\n const generateOne = (memInput, button, providersBackstage) => {\n if (isToggleButton(button)) {\n return renderContextToggleButton(memInput, button, providersBackstage);\n } else {\n return renderContextButton(memInput, button, providersBackstage);\n }\n };\n const generate = (memInput, buttons, providersBackstage) => {\n const mementos = map$2(buttons, button => record(generateOne(memInput, button, providersBackstage)));\n const asSpecs = () => map$2(mementos, mem => mem.asSpec());\n const findPrimary = compInSystem => findMap(buttons, (button, i) => {\n if (button.primary) {\n return Optional.from(mementos[i]).bind(mem => mem.getOpt(compInSystem)).filter(not(Disabling.isDisabled));\n } else {\n return Optional.none();\n }\n });\n return {\n asSpecs,\n findPrimary\n };\n };\n\n const buildInitGroups = (ctx, providers) => {\n const inputAttributes = ctx.label.fold(() => ({}), label => ({ 'aria-label': label }));\n const memInput = record(Input.sketch({\n inputClasses: [\n 'tox-toolbar-textfield',\n 'tox-toolbar-nav-js'\n ],\n data: ctx.initValue(),\n inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => providers.checkUiComponentContext('mode:design').shouldDisable }),\n toggleOnReceive(() => providers.checkUiComponentContext('mode:design')),\n Keying.config({\n mode: 'special',\n onEnter: input => commands.findPrimary(input).map(primary => {\n emitExecute(primary);\n return true;\n }),\n onLeft: (comp, se) => {\n se.cut();\n return Optional.none();\n },\n onRight: (comp, se) => {\n se.cut();\n return Optional.none();\n }\n })\n ])\n }));\n const commands = generate(memInput, ctx.commands, providers);\n return [\n {\n title: Optional.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Optional.none(),\n items: commands.asSpecs()\n }\n ];\n };\n const renderContextForm = (toolbarType, ctx, providers) => renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers\n });\n const ContextForm = {\n renderContextForm,\n buildInitGroups\n };\n\n const isVerticalOverlap = (a, b, threshold) => b.bottom - a.y >= threshold && a.bottom - b.y >= threshold;\n const getRangeRect = rng => {\n const rect = rng.getBoundingClientRect();\n if (rect.height <= 0 && rect.width <= 0) {\n const leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset).element;\n const elm = isText(leaf$1) ? parent(leaf$1) : Optional.some(leaf$1);\n return elm.filter(isElement$1).map(e => e.dom.getBoundingClientRect()).getOr(rect);\n } else {\n return rect;\n }\n };\n const getSelectionBounds = editor => {\n const rng = editor.selection.getRng();\n const rect = getRangeRect(rng);\n if (editor.inline) {\n const scroll = get$c();\n return bounds(scroll.left + rect.left, scroll.top + rect.top, rect.width, rect.height);\n } else {\n const bodyPos = absolute$2(SugarElement.fromDom(editor.getBody()));\n return bounds(bodyPos.x + rect.left, bodyPos.y + rect.top, rect.width, rect.height);\n }\n };\n const getAnchorElementBounds = (editor, lastElement) => lastElement.filter(elem => inBody(elem) && isHTMLElement(elem)).map(absolute$2).getOrThunk(() => getSelectionBounds(editor));\n const getHorizontalBounds = (contentAreaBox, viewportBounds, margin) => {\n const x = Math.max(contentAreaBox.x + margin, viewportBounds.x);\n const right = Math.min(contentAreaBox.right - margin, viewportBounds.right);\n return {\n x,\n width: right - x\n };\n };\n const getVerticalBounds = (editor, contentAreaBox, viewportBounds, isToolbarLocationTop, toolbarType, margin) => {\n const container = SugarElement.fromDom(editor.getContainer());\n const header = descendant(container, '.tox-editor-header').getOr(container);\n const headerBox = box$1(header);\n const isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n const isToolbarAbove = isToolbarLocationTop && !isToolbarBelowContentArea;\n if (editor.inline && isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: viewportBounds.bottom\n };\n }\n if (editor.inline && !isToolbarAbove) {\n return {\n y: viewportBounds.y,\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n }\n const containerBounds = toolbarType === 'line' ? box$1(container) : contentAreaBox;\n if (isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: Math.min(containerBounds.bottom - margin, viewportBounds.bottom)\n };\n }\n return {\n y: Math.max(containerBounds.y + margin, viewportBounds.y),\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n };\n const getContextToolbarBounds = (editor, sharedBackstage, toolbarType, margin = 0) => {\n const viewportBounds = getBounds$3(window);\n const contentAreaBox = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n const toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n const {x, width} = getHorizontalBounds(contentAreaBox, viewportBounds, margin);\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n const isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n const {y, bottom} = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop, toolbarType, margin);\n return bounds(x, y, width, bottom - y);\n }\n };\n\n const bubbleSize$1 = 12;\n const bubbleAlignments$1 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top'],\n inset: ['tox-pop--inset']\n };\n const anchorOverrides = {\n maxHeightFunction: expandable$1(),\n maxWidthFunction: expandable()\n };\n const isEntireElementSelected = (editor, elem) => {\n const rng = editor.selection.getRng();\n const leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n return rng.startContainer === rng.endContainer && rng.startOffset === rng.endOffset - 1 && eq(leaf$1.element, elem);\n };\n const preservePosition = (elem, position, f) => {\n const currentPosition = getRaw(elem, 'position');\n set$8(elem, 'position', position);\n const result = f(elem);\n currentPosition.each(pos => set$8(elem, 'position', pos));\n return result;\n };\n const shouldUseInsetLayouts = position => position === 'node';\n const determineInsetLayout = (editor, contextbar, elem, data, bounds) => {\n const selectionBounds = getSelectionBounds(editor);\n const isSameAnchorElement = data.lastElement().exists(prev => eq(elem, prev));\n if (isEntireElementSelected(editor, elem)) {\n return isSameAnchorElement ? preserve : north;\n } else if (isSameAnchorElement) {\n return preservePosition(contextbar, data.getMode(), () => {\n const isOverlapping = isVerticalOverlap(selectionBounds, box$1(contextbar), -20);\n return isOverlapping && !data.isReposition() ? flip : preserve;\n });\n } else {\n const yBounds = data.getMode() === 'fixed' ? bounds.y + get$c().top : bounds.y;\n const contextbarHeight = get$e(contextbar) + bubbleSize$1;\n return yBounds + contextbarHeight <= selectionBounds.y ? north : south;\n }\n };\n const getAnchorSpec$2 = (editor, mobile, data, position) => {\n const smartInsetLayout = elem => (anchor, element, bubbles, placee, bounds) => {\n const layout = determineInsetLayout(editor, placee, elem, data, bounds);\n const newAnchor = {\n ...anchor,\n y: bounds.y,\n height: bounds.height\n };\n return {\n ...layout(newAnchor, element, bubbles, placee, bounds),\n alwaysFit: true\n };\n };\n const getInsetLayouts = elem => shouldUseInsetLayouts(position) ? [smartInsetLayout(elem)] : [];\n const desktopAnchorSpecLayouts = {\n onLtr: elem => [\n north$2,\n south$2,\n northeast$2,\n southeast$2,\n northwest$2,\n southwest$2\n ].concat(getInsetLayouts(elem)),\n onRtl: elem => [\n north$2,\n south$2,\n northwest$2,\n southwest$2,\n northeast$2,\n southeast$2\n ].concat(getInsetLayouts(elem))\n };\n const mobileAnchorSpecLayouts = {\n onLtr: elem => [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2\n ].concat(getInsetLayouts(elem)),\n onRtl: elem => [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2\n ].concat(getInsetLayouts(elem))\n };\n return mobile ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts;\n };\n const getAnchorLayout = (editor, position, isTouch, data) => {\n if (position === 'line') {\n return {\n bubble: nu$5(bubbleSize$1, 0, bubbleAlignments$1),\n layouts: {\n onLtr: () => [east$2],\n onRtl: () => [west$2]\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$5(0, bubbleSize$1, bubbleAlignments$1, 1 / bubbleSize$1),\n layouts: getAnchorSpec$2(editor, isTouch, data, position),\n overrides: anchorOverrides\n };\n }\n };\n\n const matchTargetWith = (elem, candidates) => {\n const ctxs = filter$2(candidates, toolbarApi => toolbarApi.predicate(elem.dom));\n const {pass, fail} = partition$3(ctxs, t => t.type === 'contexttoolbar');\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n const filterByPositionForStartNode = toolbars => {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n const doesPositionExist = value => exists(toolbars, t => t.position === value);\n const filterToolbarsByPosition = value => filter$2(toolbars, t => t.position === value);\n const hasSelectionToolbars = doesPositionExist('selection');\n const hasNodeToolbars = doesPositionExist('node');\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n const nodeToolbars = filterToolbarsByPosition('node');\n const selectionToolbars = map$2(filterToolbarsByPosition('selection'), t => ({\n ...t,\n position: 'node'\n }));\n return nodeToolbars.concat(selectionToolbars);\n } else {\n return hasSelectionToolbars ? filterToolbarsByPosition('selection') : filterToolbarsByPosition('node');\n }\n } else {\n return filterToolbarsByPosition('line');\n }\n }\n };\n const filterByPositionForAncestorNode = toolbars => {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n const findPosition = value => find$5(toolbars, t => t.position === value);\n const basePosition = findPosition('selection').orThunk(() => findPosition('node')).orThunk(() => findPosition('line')).map(t => t.position);\n return basePosition.fold(() => [], pos => filter$2(toolbars, t => t.position === pos));\n }\n };\n const matchStartNode = (elem, nodeCandidates, editorCandidates) => {\n const nodeMatches = matchTargetWith(elem, nodeCandidates);\n if (nodeMatches.contextForms.length > 0) {\n return Optional.some({\n elem,\n toolbars: [nodeMatches.contextForms[0]]\n });\n } else {\n const editorMatches = matchTargetWith(elem, editorCandidates);\n if (editorMatches.contextForms.length > 0) {\n return Optional.some({\n elem,\n toolbars: [editorMatches.contextForms[0]]\n });\n } else if (nodeMatches.contextToolbars.length > 0 || editorMatches.contextToolbars.length > 0) {\n const toolbars = filterByPositionForStartNode(nodeMatches.contextToolbars.concat(editorMatches.contextToolbars));\n return Optional.some({\n elem,\n toolbars\n });\n } else {\n return Optional.none();\n }\n }\n };\n const matchAncestor = (isRoot, startNode, scopes) => {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor$2(startNode, ancestorElem => {\n if (isElement$1(ancestorElem)) {\n const {contextToolbars, contextForms} = matchTargetWith(ancestorElem, scopes.inNodeScope);\n const toolbars = contextForms.length > 0 ? contextForms : filterByPositionForAncestorNode(contextToolbars);\n return toolbars.length > 0 ? Optional.some({\n elem: ancestorElem,\n toolbars\n }) : Optional.none();\n } else {\n return Optional.none();\n }\n }, isRoot);\n }\n };\n const lookup$1 = (scopes, editor) => {\n const rootElem = SugarElement.fromDom(editor.getBody());\n const isRoot = elem => eq(elem, rootElem);\n const isOutsideRoot = startNode => !isRoot(startNode) && !contains(rootElem, startNode);\n const startNode = SugarElement.fromDom(editor.selection.getNode());\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(() => matchAncestor(isRoot, startNode, scopes));\n };\n\n const categorise = (contextToolbars, navigate) => {\n const forms = {};\n const inNodeScope = [];\n const inEditorScope = [];\n const formNavigators = {};\n const lookupTable = {};\n const registerForm = (key, toolbarSpec) => {\n const contextForm = getOrDie(createContextForm(toolbarSpec));\n forms[key] = contextForm;\n contextForm.launch.map(launch => {\n formNavigators['form:' + key + ''] = {\n ...toolbarSpec.launch,\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: () => {\n navigate(contextForm);\n }\n };\n });\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n lookupTable[key] = contextForm;\n };\n const registerToolbar = (key, toolbarSpec) => {\n createContextToolbar(toolbarSpec).each(contextToolbar => {\n if (toolbarSpec.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n lookupTable[key] = contextToolbar;\n });\n };\n const keys$1 = keys(contextToolbars);\n each$1(keys$1, key => {\n const toolbarApi = contextToolbars[key];\n if (toolbarApi.type === 'contextform') {\n registerForm(key, toolbarApi);\n } else if (toolbarApi.type === 'contexttoolbar') {\n registerToolbar(key, toolbarApi);\n }\n });\n return {\n forms,\n inNodeScope,\n inEditorScope,\n lookupTable,\n formNavigators\n };\n };\n\n const forwardSlideEvent = generate$6('forward-slide');\n const backSlideEvent = generate$6('backward-slide');\n const changeSlideEvent = generate$6('change-slide-event');\n const resizingClass = 'tox-pop--resizing';\n const renderContextToolbar = spec => {\n const stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: { event: 'doNotDismissYet' },\n onShow: comp => {\n stack.set([]);\n InlineView.getContent(comp).each(c => {\n remove$7(c.element, 'visibility');\n });\n remove$3(comp.element, resizingClass);\n remove$7(comp.element, 'width');\n },\n inlineBehaviours: derive$1([\n config('context-toolbar-events', [\n runOnSource(transitionend(), (comp, se) => {\n if (se.event.raw.propertyName === 'width') {\n remove$3(comp.element, resizingClass);\n remove$7(comp.element, 'width');\n }\n }),\n run$1(changeSlideEvent, (comp, se) => {\n const elem = comp.element;\n remove$7(elem, 'width');\n const currentWidth = get$d(elem);\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n const newWidth = get$d(elem);\n set$8(elem, 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(newContents => {\n se.event.focus.bind(f => {\n focus$3(f);\n return search(elem);\n }).orThunk(() => {\n Keying.focusIn(newContents);\n return active$1(getRootNode(elem));\n });\n });\n setTimeout(() => {\n set$8(comp.element, 'width', newWidth + 'px');\n }, 0);\n }),\n run$1(forwardSlideEvent, (comp, se) => {\n InlineView.getContent(comp).each(oldContents => {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active$1(getRootNode(comp.element))\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event.forwardContents,\n focus: Optional.none()\n });\n }),\n run$1(backSlideEvent, (comp, _se) => {\n last$1(stack.get()).each(last => {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade(last.bar),\n focus: last.focus\n });\n });\n })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: comp => last$1(stack.get()).fold(() => spec.onEscape(), _ => {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n })\n })\n ]),\n lazySink: () => Result.value(spec.sink)\n });\n };\n\n const transitionClass = 'tox-pop--transition';\n const register$a = (editor, registryContextToolbars, sink, extras) => {\n const backstage = extras.backstage;\n const sharedBackstage = backstage.shared;\n const isTouch = detect$1().deviceType.isTouch;\n const lastElement = value$4();\n const lastTrigger = value$4();\n const lastContextPosition = value$4();\n const contextbar = build$1(renderContextToolbar({\n sink,\n onEscape: () => {\n editor.focus();\n return Optional.some(true);\n }\n }));\n const getBounds = () => {\n const position = lastContextPosition.get().getOr('node');\n const margin = shouldUseInsetLayouts(position) ? 1 : 0;\n return getContextToolbarBounds(editor, sharedBackstage, position, margin);\n };\n const canLaunchToolbar = () => {\n return !editor.removed && !(isTouch() && backstage.isContextMenuOpen());\n };\n const isSameLaunchElement = elem => is$1(lift2(elem, lastElement.get(), eq), true);\n const shouldContextToolbarHide = () => {\n if (!canLaunchToolbar()) {\n return true;\n } else {\n const contextToolbarBounds = getBounds();\n const anchorBounds = is$1(lastContextPosition.get(), 'node') ? getAnchorElementBounds(editor, lastElement.get()) : getSelectionBounds(editor);\n return contextToolbarBounds.height <= 0 || !isVerticalOverlap(anchorBounds, contextToolbarBounds, 0.01);\n }\n };\n const close = () => {\n lastElement.clear();\n lastTrigger.clear();\n lastContextPosition.clear();\n InlineView.hide(contextbar);\n };\n const hideOrRepositionIfNecessary = () => {\n if (InlineView.isOpen(contextbar)) {\n const contextBarEle = contextbar.element;\n remove$7(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$8(contextBarEle, 'display', 'none');\n } else {\n lastTrigger.set(0);\n InlineView.reposition(contextbar);\n }\n }\n };\n const wrapInPopDialog = toolbarSpec => ({\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([\n Keying.config({ mode: 'acyclic' }),\n config('pop-dialog-wrap-events', [\n runOnAttached(comp => {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', () => Keying.focusIn(comp));\n }),\n runOnDetached(_comp => {\n editor.shortcuts.remove('ctrl+F9');\n })\n ])\n ])\n });\n const getScopes = cached(() => categorise(registryContextToolbars, toolbarApi => {\n const alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n }));\n const buildContextToolbarGroups = (allButtons, ctx) => identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras.backstage, Optional.some(['form:']));\n const buildContextFormGroups = (ctx, providers) => ContextForm.buildInitGroups(ctx, providers);\n const buildToolbar = toolbars => {\n const {buttons} = editor.ui.registry.getAll();\n const scopes = getScopes();\n const allButtons = {\n ...buttons,\n ...scopes.formNavigators\n };\n const toolbarType = getToolbarMode(editor) === ToolbarMode$1.scrolling ? ToolbarMode$1.scrolling : ToolbarMode$1.default;\n const initGroups = flatten(map$2(toolbars, ctx => ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, ctx) : buildContextFormGroups(ctx, sharedBackstage.providers)));\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: sharedBackstage.providers\n });\n };\n const getAnchor = (position, element) => {\n const anchorage = position === 'node' ? sharedBackstage.anchors.node(element) : sharedBackstage.anchors.cursor();\n const anchorLayout = getAnchorLayout(editor, position, isTouch(), {\n lastElement: lastElement.get,\n isReposition: () => is$1(lastTrigger.get(), 0),\n getMode: () => Positioning.getMode(sink)\n });\n return deepMerge(anchorage, anchorLayout);\n };\n const launchContext = (toolbarApi, elem) => {\n launchContextToolbar.cancel();\n if (!canLaunchToolbar()) {\n return;\n }\n const toolbarSpec = buildToolbar(toolbarApi);\n const position = toolbarApi[0].position;\n const anchor = getAnchor(position, elem);\n lastContextPosition.set(position);\n lastTrigger.set(1);\n const contextBarEle = contextbar.element;\n remove$7(contextBarEle, 'display');\n if (!isSameLaunchElement(elem)) {\n remove$3(contextBarEle, transitionClass);\n Positioning.reset(sink, contextbar);\n }\n InlineView.showWithinBounds(contextbar, wrapInPopDialog(toolbarSpec), {\n anchor,\n transition: {\n classes: [transitionClass],\n mode: 'placement'\n }\n }, () => Optional.some(getBounds()));\n elem.fold(lastElement.clear, lastElement.set);\n if (shouldContextToolbarHide()) {\n set$8(contextBarEle, 'display', 'none');\n }\n };\n let isDragging = false;\n const launchContextToolbar = last(() => {\n if (!editor.hasFocus() || editor.removed || isDragging) {\n return;\n }\n if (has(contextbar.element, transitionClass)) {\n launchContextToolbar.throttle();\n } else {\n const scopes = getScopes();\n lookup$1(scopes, editor).fold(close, info => {\n launchContext(info.toolbars, Optional.some(info.elem));\n });\n }\n }, 17);\n editor.on('init', () => {\n editor.on('remove', close);\n editor.on('ScrollContent ScrollWindow ObjectResized ResizeEditor longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup focus SetContent', launchContextToolbar.throttle);\n editor.on(hideContextToolbarEvent, close);\n editor.on(showContextToolbarEvent, e => {\n const scopes = getScopes();\n get$h(scopes.lookupTable, e.toolbarKey).each(ctx => {\n launchContext([ctx], someIf(e.target !== editor, e.target));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n editor.on('focusout', _e => {\n global$9.setEditorTimeout(editor, () => {\n if (search(sink.element).isNone() && search(contextbar.element).isNone()) {\n close();\n }\n }, 0);\n });\n editor.on('SwitchMode', () => {\n if (editor.mode.isReadOnly()) {\n close();\n }\n });\n editor.on('ExecCommand', ({command}) => {\n if (command.toLowerCase() === 'toggleview') {\n close();\n }\n });\n editor.on('AfterProgressState', event => {\n if (event.state) {\n close();\n } else if (editor.hasFocus()) {\n launchContextToolbar.throttle();\n }\n });\n editor.on('dragstart', () => {\n isDragging = true;\n });\n editor.on('dragend drop', () => {\n isDragging = false;\n });\n editor.on('NodeChange', _e => {\n search(contextbar.element).fold(launchContextToolbar.throttle, noop);\n });\n });\n };\n\n const register$9 = editor => {\n const alignToolbarButtons = [\n {\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n },\n {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n },\n {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n },\n {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }\n ];\n each$1(alignToolbarButtons, item => {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n icon: item.icon,\n onAction: onActionExecCommand(editor, item.cmd),\n onSetup: onSetupStateToggle(editor, item.name)\n });\n });\n editor.ui.registry.addButton('alignnone', {\n tooltip: 'No alignment',\n icon: 'align-none',\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, 'JustifyNone')\n });\n };\n\n const registerController = (editor, spec) => {\n const getMenuItems = () => {\n const options = spec.getOptions(editor);\n const initial = spec.getCurrent(editor).map(spec.hash);\n const current = value$4();\n return map$2(options, value => ({\n type: 'togglemenuitem',\n text: spec.display(value),\n onSetup: api => {\n const setActive = active => {\n if (active) {\n current.on(oldApi => oldApi.setActive(false));\n current.set(api);\n }\n api.setActive(active);\n };\n setActive(is$1(initial, spec.hash(value)));\n const unbindWatcher = spec.watcher(editor, value, setActive);\n return () => {\n current.clear();\n unbindWatcher();\n };\n },\n onAction: () => spec.setCurrent(editor, value)\n }));\n };\n editor.ui.registry.addMenuButton(spec.name, {\n tooltip: spec.text,\n icon: spec.icon,\n fetch: callback => callback(getMenuItems()),\n onSetup: spec.onToolbarSetup\n });\n editor.ui.registry.addNestedMenuItem(spec.name, {\n type: 'nestedmenuitem',\n text: spec.text,\n getSubmenuItems: getMenuItems,\n onSetup: spec.onMenuSetup\n });\n };\n const lineHeightSpec = editor => ({\n name: 'lineheight',\n text: 'Line height',\n icon: 'line-height',\n getOptions: getLineHeightFormats,\n hash: input => normalise(input, [\n 'fixed',\n 'relative',\n 'empty'\n ]).getOr(input),\n display: identity,\n watcher: (editor, value, callback) => editor.formatter.formatChanged('lineheight', callback, false, { value }).unbind,\n getCurrent: editor => Optional.from(editor.queryCommandValue('LineHeight')),\n setCurrent: (editor, value) => editor.execCommand('LineHeight', false, value),\n onToolbarSetup: onSetupEditableToggle(editor),\n onMenuSetup: onSetupEditableToggle(editor)\n });\n const languageSpec = editor => {\n const settingsOpt = Optional.from(getContentLanguages(editor));\n return settingsOpt.map(settings => ({\n name: 'language',\n text: 'Language',\n icon: 'language',\n getOptions: constant$1(settings),\n hash: input => isUndefined(input.customCode) ? input.code : `${ input.code }/${ input.customCode }`,\n display: input => input.title,\n watcher: (editor, value, callback) => {\n var _a;\n return editor.formatter.formatChanged('lang', callback, false, {\n value: value.code,\n customValue: (_a = value.customCode) !== null && _a !== void 0 ? _a : null\n }).unbind;\n },\n getCurrent: editor => {\n const node = SugarElement.fromDom(editor.selection.getNode());\n return closest$4(node, n => Optional.some(n).filter(isElement$1).bind(ele => {\n const codeOpt = getOpt(ele, 'lang');\n return codeOpt.map(code => {\n const customCode = getOpt(ele, 'data-mce-lang').getOrUndefined();\n return {\n code,\n customCode,\n title: ''\n };\n });\n }));\n },\n setCurrent: (editor, lang) => editor.execCommand('Lang', false, lang),\n onToolbarSetup: api => {\n const unbinder = unbindable();\n api.setActive(editor.formatter.match('lang', {}, undefined, true));\n unbinder.set(editor.formatter.formatChanged('lang', api.setActive, true));\n return composeUnbinders(unbinder.clear, onSetupEditableToggle(editor)(api));\n },\n onMenuSetup: onSetupEditableToggle(editor)\n }));\n };\n const register$8 = editor => {\n registerController(editor, lineHeightSpec(editor));\n languageSpec(editor).each(spec => registerController(editor, spec));\n };\n\n const register$7 = (editor, backstage) => {\n createAlignMenu(editor, backstage);\n createFontFamilyMenu(editor, backstage);\n createStylesMenu(editor, backstage);\n createBlocksMenu(editor, backstage);\n createFontSizeMenu(editor, backstage);\n };\n\n const register$6 = editor => {\n editor.ui.registry.addContext('editable', () => {\n return editor.selection.isEditable();\n });\n editor.ui.registry.addContext('mode', mode => {\n return editor.mode.get() === mode;\n });\n editor.ui.registry.addContext('any', always);\n editor.ui.registry.addContext('formatting', format => {\n return editor.formatter.canApply(format);\n });\n editor.ui.registry.addContext('insert', child => {\n return editor.schema.isValidChild(editor.selection.getNode().tagName, child);\n });\n };\n\n const onSetupOutdentState = editor => onSetupEvent(editor, 'NodeChange', api => {\n api.setEnabled(editor.queryCommandState('outdent') && editor.selection.isEditable());\n });\n const registerButtons$2 = editor => {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: onSetupOutdentState(editor),\n onAction: onActionExecCommand(editor, 'outdent')\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, 'indent')\n });\n };\n const register$5 = editor => {\n registerButtons$2(editor);\n };\n\n const makeSetupHandler = (editor, pasteAsText) => api => {\n api.setActive(pasteAsText.get());\n const pastePlainTextToggleHandler = e => {\n pasteAsText.set(e.state);\n api.setActive(e.state);\n };\n editor.on('PastePlainTextToggle', pastePlainTextToggleHandler);\n return composeUnbinders(() => editor.off('PastePlainTextToggle', pastePlainTextToggleHandler), onSetupEditableToggle(editor)(api));\n };\n const register$4 = editor => {\n const pasteAsText = Cell(getPasteAsText(editor));\n const onAction = () => editor.execCommand('mceTogglePlainTextPaste');\n editor.ui.registry.addToggleButton('pastetext', {\n active: false,\n icon: 'paste-text',\n tooltip: 'Paste as text',\n onAction,\n onSetup: makeSetupHandler(editor, pasteAsText)\n });\n editor.ui.registry.addToggleMenuItem('pastetext', {\n text: 'Paste as text',\n icon: 'paste-text',\n onAction,\n onSetup: makeSetupHandler(editor, pasteAsText)\n });\n };\n\n const onActionToggleFormat = (editor, fmt) => () => {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n const registerFormatButtons = editor => {\n global$1.each([\n {\n name: 'bold',\n text: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }\n ], (btn, _idx) => {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupStateToggle(editor, btn.name),\n onAction: onActionToggleFormat(editor, btn.name),\n shortcut: btn.shortcut\n });\n });\n for (let i = 1; i <= 6; i++) {\n const name = 'h' + i;\n const shortcut = `Access+${ i }`;\n editor.ui.registry.addToggleButton(name, {\n text: name.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupStateToggle(editor, name),\n onAction: onActionToggleFormat(editor, name),\n shortcut\n });\n }\n };\n const registerCommandButtons = editor => {\n global$1.each([\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n context: 'any'\n },\n {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help',\n shortcut: 'Alt+0',\n context: 'any'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A',\n context: 'any'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'print',\n text: 'Print',\n action: 'mcePrint',\n icon: 'print',\n shortcut: 'Meta+P',\n context: 'any'\n }\n ], btn => {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action),\n shortcut: btn.shortcut,\n context: btn.context\n });\n });\n global$1.each([\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n },\n {\n name: 'hr',\n text: 'Horizontal line',\n action: 'InsertHorizontalRule',\n icon: 'horizontal-rule'\n }\n ], btn => {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, btn.action)\n });\n });\n };\n const registerCommandToggleButtons = editor => {\n global$1.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], btn => {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action),\n onSetup: onSetupStateToggle(editor, btn.name)\n });\n });\n };\n const registerButtons$1 = editor => {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n const registerMenuItems$2 = editor => {\n global$1.each([\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C',\n context: 'any'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A',\n context: 'any'\n },\n {\n name: 'print',\n text: 'Print...',\n action: 'mcePrint',\n icon: 'print',\n shortcut: 'Meta+P',\n context: 'any'\n }\n ], menuitem => {\n editor.ui.registry.addMenuItem(menuitem.name, {\n text: menuitem.text,\n icon: menuitem.icon,\n shortcut: menuitem.shortcut,\n onAction: onActionExecCommand(editor, menuitem.action),\n context: menuitem.context\n });\n });\n global$1.each([\n {\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n },\n {\n name: 'hr',\n text: 'Horizontal line',\n action: 'InsertHorizontalRule',\n icon: 'horizontal-rule'\n }\n ], menuitem => {\n editor.ui.registry.addMenuItem(menuitem.name, {\n text: menuitem.text,\n icon: menuitem.icon,\n shortcut: menuitem.shortcut,\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, menuitem.action)\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionToggleFormat(editor, 'code')\n });\n };\n const register$3 = editor => {\n registerButtons$1(editor);\n registerMenuItems$2(editor);\n };\n\n const onSetupUndoRedoState = (editor, type) => onSetupEvent(editor, 'Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', api => {\n api.setEnabled(!editor.mode.isReadOnly() && editor.undoManager[type]());\n });\n const registerMenuItems$1 = editor => {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n const registerButtons = editor => {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n enabled: false,\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo'),\n shortcut: 'Meta+Z'\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n enabled: false,\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo'),\n shortcut: 'Meta+Y'\n });\n };\n const register$2 = editor => {\n registerMenuItems$1(editor);\n registerButtons(editor);\n };\n\n const onSetupVisualAidState = editor => onSetupEvent(editor, 'VisualAid', api => {\n api.setActive(editor.hasVisual);\n });\n const registerMenuItems = editor => {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: onSetupVisualAidState(editor),\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid'),\n context: 'any'\n });\n };\n const registerToolbarButton = editor => {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid'),\n context: 'any'\n });\n };\n const register$1 = editor => {\n registerToolbarButton(editor);\n registerMenuItems(editor);\n };\n\n const setup$6 = (editor, backstage) => {\n register$9(editor);\n register$3(editor);\n register$7(editor, backstage);\n register$2(editor);\n register$d(editor);\n register$1(editor);\n register$5(editor);\n register$8(editor);\n register$4(editor);\n register$6(editor);\n };\n\n const patchPipeConfig = config => isString(config) ? config.split(/[ ,]/) : config;\n const option = name => editor => editor.options.get(name);\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('contextmenu_avoid_overlap', {\n processor: 'string',\n default: ''\n });\n registerOption('contextmenu_never_use_native', {\n processor: 'boolean',\n default: false\n });\n registerOption('contextmenu', {\n processor: value => {\n if (value === false) {\n return {\n value: [],\n valid: true\n };\n } else if (isString(value) || isArrayOf(value, isString)) {\n return {\n value: patchPipeConfig(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be false or a string.'\n };\n }\n },\n default: 'link linkchecker image editimage table spellchecker configurepermanentpen'\n });\n };\n const shouldNeverUseNative = option('contextmenu_never_use_native');\n const getAvoidOverlapSelector = option('contextmenu_avoid_overlap');\n const isContextMenuDisabled = editor => getContextMenu(editor).length === 0;\n const getContextMenu = editor => {\n const contextMenus = editor.ui.registry.getAll().contextMenus;\n const contextMenu = editor.options.get('contextmenu');\n if (editor.options.isSet('contextmenu')) {\n return contextMenu;\n } else {\n return filter$2(contextMenu, item => has$2(contextMenus, item));\n }\n };\n\n const nu = (x, y) => ({\n type: 'makeshift',\n x,\n y\n });\n const transpose = (pos, dx, dy) => {\n return nu(pos.x + dx, pos.y + dy);\n };\n const isTouchEvent$1 = e => e.type === 'longpress' || e.type.indexOf('touch') === 0;\n const fromPageXY = e => {\n if (isTouchEvent$1(e)) {\n const touch = e.touches[0];\n return nu(touch.pageX, touch.pageY);\n } else {\n return nu(e.pageX, e.pageY);\n }\n };\n const fromClientXY = e => {\n if (isTouchEvent$1(e)) {\n const touch = e.touches[0];\n return nu(touch.clientX, touch.clientY);\n } else {\n return nu(e.clientX, e.clientY);\n }\n };\n const transposeContentAreaContainer = (element, pos) => {\n const containerPos = global$8.DOM.getPos(element);\n return transpose(pos, containerPos.x, containerPos.y);\n };\n const getPointAnchor = (editor, e) => {\n if (e.type === 'contextmenu' || e.type === 'longpress') {\n if (editor.inline) {\n return fromPageXY(e);\n } else {\n return transposeContentAreaContainer(editor.getContentAreaContainer(), fromClientXY(e));\n }\n } else {\n return getSelectionAnchor(editor);\n }\n };\n const getSelectionAnchor = editor => {\n return {\n type: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n const getNodeAnchor = editor => ({\n type: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n });\n const getAnchorSpec$1 = (editor, e, anchorType) => {\n switch (anchorType) {\n case 'node':\n return getNodeAnchor(editor);\n case 'point':\n return getPointAnchor(editor, e);\n case 'selection':\n return getSelectionAnchor(editor);\n }\n };\n\n const initAndShow$1 = (editor, e, buildMenu, backstage, contextmenu, anchorType) => {\n const items = buildMenu();\n const anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n }).map(menuData => {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, { anchor: anchorSpec }, {\n menu: { markers: markers('normal') },\n data: menuData\n });\n });\n };\n\n const layouts = {\n onLtr: () => [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2,\n north,\n south,\n northeast,\n southeast,\n northwest,\n southwest\n ],\n onRtl: () => [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2,\n north,\n south,\n northwest,\n southwest,\n northeast,\n southeast\n ]\n };\n const bubbleSize = 12;\n const bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n const isTouchWithinSelection = (editor, e) => {\n const selection = editor.selection;\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n const touch = e.touches[0];\n const rng = selection.getRng();\n const rngRectOpt = getFirstRect(editor.getWin(), SimSelection.domRange(rng));\n return rngRectOpt.exists(rngRect => rngRect.left <= touch.clientX && rngRect.right >= touch.clientX && rngRect.top <= touch.clientY && rngRect.bottom >= touch.clientY);\n }\n };\n const setupiOSOverrides = editor => {\n const originalSelection = editor.selection.getRng();\n const selectionReset = () => {\n global$9.setEditorTimeout(editor, () => {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n const preventMousedown = e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n const clearSelectionReset = () => unbindEventListeners();\n editor.once('longpresscancel', clearSelectionReset);\n const unbindEventListeners = () => {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n const getAnchorSpec = (editor, e, anchorType) => {\n const anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n const bubbleYOffset = anchorType === 'point' ? bubbleSize : 0;\n return {\n bubble: nu$5(0, bubbleYOffset, bubbleAlignments),\n layouts,\n overrides: {\n maxWidthFunction: expandable(),\n maxHeightFunction: expandable$1()\n },\n ...anchorSpec\n };\n };\n const show = (editor, e, items, backstage, contextmenu, anchorType, highlightImmediately) => {\n const anchorSpec = getAnchorSpec(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: true,\n search: Optional.none()\n }).map(menuData => {\n e.preventDefault();\n const highlightOnOpen = highlightImmediately ? HighlightOnOpen.HighlightMenuAndItem : HighlightOnOpen.HighlightNone;\n InlineView.showMenuWithinBounds(contextmenu, { anchor: anchorSpec }, {\n menu: {\n markers: markers('normal'),\n highlightOnOpen\n },\n data: menuData,\n type: 'horizontal'\n }, () => Optional.some(getContextToolbarBounds(editor, backstage.shared, anchorType === 'node' ? 'node' : 'selection')));\n editor.dispatch(hideContextToolbarEvent);\n });\n };\n const initAndShow = (editor, e, buildMenu, backstage, contextmenu, anchorType) => {\n const detection = detect$1();\n const isiOS = detection.os.isiOS();\n const isMacOS = detection.os.isMacOS();\n const isAndroid = detection.os.isAndroid();\n const isTouch = detection.deviceType.isTouch();\n const shouldHighlightImmediately = () => !(isAndroid || isiOS || isMacOS && isTouch);\n const open = () => {\n const items = buildMenu();\n show(editor, e, items, backstage, contextmenu, anchorType, shouldHighlightImmediately());\n };\n if ((isMacOS || isiOS) && anchorType !== 'node') {\n const openiOS = () => {\n setupiOSOverrides(editor);\n open();\n };\n if (isTouchWithinSelection(editor, e)) {\n openiOS();\n } else {\n editor.once('selectionchange', openiOS);\n editor.once('touchend', () => editor.off('selectionchange', openiOS));\n }\n } else {\n open();\n }\n };\n\n const isSeparator = item => isString(item) ? item === '|' : item.type === 'separator';\n const separator = { type: 'separator' };\n const makeContextItem = item => {\n const commonMenuItem = item => ({\n text: item.text,\n icon: item.icon,\n enabled: item.enabled,\n shortcut: item.shortcut\n });\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator;\n case 'submenu':\n return {\n type: 'nestedmenuitem',\n ...commonMenuItem(item),\n getSubmenuItems: () => {\n const items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map$2(items, makeContextItem);\n }\n }\n };\n default:\n const commonItem = item;\n return {\n type: 'menuitem',\n ...commonMenuItem(commonItem),\n onAction: noarg(commonItem.onAction)\n };\n }\n }\n };\n const addContextMenuGroup = (xs, groupItems) => {\n if (groupItems.length === 0) {\n return xs;\n }\n const lastMenuItem = last$1(xs).filter(item => !isSeparator(item));\n const before = lastMenuItem.fold(() => [], _ => [separator]);\n return xs.concat(before).concat(groupItems).concat([separator]);\n };\n const generateContextMenu = (contextMenus, menuConfig, selectedElement) => {\n const sections = foldl(menuConfig, (acc, name) => {\n return get$h(contextMenus, name.toLowerCase()).map(menu => {\n const items = menu.update(selectedElement);\n if (isString(items) && isNotEmpty(trim$1(items))) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (isArray(items) && items.length > 0) {\n const allItems = map$2(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n }).getOrThunk(() => acc.concat([name]));\n }, []);\n if (sections.length > 0 && isSeparator(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n const isNativeOverrideKeyEvent = (editor, e) => e.ctrlKey && !shouldNeverUseNative(editor);\n const isTouchEvent = e => e.type === 'longpress' || has$2(e, 'touches');\n const isTriggeredByKeyboard = (editor, e) => !isTouchEvent(e) && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n const getSelectedElement = (editor, e) => isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n const getAnchorType = (editor, e) => {\n const selector = getAvoidOverlapSelector(editor);\n const anchorType = isTriggeredByKeyboard(editor, e) ? 'selection' : 'point';\n if (isNotEmpty(selector)) {\n const target = getSelectedElement(editor, e);\n const selectorExists = closest(SugarElement.fromDom(target), selector);\n return selectorExists ? 'node' : anchorType;\n } else {\n return anchorType;\n }\n };\n const setup$5 = (editor, lazySink, backstage) => {\n const detection = detect$1();\n const isTouch = detection.deviceType.isTouch;\n const contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink,\n onEscape: () => editor.focus(),\n onShow: () => backstage.setContextMenuState(true),\n onHide: () => backstage.setContextMenuState(false),\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run$1(dismissRequested(), (comp, _se) => {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n const hideContextMenu = () => InlineView.hide(contextmenu);\n const showContextMenu = e => {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n const anchorType = getAnchorType(editor, e);\n const buildMenu = () => {\n const selectedElement = getSelectedElement(editor, e);\n const registry = editor.ui.registry.getAll();\n const menuConfig = getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n const initAndShow$2 = isTouch() ? initAndShow : initAndShow$1;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, anchorType);\n };\n editor.on('init', () => {\n const hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on('longpress contextmenu', showContextMenu);\n });\n };\n\n const adt = Adt.generate([\n {\n offset: [\n 'x',\n 'y'\n ]\n },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n const subtract = change => point => point.translate(-change.left, -change.top);\n const add = change => point => point.translate(change.left, change.top);\n const transform = changes => (x, y) => foldl(changes, (rest, f) => f(rest), SugarPosition(x, y));\n const asFixed = (coord, scroll, origin) => coord.fold(transform([\n add(origin),\n subtract(scroll)\n ]), transform([subtract(scroll)]), transform([]));\n const asAbsolute = (coord, scroll, origin) => coord.fold(transform([add(origin)]), transform([]), transform([add(scroll)]));\n const asOffset = (coord, scroll, origin) => coord.fold(transform([]), transform([subtract(origin)]), transform([\n add(scroll),\n subtract(origin)\n ]));\n const withinRange = (coord1, coord2, xRange, yRange, scroll, origin) => {\n const a1 = asAbsolute(coord1, scroll, origin);\n const a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left - a2.left) <= xRange && Math.abs(a1.top - a2.top) <= yRange;\n };\n const getDeltas = (coord1, coord2, xRange, yRange, scroll, origin) => {\n const a1 = asAbsolute(coord1, scroll, origin);\n const a2 = asAbsolute(coord2, scroll, origin);\n const left = Math.abs(a1.left - a2.left);\n const top = Math.abs(a1.top - a2.top);\n return SugarPosition(left, top);\n };\n const toStyles = (coord, scroll, origin) => {\n const stylesOpt = coord.fold((x, y) => ({\n position: Optional.some('absolute'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n }), (x, y) => ({\n position: Optional.some('absolute'),\n left: Optional.some(x - origin.left + 'px'),\n top: Optional.some(y - origin.top + 'px')\n }), (x, y) => ({\n position: Optional.some('fixed'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n }));\n return {\n right: Optional.none(),\n bottom: Optional.none(),\n ...stylesOpt\n };\n };\n const translate = (coord, deltaX, deltaY) => coord.fold((x, y) => offset(x + deltaX, y + deltaY), (x, y) => absolute(x + deltaX, y + deltaY), (x, y) => fixed(x + deltaX, y + deltaY));\n const absorb = (partialCoord, originalCoord, scroll, origin) => {\n const absorbOne = (stencil, nu) => (optX, optY) => {\n const original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left), optY.getOr(original.top));\n };\n return partialCoord.fold(absorbOne(asOffset, offset), absorbOne(asAbsolute, absolute), absorbOne(asFixed, fixed));\n };\n const offset = adt.offset;\n const absolute = adt.absolute;\n const fixed = adt.fixed;\n\n const parseAttrToInt = (element, name) => {\n const value = get$g(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n const get$1 = (component, snapsInfo) => {\n const element = component.element;\n const x = parseAttrToInt(element, snapsInfo.leftAttr);\n const y = parseAttrToInt(element, snapsInfo.topAttr);\n return isNaN(x) || isNaN(y) ? Optional.none() : Optional.some(SugarPosition(x, y));\n };\n const set = (component, snapsInfo, pt) => {\n const element = component.element;\n set$9(element, snapsInfo.leftAttr, pt.left + 'px');\n set$9(element, snapsInfo.topAttr, pt.top + 'px');\n };\n const clear = (component, snapsInfo) => {\n const element = component.element;\n remove$8(element, snapsInfo.leftAttr);\n remove$8(element, snapsInfo.topAttr);\n };\n\n const getCoords = (component, snapInfo, coord, delta) => get$1(component, snapInfo).fold(() => coord, fixed$1 => fixed(fixed$1.left + delta.left, fixed$1.top + delta.top));\n const moveOrSnap = (component, snapInfo, coord, delta, scroll, origin) => {\n const newCoord = getCoords(component, snapInfo, coord, delta);\n const snap = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n const fixedCoord = asFixed(newCoord, scroll, origin);\n set(component, snapInfo, fixedCoord);\n return snap.fold(() => ({\n coord: fixed(fixedCoord.left, fixedCoord.top),\n extra: Optional.none()\n }), spanned => ({\n coord: spanned.output,\n extra: spanned.extra\n }));\n };\n const stopDrag = (component, snapInfo) => {\n clear(component, snapInfo);\n };\n const findMatchingSnap = (snaps, newCoord, scroll, origin) => findMap(snaps, snap => {\n const sensor = snap.sensor;\n const inRange = withinRange(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return inRange ? Optional.some({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }) : Optional.none();\n });\n const findClosestSnap = (component, snapInfo, newCoord, scroll, origin) => {\n const snaps = snapInfo.getSnapPoints(component);\n const matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(() => {\n const bestSnap = foldl(snaps, (acc, snap) => {\n const sensor = snap.sensor;\n const deltas = getDeltas(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return acc.deltas.fold(() => ({\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n }), bestDeltas => {\n const currAvg = (deltas.left + deltas.top) / 2;\n const bestAvg = (bestDeltas.left + bestDeltas.top) / 2;\n if (currAvg <= bestAvg) {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n } else {\n return acc;\n }\n });\n }, {\n deltas: Optional.none(),\n snap: Optional.none()\n });\n return bestSnap.snap.map(snap => ({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }));\n });\n };\n const findSnap = (component, snapInfo, newCoord, scroll, origin) => {\n const snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n const snapTo$1 = (snap, scroll, origin) => ({\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n });\n\n const snapTo = (component, dragConfig, _state, snap) => {\n const target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n const doc = owner$4(component.element);\n const scroll = get$c(doc);\n const origin = getOrigin(target);\n const snapPin = snapTo$1(snap, scroll, origin);\n const styles = toStyles(snapPin.coord, scroll, origin);\n setOptions(target, styles);\n }\n };\n\n var DraggingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n snapTo: snapTo\n });\n\n const initialAttribute = 'data-initial-z-index';\n const resetZIndex = blocker => {\n parent(blocker.element).filter(isElement$1).each(root => {\n getOpt(root, initialAttribute).fold(() => remove$7(root, 'z-index'), zIndex => set$8(root, 'z-index', zIndex));\n remove$8(root, initialAttribute);\n });\n };\n const changeZIndex = blocker => {\n parent(blocker.element).filter(isElement$1).each(root => {\n getRaw(root, 'z-index').each(zindex => {\n set$9(root, initialAttribute, zindex);\n });\n set$8(root, 'z-index', get$f(blocker.element, 'z-index'));\n });\n };\n const instigate = (anyComponent, blocker) => {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n const discard = blocker => {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n const createComponent = (component, blockerClass, blockerEvents) => component.getSystem().build(Container.sketch({\n dom: {\n styles: {\n 'left': '0px',\n 'top': '0px',\n 'width': '100%',\n 'height': '100%',\n 'position': 'fixed',\n 'z-index': '1000000000000000'\n },\n classes: [blockerClass]\n },\n events: blockerEvents\n }));\n\n var SnapSchema = optionObjOf('snaps', [\n required$1('getSnapPoints'),\n onHandler('onSensor'),\n required$1('leftAttr'),\n required$1('topAttr'),\n defaulted('lazyViewport', win),\n defaulted('mustSnap', false)\n ]);\n\n const schema$6 = [\n defaulted('useFixed', never),\n required$1('blockerClass'),\n defaulted('getTarget', identity),\n defaulted('onDrag', noop),\n defaulted('repositionTarget', true),\n defaulted('onDrop', noop),\n defaultedFunction('getBounds', win),\n SnapSchema\n ];\n\n const getCurrentCoord = target => lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), (left, top, position) => {\n const nu = position === 'fixed' ? fixed : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(() => {\n const location = absolute$3(target);\n return absolute(location.left, location.top);\n });\n const clampCoords = (component, coords, scroll, origin, startData) => {\n const bounds = startData.bounds;\n const absoluteCoord = asAbsolute(coords, scroll, origin);\n const newX = clamp(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n const newY = clamp(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n const newCoords = absolute(newX, newY);\n return coords.fold(() => {\n const offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left, offset$1.top);\n }, constant$1(newCoords), () => {\n const fixed$1 = asFixed(newCoords, scroll, origin);\n return fixed(fixed$1.left, fixed$1.top);\n });\n };\n const calcNewCoord = (component, optSnaps, currentCoord, scroll, origin, delta, startData) => {\n const newCoord = optSnaps.fold(() => {\n const translated = translate(currentCoord, delta.left, delta.top);\n const fixedCoord = asFixed(translated, scroll, origin);\n return fixed(fixedCoord.left, fixedCoord.top);\n }, snapInfo => {\n const snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(extra => {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n return clampCoords(component, newCoord, scroll, origin, startData);\n };\n const dragBy = (component, dragConfig, startData, delta) => {\n const target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n const doc = owner$4(component.element);\n const scroll = get$c(doc);\n const origin = getOrigin(target);\n const currentCoord = getCurrentCoord(target);\n const newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll, origin, delta, startData);\n const styles = toStyles(newCoord, scroll, origin);\n setOptions(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n\n const calcStartData = (dragConfig, comp) => ({\n bounds: dragConfig.getBounds(),\n height: getOuter$2(comp.element),\n width: getOuter$1(comp.element)\n });\n const move = (component, dragConfig, dragState, dragMode, event) => {\n const delta = dragState.update(dragMode, event);\n const dragStartData = dragState.getStartData().getOrThunk(() => calcStartData(dragConfig, component));\n delta.each(dlt => {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n const stop = (component, blocker, dragConfig, dragState) => {\n blocker.each(discard);\n dragConfig.snaps.each(snapInfo => {\n stopDrag(component, snapInfo);\n });\n const target = dragConfig.getTarget(component.element);\n dragState.reset();\n dragConfig.onDrop(component, target);\n };\n const handlers = events => (dragConfig, dragState) => {\n const updateStartState = comp => {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive$2([\n run$1(windowScroll(), comp => {\n dragState.getStartData().each(() => updateStartState(comp));\n }),\n ...events(dragConfig, dragState, updateStartState)\n ]);\n };\n\n const init$3 = dragApi => derive$2([\n run$1(mousedown(), dragApi.forceDrop),\n run$1(mouseup(), dragApi.drop),\n run$1(mousemove(), (comp, simulatedEvent) => {\n dragApi.move(simulatedEvent.event);\n }),\n run$1(mouseout(), dragApi.delayDrop)\n ]);\n\n const getData$1 = event => Optional.from(SugarPosition(event.x, event.y));\n const getDelta$1 = (old, nu) => SugarPosition(nu.left - old.left, nu.top - old.top);\n\n var MouseData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData$1,\n getDelta: getDelta$1\n });\n\n const events$3 = (dragConfig, dragState, updateStartState) => [run$1(mousedown(), (component, simulatedEvent) => {\n const raw = simulatedEvent.event.raw;\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n const stop$1 = () => stop(component, Optional.some(blocker), dragConfig, dragState);\n const delayDrop = DelayedFunction(stop$1, 200);\n const dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: event => {\n delayDrop.cancel();\n move(component, dragConfig, dragState, MouseData, event);\n }\n };\n const blocker = createComponent(component, dragConfig.blockerClass, init$3(dragApi));\n const start = () => {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })];\n const schema$5 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$3) })\n ];\n\n const init$2 = dragApi => derive$2([\n run$1(touchstart(), dragApi.forceDrop),\n run$1(touchend(), dragApi.drop),\n run$1(touchcancel(), dragApi.drop),\n run$1(touchmove(), (comp, simulatedEvent) => {\n dragApi.move(simulatedEvent.event);\n })\n ]);\n\n const getDataFrom = touches => {\n const touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n const getData = event => {\n const raw = event.raw;\n const touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n const getDelta = (old, nu) => SugarPosition(nu.left - old.left, nu.top - old.top);\n\n var TouchData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData,\n getDelta: getDelta\n });\n\n const events$2 = (dragConfig, dragState, updateStartState) => {\n const blockerSingleton = value$4();\n const stopBlocking = component => {\n stop(component, blockerSingleton.get(), dragConfig, dragState);\n blockerSingleton.clear();\n };\n return [\n run$1(touchstart(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n const stop = () => stopBlocking(component);\n const dragApi = {\n drop: stop,\n delayDrop: noop,\n forceDrop: stop,\n move: event => {\n move(component, dragConfig, dragState, TouchData, event);\n }\n };\n const blocker = createComponent(component, dragConfig.blockerClass, init$2(dragApi));\n blockerSingleton.set(blocker);\n const start = () => {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }),\n run$1(touchmove(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n move(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }),\n run$1(touchend(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n stopBlocking(component);\n }),\n run$1(touchcancel(), stopBlocking)\n ];\n };\n const schema$4 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$2) })\n ];\n\n const events$1 = (dragConfig, dragState, updateStartState) => [\n ...events$3(dragConfig, dragState, updateStartState),\n ...events$2(dragConfig, dragState, updateStartState)\n ];\n const schema$3 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$1) })\n ];\n\n const mouse = schema$5;\n const touch = schema$4;\n const mouseOrTouch = schema$3;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n\n const init$1 = () => {\n let previous = Optional.none();\n let startData = Optional.none();\n const reset = () => {\n previous = Optional.none();\n startData = Optional.none();\n };\n const calculateDelta = (mode, nu) => {\n const result = previous.map(old => mode.getDelta(old, nu));\n previous = Optional.some(nu);\n return result;\n };\n const update = (mode, dragEvent) => mode.getData(dragEvent).bind(nuData => calculateDelta(mode, nuData));\n const setStartData = data => {\n startData = Optional.some(data);\n };\n const getStartData = () => startData;\n const readState = constant$1({});\n return nu$7({\n readState,\n reset,\n update,\n getStartData,\n setStartData\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$1\n });\n\n const Dragging = createModes({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: (dragConfig, dragState) => {\n const dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: sConfig => ({\n sensor: sConfig.sensor,\n range: sConfig.range,\n output: sConfig.output,\n extra: Optional.from(sConfig.extra)\n })\n },\n state: DragState,\n apis: DraggingApis\n });\n\n const snapWidth = 40;\n const snapOffset = snapWidth / 2;\n const calcSnap = (selectorOpt, td, x, y, width, height) => selectorOpt.fold(() => Dragging.snap({\n sensor: absolute(x - snapOffset, y - snapOffset),\n range: SugarPosition(width, height),\n output: absolute(Optional.some(x), Optional.some(y)),\n extra: { td }\n }), selectorHandle => {\n const sensorLeft = x - snapOffset;\n const sensorTop = y - snapOffset;\n const sensorWidth = snapWidth;\n const sensorHeight = snapWidth;\n const rect = selectorHandle.element.dom.getBoundingClientRect();\n return Dragging.snap({\n sensor: absolute(sensorLeft, sensorTop),\n range: SugarPosition(sensorWidth, sensorHeight),\n output: absolute(Optional.some(x - rect.width / 2), Optional.some(y - rect.height / 2)),\n extra: { td }\n });\n });\n const getSnapsConfig = (getSnapPoints, cell, onChange) => {\n const isSameCell = (cellOpt, td) => cellOpt.exists(currentTd => eq(currentTd, td));\n return {\n getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: (component, extra) => {\n const td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(td);\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n const createSelector = snaps => record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([\n Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps\n }),\n Unselecting.config({})\n ]),\n eventOrder: {\n mousedown: [\n 'dragging',\n 'alloy.base.behaviour'\n ],\n touchstart: [\n 'dragging',\n 'alloy.base.behaviour'\n ]\n }\n }));\n const setup$4 = (editor, sink) => {\n const tlTds = Cell([]);\n const brTds = Cell([]);\n const isVisible = Cell(false);\n const startCell = value$4();\n const finishCell = value$4();\n const getTopLeftSnap = td => {\n const box = absolute$2(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n const getTopLeftSnaps = () => map$2(tlTds.get(), td => getTopLeftSnap(td));\n const getBottomRightSnap = td => {\n const box = absolute$2(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n const getBottomRightSnaps = () => map$2(brTds.get(), td => getBottomRightSnap(td));\n const topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, start => {\n finishCell.get().each(finish => {\n editor.dispatch('TableSelectorChange', {\n start,\n finish\n });\n });\n });\n const bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, finish => {\n startCell.get().each(start => {\n editor.dispatch('TableSelectorChange', {\n start,\n finish\n });\n });\n });\n const memTopLeft = createSelector(topLeftSnaps);\n const memBottomRight = createSelector(bottomRightSnaps);\n const topLeft = build$1(memTopLeft.asSpec());\n const bottomRight = build$1(memBottomRight.asSpec());\n const showOrHideHandle = (selector, cell, isAbove, isBelow) => {\n const cellRect = cell.dom.getBoundingClientRect();\n remove$7(selector.element, 'display');\n const viewportHeight = defaultView(SugarElement.fromDom(editor.getBody())).dom.innerHeight;\n const aboveViewport = isAbove(cellRect);\n const belowViewport = isBelow(cellRect, viewportHeight);\n if (aboveViewport || belowViewport) {\n set$8(selector.element, 'display', 'none');\n }\n };\n const snapTo = (selector, cell, getSnapConfig, pos) => {\n const snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n const isAbove = rect => rect[pos] < 0;\n const isBelow = (rect, viewportHeight) => rect[pos] > viewportHeight;\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n const snapTopLeft = cell => snapTo(topLeft, cell, getTopLeftSnap, 'top');\n const snapLastTopLeft = () => startCell.get().each(snapTopLeft);\n const snapBottomRight = cell => snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n const snapLastBottomRight = () => finishCell.get().each(snapBottomRight);\n if (detect$1().deviceType.isTouch()) {\n const domToSugar = arr => map$2(arr, SugarElement.fromDom);\n editor.on('TableSelectionChange', e => {\n if (!isVisible.get()) {\n attach(sink, topLeft);\n attach(sink, bottomRight);\n isVisible.set(true);\n }\n const start = SugarElement.fromDom(e.start);\n const finish = SugarElement.fromDom(e.finish);\n startCell.set(start);\n finishCell.set(finish);\n Optional.from(e.otherCells).each(otherCells => {\n tlTds.set(domToSugar(otherCells.upOrLeftCells));\n brTds.set(domToSugar(otherCells.downOrRightCells));\n snapTopLeft(start);\n snapBottomRight(finish);\n });\n });\n editor.on('ResizeEditor ResizeWindow ScrollContent', () => {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', () => {\n if (isVisible.get()) {\n detach(topLeft);\n detach(bottomRight);\n isVisible.set(false);\n }\n startCell.clear();\n finishCell.clear();\n });\n }\n };\n\n var Logo = \"\\n\";\n\n const describedBy = (describedElement, describeElement) => {\n const describeId = Optional.from(get$g(describedElement, 'id')).getOrThunk(() => {\n const id = generate$6('aria');\n set$9(describeElement, 'id', id);\n return id;\n });\n set$9(describedElement, 'aria-describedby', describeId);\n };\n const remove = describedElement => {\n remove$8(describedElement, 'aria-describedby');\n };\n\n const isHidden = elm => elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus') || elm.getAttribute('data-mce-type') === 'bookmark';\n const renderElementPath = (editor, settings, providersBackstage) => {\n var _a;\n const delimiter = (_a = settings.delimiter) !== null && _a !== void 0 ? _a : '\\u203A';\n const renderElement = (name, element, index) => Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: { 'data-index': index }\n },\n components: [text$2(name)],\n action: _btn => {\n editor.focus();\n editor.selection.select(element);\n editor.nodeChanged();\n },\n buttonBehaviours: derive$1([\n Tooltipping.config({\n ...providersBackstage.tooltips.getConfig({\n tooltipText: providersBackstage.translate([\n 'Select the {0} element',\n element.nodeName.toLowerCase()\n ]),\n onShow: (comp, tooltip) => {\n describedBy(comp.element, tooltip.element);\n },\n onHide: comp => {\n remove(comp.element);\n }\n })\n }),\n DisablingConfigs.button(providersBackstage.isDisabled),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('any'))\n ])\n });\n const renderDivider = () => ({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: { 'aria-hidden': true }\n },\n components: [text$2(` ${ delimiter } `)]\n });\n const renderPathData = data => foldl(data, (acc, path, index) => {\n const element = renderElement(path.name, path.element, index);\n if (index === 0) {\n return acc.concat([element]);\n } else {\n return acc.concat([\n renderDivider(),\n element\n ]);\n }\n }, []);\n const updatePath = parents => {\n const newPath = [];\n let i = parents.length;\n while (i-- > 0) {\n const parent = parents[i];\n if (parent.nodeType === 1 && !isHidden(parent)) {\n const args = fireResolveName(editor, parent);\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent\n });\n }\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n return newPath;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: { role: 'navigation' }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }),\n Disabling.config({ disabled: providersBackstage.isDisabled }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('any')),\n Tabstopping.config({}),\n Replacing.config({}),\n config('elementPathEvents', [runOnAttached((comp, _e) => {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', () => Keying.focusIn(comp));\n editor.on('NodeChange', e => {\n const newPath = updatePath(e.parents);\n const newChildren = newPath.length > 0 ? renderPathData(newPath) : [];\n Replacing.set(comp, newChildren);\n });\n })])\n ]),\n components: []\n };\n };\n\n var ResizeTypes;\n (function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n }(ResizeTypes || (ResizeTypes = {})));\n const getDimensions = (editor, deltas, resizeType, originalHeight, originalWidth) => {\n const dimensions = { height: calcCappedSize(originalHeight + deltas.top, getMinHeightOption(editor), getMaxHeightOption(editor)) };\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth + deltas.left, getMinWidthOption(editor), getMaxWidthOption(editor));\n }\n return dimensions;\n };\n const resize = (editor, deltas, resizeType) => {\n const container = SugarElement.fromDom(editor.getContainer());\n const dimensions = getDimensions(editor, deltas, resizeType, get$e(container), get$d(container));\n each(dimensions, (val, dim) => {\n if (isNumber(val)) {\n set$8(container, dim, numToPx(val));\n }\n });\n fireResizeEditor(editor);\n };\n\n const getResizeType = editor => {\n const resize = getResize(editor);\n if (resize === false) {\n return ResizeTypes.None;\n } else if (resize === 'both') {\n return ResizeTypes.Both;\n } else {\n return ResizeTypes.Vertical;\n }\n };\n const keyboardHandler = (editor, resizeType, x, y) => {\n const scale = 20;\n const delta = SugarPosition(x * scale, y * scale);\n resize(editor, delta, resizeType);\n return Optional.some(true);\n };\n const renderResizeHandler = (editor, providersBackstage) => {\n const resizeType = getResizeType(editor);\n if (resizeType === ResizeTypes.None) {\n return Optional.none();\n }\n const resizeLabel = resizeType === ResizeTypes.Both ? 'Press the arrow keys to resize the editor.' : 'Press the Up and Down arrow keys to resize the editor.';\n return Optional.some(render$3('resize-handle', {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: {\n 'aria-label': providersBackstage.translate(resizeLabel),\n 'data-mce-name': 'resize-handle'\n },\n behaviours: [\n Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: (_comp, _target, delta) => resize(editor, delta, resizeType),\n blockerClass: 'tox-blocker'\n }),\n Keying.config({\n mode: 'special',\n onLeft: () => keyboardHandler(editor, resizeType, -1, 0),\n onRight: () => keyboardHandler(editor, resizeType, 1, 0),\n onUp: () => keyboardHandler(editor, resizeType, 0, -1),\n onDown: () => keyboardHandler(editor, resizeType, 0, 1)\n }),\n Tabstopping.config({}),\n Focusing.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate('Resize') }))\n ]\n }, providersBackstage.icons));\n };\n\n const renderWordCount = (editor, providersBackstage) => {\n const replaceCountText = (comp, count, mode) => Replacing.set(comp, [text$2(providersBackstage.translate([\n '{0} ' + mode,\n count[mode]\n ]))]);\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([\n DisablingConfigs.button(providersBackstage.isDisabled),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('any')),\n Tabstopping.config({}),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }),\n config('wordcount-events', [\n runOnExecute$1(comp => {\n const currentVal = Representing.getValue(comp);\n const newMode = currentVal.mode === 'words' ? 'characters' : 'words';\n Representing.setValue(comp, {\n mode: newMode,\n count: currentVal.count\n });\n replaceCountText(comp, currentVal.count, newMode);\n }),\n runOnAttached(comp => {\n editor.on('wordCountUpdate', e => {\n const {mode} = Representing.getValue(comp);\n Representing.setValue(comp, {\n mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })\n ])\n ]),\n eventOrder: {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'wordcount-events'\n ]\n }\n });\n };\n\n const renderStatusbar = (editor, providersBackstage) => {\n const renderBranding = () => {\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding']\n },\n components: [{\n dom: {\n tag: 'a',\n attributes: {\n 'href': 'https://www.tiny.cloud/powered-by-tiny?utm_campaign=poweredby&utm_source=tiny&utm_medium=referral&utm_content=v7',\n 'rel': 'noopener',\n 'target': '_blank',\n 'aria-label': editor.translate([\n 'Build with {0}',\n 'TinyMCE'\n ])\n },\n innerHtml: editor.translate([\n 'Build with {0}',\n Logo.trim()\n ])\n },\n behaviours: derive$1([Focusing.config({})])\n }]\n };\n };\n const renderHelpAccessibility = () => {\n const shortcutText = convertText('Alt+0');\n const text = `Press {0} for help`;\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__help-text']\n },\n components: [text$2(global$5.translate([\n text,\n shortcutText\n ]))]\n };\n };\n const renderRightContainer = () => {\n const components = [];\n if (editor.hasPlugin('wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (useBranding(editor)) {\n components.push(renderBranding());\n }\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__right-container']\n },\n components\n };\n };\n const getTextComponents = () => {\n const components = [];\n const shouldRenderHelp = useHelpAccessibility(editor);\n const shouldRenderElementPath = useElementPath(editor);\n const shouldRenderRightContainer = useBranding(editor) || editor.hasPlugin('wordcount');\n const getTextComponentClasses = () => {\n const flexStart = 'tox-statusbar__text-container--flex-start';\n const flexEnd = 'tox-statusbar__text-container--flex-end';\n const spaceAround = 'tox-statusbar__text-container--space-around';\n if (shouldRenderHelp) {\n const container3Columns = 'tox-statusbar__text-container-3-cols';\n if (!shouldRenderRightContainer && !shouldRenderElementPath) {\n return [\n container3Columns,\n spaceAround\n ];\n }\n if (shouldRenderRightContainer && !shouldRenderElementPath) {\n return [\n container3Columns,\n flexEnd\n ];\n }\n return [\n container3Columns,\n flexStart\n ];\n }\n return [shouldRenderRightContainer && !shouldRenderElementPath ? flexEnd : flexStart];\n };\n if (shouldRenderElementPath) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n if (shouldRenderHelp) {\n components.push(renderHelpAccessibility());\n }\n if (shouldRenderRightContainer) {\n components.push(renderRightContainer());\n }\n if (components.length > 0) {\n return [{\n dom: {\n tag: 'div',\n classes: [\n 'tox-statusbar__text-container',\n ...getTextComponentClasses()\n ]\n },\n components\n }];\n }\n return [];\n };\n const getComponents = () => {\n const components = getTextComponents();\n const resizeHandler = renderResizeHandler(editor, providersBackstage);\n return components.concat(resizeHandler.toArray());\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n const getLazyMothership = (label, singleton) => singleton.get().getOrDie(`UI for ${ label } has not been rendered`);\n const setup$3 = (editor, setupForTheme) => {\n const isInline = editor.inline;\n const mode = isInline ? Inline : Iframe;\n const header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n const lazyUiRefs = LazyUiReferences();\n const lazyMothership = value$4();\n const lazyDialogMothership = value$4();\n const lazyPopupMothership = value$4();\n const platform = detect$1();\n const isTouch = platform.deviceType.isTouch();\n const touchPlatformClass = 'tox-platform-touch';\n const deviceClasses = isTouch ? [touchPlatformClass] : [];\n const isToolbarBottom = isToolbarLocationBottom(editor);\n const toolbarMode = getToolbarMode(editor);\n const memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n const memBottomAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-bottom-anchorbar']\n }\n });\n const lazyHeader = () => lazyUiRefs.mainUi.get().map(ui => ui.outerContainer).bind(OuterContainer.getHeader);\n const lazyDialogSinkResult = () => Result.fromOption(lazyUiRefs.dialogUi.get().map(ui => ui.sink), 'UI has not been rendered');\n const lazyPopupSinkResult = () => Result.fromOption(lazyUiRefs.popupUi.get().map(ui => ui.sink), '(popup) UI has not been rendered');\n const lazyAnchorBar = lazyUiRefs.lazyGetInOuterOrDie('anchor bar', memAnchorBar.getOpt);\n const lazyBottomAnchorBar = lazyUiRefs.lazyGetInOuterOrDie('bottom anchor bar', memBottomAnchorBar.getOpt);\n const lazyToolbar = lazyUiRefs.lazyGetInOuterOrDie('toolbar', OuterContainer.getToolbar);\n const lazyThrobber = lazyUiRefs.lazyGetInOuterOrDie('throbber', OuterContainer.getThrobber);\n const backstages = init$5({\n popup: lazyPopupSinkResult,\n dialog: lazyDialogSinkResult\n }, editor, lazyAnchorBar, lazyBottomAnchorBar);\n const makeHeaderPart = () => {\n const verticalDirAttributes = { attributes: { [Attribute]: isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom } };\n const partMenubar = OuterContainer.parts.menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage: backstages.popup,\n onEscape: () => {\n editor.focus();\n }\n });\n const partToolbar = OuterContainer.parts.toolbar({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: backstages.popup.shared.getSink,\n providers: backstages.popup.shared.providers,\n onEscape: () => {\n editor.focus();\n },\n onToolbarToggled: state => {\n fireToggleToolbarDrawer(editor, state);\n },\n type: toolbarMode,\n lazyToolbar,\n lazyHeader: () => lazyHeader().getOrDie('Could not find header element'),\n ...verticalDirAttributes\n });\n const partMultipleToolbar = OuterContainer.parts['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n providers: backstages.popup.shared.providers,\n onEscape: () => {\n editor.focus();\n },\n type: toolbarMode\n });\n const hasMultipleToolbar = isMultipleToolbars(editor);\n const hasToolbar = isToolbarEnabled(editor);\n const hasMenubar = isMenubarEnabled(editor);\n const shouldHavePromotion = promotionEnabled(editor);\n const partPromotion = makePromotion();\n const hasAnyContents = hasMultipleToolbar || hasToolbar || hasMenubar;\n const getPartToolbar = () => {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n const menubarCollection = shouldHavePromotion ? [\n partPromotion,\n partMenubar\n ] : [partMenubar];\n return OuterContainer.parts.header({\n dom: {\n tag: 'div',\n classes: ['tox-editor-header'].concat(hasAnyContents ? [] : ['tox-editor-header--empty']),\n ...verticalDirAttributes\n },\n components: flatten([\n hasMenubar ? menubarCollection : [],\n getPartToolbar(),\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]\n ]),\n sticky: isStickyToolbar(editor),\n editor,\n sharedBackstage: backstages.popup.shared\n });\n };\n const makePromotion = () => {\n return OuterContainer.parts.promotion({\n dom: {\n tag: 'div',\n classes: ['tox-promotion']\n }\n });\n };\n const makeSidebarDefinition = () => {\n const partSocket = OuterContainer.parts.socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n const partSidebar = OuterContainer.parts.sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [\n partSocket,\n partSidebar\n ]\n };\n };\n const renderDialogUi = () => {\n const uiContainer = getUiContainer(editor);\n const isGridUiContainer = eq(body(), uiContainer) && get$f(uiContainer, 'display') === 'grid';\n const sinkSpec = {\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ].concat(deviceClasses),\n attributes: { ...global$5.isRtl() ? { dir: 'rtl' } : {} }\n },\n behaviours: derive$1([Positioning.config({ useFixed: () => header.isDocked(lazyHeader) })])\n };\n const reactiveWidthSpec = {\n dom: { styles: { width: document.body.clientWidth + 'px' } },\n events: derive$2([run$1(windowResize(), comp => {\n set$8(comp.element, 'width', document.body.clientWidth + 'px');\n })])\n };\n const sink = build$1(deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {}));\n const uiMothership = takeover(sink);\n lazyDialogMothership.set(uiMothership);\n return {\n sink,\n mothership: uiMothership\n };\n };\n const renderPopupUi = () => {\n const sinkSpec = {\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-silver-popup-sink',\n 'tox-tinymce-aux'\n ].concat(deviceClasses),\n attributes: { ...global$5.isRtl() ? { dir: 'rtl' } : {} }\n },\n behaviours: derive$1([Positioning.config({\n useFixed: () => header.isDocked(lazyHeader),\n getBounds: () => setupForTheme.getPopupSinkBounds()\n })])\n };\n const sink = build$1(sinkSpec);\n const uiMothership = takeover(sink);\n lazyPopupMothership.set(uiMothership);\n return {\n sink,\n mothership: uiMothership\n };\n };\n const renderMainUi = () => {\n const partHeader = makeHeaderPart();\n const sidebarContainer = makeSidebarDefinition();\n const partThrobber = OuterContainer.parts.throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage: backstages.popup\n });\n const partViewWrapper = OuterContainer.parts.viewWrapper({ backstage: backstages.popup });\n const statusbar = useStatusBar(editor) && !isInline ? Optional.some(renderStatusbar(editor, backstages.popup.shared.providers)) : Optional.none();\n const editorComponents = flatten([\n isToolbarBottom ? [] : [partHeader],\n isInline ? [] : [sidebarContainer],\n isToolbarBottom ? [partHeader] : []\n ]);\n const editorContainer = OuterContainer.parts.editorContainer({\n components: flatten([\n editorComponents,\n isInline ? [] : [memBottomAnchorBar.asSpec()]\n ])\n });\n const isHidden = isDistractionFree(editor);\n const attributes = {\n role: 'application',\n ...global$5.isRtl() ? { dir: 'rtl' } : {},\n ...isHidden ? { 'aria-hidden': 'true' } : {}\n };\n const outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-tinymce'\n ].concat(isInline ? ['tox-tinymce-inline'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses),\n styles: {\n visibility: 'hidden',\n ...isHidden ? {\n opacity: '0',\n border: '0'\n } : {}\n },\n attributes\n },\n components: [\n editorContainer,\n ...isInline ? [] : [\n partViewWrapper,\n ...statusbar.toArray()\n ],\n partThrobber\n ],\n behaviours: derive$1([\n toggleOnReceive(() => backstages.popup.shared.providers.checkUiComponentContext('any')),\n Disabling.config({ disableClass: 'tox-tinymce--disabled' }),\n Keying.config({\n mode: 'cyclic',\n selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a, .tox-statusbar__resize-handle'\n })\n ])\n }));\n const mothership = takeover(outerContainer);\n lazyMothership.set(mothership);\n return {\n mothership,\n outerContainer\n };\n };\n const setEditorSize = outerContainer => {\n const parsedHeight = numToPx(getHeightWithFallback(editor));\n const parsedWidth = numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue$1('div', 'width', parsedWidth)) {\n set$8(outerContainer.element, 'width', parsedWidth);\n }\n if (isValidValue$1('div', 'height', parsedHeight)) {\n set$8(outerContainer.element, 'height', parsedHeight);\n } else {\n set$8(outerContainer.element, 'height', '400px');\n }\n }\n return parsedHeight;\n };\n const setupShortcutsAndCommands = outerContainer => {\n editor.addShortcut('alt+F9', 'focus menubar', () => {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.addShortcut('alt+F10', 'focus toolbar', () => {\n OuterContainer.focusToolbar(outerContainer);\n });\n editor.addCommand('ToggleToolbarDrawer', (_ui, options) => {\n if (options === null || options === void 0 ? void 0 : options.skipFocus) {\n OuterContainer.toggleToolbarDrawerWithoutFocusing(outerContainer);\n } else {\n OuterContainer.toggleToolbarDrawer(outerContainer);\n }\n });\n editor.addQueryStateHandler('ToggleToolbarDrawer', () => OuterContainer.isToolbarDrawerToggled(outerContainer));\n };\n const renderUIWithRefs = uiRefs => {\n const {mainUi, popupUi, uiMotherships} = uiRefs;\n map$1(getToolbarGroups(editor), (toolbarGroupButtonConfig, name) => {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n const {buttons, menuItems, contextToolbars, sidebars, views} = editor.ui.registry.getAll();\n const toolbarOpt = getMultipleToolbarsOption(editor);\n const rawUiConfig = {\n menuItems,\n menus: getMenus(editor),\n menubar: getMenubar(editor),\n toolbar: toolbarOpt.getOrThunk(() => getToolbar(editor)),\n allowToolbarGroups: toolbarMode === ToolbarMode$1.floating,\n buttons,\n sidebar: sidebars,\n views\n };\n setupShortcutsAndCommands(mainUi.outerContainer);\n setup$b(editor, mainUi.mothership, uiMotherships);\n header.setup(editor, backstages.popup.shared, lazyHeader);\n setup$6(editor, backstages.popup);\n setup$5(editor, backstages.popup.shared.getSink, backstages.popup);\n setup$8(editor);\n setup$7(editor, lazyThrobber, backstages.popup.shared);\n register$a(editor, contextToolbars, popupUi.sink, { backstage: backstages.popup });\n setup$4(editor, popupUi.sink);\n const elm = editor.getElement();\n const height = setEditorSize(mainUi.outerContainer);\n const args = {\n targetNode: elm,\n height\n };\n return mode.render(editor, uiRefs, rawUiConfig, backstages.popup, args);\n };\n const reuseDialogUiForPopuUi = dialogUi => {\n lazyPopupMothership.set(dialogUi.mothership);\n return dialogUi;\n };\n const renderUI = () => {\n const mainUi = renderMainUi();\n const dialogUi = renderDialogUi();\n const popupUi = isSplitUiMode(editor) ? renderPopupUi() : reuseDialogUiForPopuUi(dialogUi);\n lazyUiRefs.dialogUi.set(dialogUi);\n lazyUiRefs.popupUi.set(popupUi);\n lazyUiRefs.mainUi.set(mainUi);\n const uiRefs = {\n popupUi,\n dialogUi,\n mainUi,\n uiMotherships: lazyUiRefs.getUiMotherships()\n };\n return renderUIWithRefs(uiRefs);\n };\n return {\n popups: {\n backstage: backstages.popup,\n getMothership: () => getLazyMothership('popups', lazyPopupMothership)\n },\n dialogs: {\n backstage: backstages.dialog,\n getMothership: () => getLazyMothership('dialogs', lazyDialogMothership)\n },\n renderUI\n };\n };\n\n const get = element => element.dom.textContent;\n\n const labelledBy = (labelledElement, labelElement) => {\n const labelId = getOpt(labelledElement, 'id').fold(() => {\n const id = generate$6('dialog-label');\n set$9(labelElement, 'id', id);\n return id;\n }, identity);\n set$9(labelledElement, 'aria-labelledby', labelId);\n };\n\n const schema$2 = constant$1([\n required$1('lazySink'),\n option$3('dragBlockClass'),\n defaultedFunction('getBounds', win),\n defaulted('useTabstopAt', always),\n defaulted('firstTabstop', 0),\n defaulted('eventOrder', {}),\n field('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n const basic = { sketch: identity };\n const parts$2 = constant$1([\n optional({\n name: 'draghandle',\n overrides: (detail, spec) => {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: handle => {\n return ancestor(handle, '[role=\"dialog\"]').getOr(handle);\n },\n blockerClass: detail.dragBlockClass.getOrDie(new Error('The drag blocker class was not specified for a dialog with a drag handle: \\n' + JSON.stringify(spec, null, 2)).message),\n getBounds: detail.getDragBounds\n })])\n };\n }\n }),\n required({\n schema: [required$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic,\n schema: [required$1('dom')],\n name: 'footer'\n }),\n external({\n factory: {\n sketch: (spec, detail) => ({\n ...spec,\n dom: detail.dom,\n components: detail.components\n })\n },\n schema: [\n defaulted('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }),\n defaulted('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n const factory$4 = (detail, components, spec, externals) => {\n const dialogComp = value$4();\n const showDialog = dialog => {\n dialogComp.set(dialog);\n const sink = detail.lazySink(dialog).getOrDie();\n const externalBlocker = externals.blocker();\n const blocker = sink.getSystem().build({\n ...externalBlocker,\n components: externalBlocker.components.concat([premade(dialog)]),\n behaviours: derive$1([\n Focusing.config({}),\n config('dialog-blocker-events', [runOnSource(focusin(), () => {\n Blocking.isBlocked(dialog) ? noop() : Keying.focusIn(dialog);\n })])\n ])\n });\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n const hideDialog = dialog => {\n dialogComp.clear();\n parent(dialog.element).each(blockerDom => {\n dialog.getSystem().getByDom(blockerDom).each(blocker => {\n detach(blocker);\n });\n });\n };\n const getDialogBody = dialog => getPartOrDie(dialog, detail, 'body');\n const getDialogFooter = dialog => getPart(dialog, detail, 'footer');\n const setBusy = (dialog, getBusySpec) => {\n Blocking.block(dialog, getBusySpec);\n };\n const setIdle = dialog => {\n Blocking.unblock(dialog);\n };\n const modalEventsId = generate$6('modal-events');\n const eventOrder = {\n ...detail.eventOrder,\n [attachedToDom()]: [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || [])\n };\n const browser = detect$1();\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle,\n setBusy\n },\n eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [\n Replacing.config({}),\n Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt,\n firstTabstop: detail.firstTabstop\n }),\n Blocking.config({ getRoot: dialogComp.get }),\n config(modalEventsId, [runOnAttached(c => {\n const titleElm = getPartOrDie(c, detail, 'title').element;\n const title = get(titleElm);\n if (browser.os.isMacOS() && isNonNullable(title)) {\n set$9(c.element, 'aria-label', title);\n } else {\n labelledBy(c.element, titleElm);\n }\n })])\n ])\n };\n };\n const ModalDialog = composite({\n name: 'ModalDialog',\n configFields: schema$2(),\n partFields: parts$2(),\n factory: factory$4,\n apis: {\n show: (apis, dialog) => {\n apis.show(dialog);\n },\n hide: (apis, dialog) => {\n apis.hide(dialog);\n },\n getBody: (apis, dialog) => apis.getBody(dialog),\n getFooter: (apis, dialog) => apis.getFooter(dialog),\n setBusy: (apis, dialog, getBusySpec) => {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: (apis, dialog) => {\n apis.setIdle(dialog);\n }\n }\n });\n\n const dialogToggleMenuItemSchema = objOf([\n type,\n name$1\n ].concat(commonMenuItemFields));\n const dialogToggleMenuItemDataProcessor = boolean;\n\n const baseFooterButtonFields = [\n generatedName('button'),\n optionalIcon,\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n primary,\n enabled,\n optionStringEnum('buttonType', [\n 'primary',\n 'secondary'\n ]),\n defaultedString('context', 'mode:design')\n ];\n const dialogFooterButtonFields = [\n ...baseFooterButtonFields,\n text\n ];\n const normalFooterButtonFields = [\n requiredStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ]),\n ...dialogFooterButtonFields\n ];\n const menuFooterButtonFields = [\n requiredStringEnum('type', ['menu']),\n optionalText,\n optionalTooltip,\n optionalIcon,\n requiredArrayOf('items', dialogToggleMenuItemSchema),\n ...baseFooterButtonFields\n ];\n const toggleButtonSpecFields = [\n ...baseFooterButtonFields,\n requiredStringEnum('type', ['togglebutton']),\n optionalTooltip,\n optionalIcon,\n optionalText,\n defaultedBoolean('active', false)\n ];\n const dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields,\n togglebutton: toggleButtonSpecFields\n });\n\n const alertBannerFields = [\n type,\n text,\n requiredStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n icon,\n defaulted('url', '')\n ];\n const alertBannerSchema = objOf(alertBannerFields);\n\n const createBarFields = itemsField => [\n type,\n itemsField\n ];\n\n const buttonFields = [\n type,\n text,\n enabled,\n generatedName('button'),\n optionalIcon,\n borderless,\n optionStringEnum('buttonType', [\n 'primary',\n 'secondary',\n 'toolbar'\n ]),\n primary,\n defaultedString('context', 'mode:design')\n ];\n const buttonSchema = objOf(buttonFields);\n\n const formComponentFields = [\n type,\n name$1\n ];\n const formComponentWithLabelFields = formComponentFields.concat([optionalLabel]);\n\n const checkboxFields = formComponentFields.concat([\n label,\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const checkboxSchema = objOf(checkboxFields);\n const checkboxDataProcessor = boolean;\n\n const collectionFields = formComponentWithLabelFields.concat([\n defaultedColumns('auto'),\n defaultedString('context', 'mode:design')\n ]);\n const collectionSchema = objOf(collectionFields);\n const collectionDataProcessor = arrOfObj([\n value$1,\n text,\n icon\n ]);\n\n const colorInputFields = formComponentWithLabelFields.concat([\n defaultedString('storageKey', 'default'),\n defaultedString('context', 'mode:design')\n ]);\n const colorInputSchema = objOf(colorInputFields);\n const colorInputDataProcessor = string;\n\n const colorPickerFields = formComponentWithLabelFields;\n const colorPickerSchema = objOf(colorPickerFields);\n const colorPickerDataProcessor = string;\n\n const customEditorFields = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredString('scriptId'),\n requiredString('scriptUrl'),\n optionFunction('onFocus'),\n defaultedPostMsg('settings', undefined)\n ]);\n const customEditorFieldsOld = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredFunction('init')\n ]);\n const customEditorSchema = valueOf(v => asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(() => asRaw('customeditor.new', objOfOnly(customEditorFields), v)));\n const customEditorDataProcessor = string;\n\n const dropZoneFields = formComponentWithLabelFields.concat([defaultedString('context', 'mode:design')]);\n const dropZoneSchema = objOf(dropZoneFields);\n const dropZoneDataProcessor = arrOfVal();\n\n const createGridFields = itemsField => [\n type,\n requiredNumber('columns'),\n itemsField\n ];\n\n const htmlPanelFields = [\n type,\n requiredString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ]),\n defaultedFunction('onInit', noop),\n defaultedBoolean('stretched', false)\n ];\n const htmlPanelSchema = objOf(htmlPanelFields);\n\n const iframeFields = formComponentWithLabelFields.concat([\n defaultedBoolean('border', false),\n defaultedBoolean('sandboxed', true),\n defaultedBoolean('streamContent', false),\n defaultedBoolean('transparent', true)\n ]);\n const iframeSchema = objOf(iframeFields);\n const iframeDataProcessor = string;\n\n const imagePreviewSchema = objOf(formComponentFields.concat([optionString('height')]));\n const imagePreviewDataProcessor = objOf([\n requiredString('url'),\n optionNumber('zoom'),\n optionNumber('cachedWidth'),\n optionNumber('cachedHeight')\n ]);\n\n const inputFields = formComponentWithLabelFields.concat([\n optionString('inputMode'),\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const inputSchema = objOf(inputFields);\n const inputDataProcessor = string;\n\n const createLabelFields = itemsField => [\n type,\n label,\n itemsField,\n defaultedStringEnum('align', 'start', [\n 'start',\n 'center',\n 'end'\n ]),\n optionString('for')\n ];\n\n const listBoxSingleItemFields = [\n text,\n value$1\n ];\n const listBoxNestedItemFields = [\n text,\n requiredArrayOf('items', thunkOf('items', () => listBoxItemSchema))\n ];\n const listBoxItemSchema = oneOf([\n objOf(listBoxSingleItemFields),\n objOf(listBoxNestedItemFields)\n ]);\n const listBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOf('items', listBoxItemSchema),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const listBoxSchema = objOf(listBoxFields);\n const listBoxDataProcessor = string;\n\n const selectBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOfObj('items', [\n text,\n value$1\n ]),\n defaultedNumber('size', 1),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const selectBoxSchema = objOf(selectBoxFields);\n const selectBoxDataProcessor = string;\n\n const sizeInputFields = formComponentWithLabelFields.concat([\n defaultedBoolean('constrain', true),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const sizeInputSchema = objOf(sizeInputFields);\n const sizeInputDataProcessor = objOf([\n requiredString('width'),\n requiredString('height')\n ]);\n\n const sliderFields = formComponentFields.concat([\n label,\n defaultedNumber('min', 0),\n defaultedNumber('max', 0)\n ]);\n const sliderSchema = objOf(sliderFields);\n const sliderInputDataProcessor = number;\n\n const tableFields = [\n type,\n requiredArrayOf('header', string),\n requiredArrayOf('cells', arrOf(string))\n ];\n const tableSchema = objOf(tableFields);\n\n const textAreaFields = formComponentWithLabelFields.concat([\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const textAreaSchema = objOf(textAreaFields);\n const textAreaDataProcessor = string;\n\n const baseTreeItemFields = [\n requiredStringEnum('type', [\n 'directory',\n 'leaf'\n ]),\n title,\n requiredString('id'),\n optionOf('menu', MenuButtonSchema),\n optionString('customStateIcon'),\n optionString('customStateIconTooltip')\n ];\n const treeItemLeafFields = baseTreeItemFields;\n const treeItemLeafSchema = objOf(treeItemLeafFields);\n const treeItemDirectoryFields = baseTreeItemFields.concat([requiredArrayOf('children', thunkOf('children', () => {\n return choose$2('type', {\n directory: treeItemDirectorySchema,\n leaf: treeItemLeafSchema\n });\n }))]);\n const treeItemDirectorySchema = objOf(treeItemDirectoryFields);\n const treeItemSchema = choose$2('type', {\n directory: treeItemDirectorySchema,\n leaf: treeItemLeafSchema\n });\n const treeFields = [\n type,\n requiredArrayOf('items', treeItemSchema),\n optionFunction('onLeafAction'),\n optionFunction('onToggleExpand'),\n defaultedArrayOf('defaultExpandedIds', [], string),\n optionString('defaultSelectedId')\n ];\n const treeSchema = objOf(treeFields);\n\n const urlInputFields = formComponentWithLabelFields.concat([\n defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ]),\n enabled,\n optionString('picker_text'),\n defaultedString('context', 'mode:design')\n ]);\n const urlInputSchema = objOf(urlInputFields);\n const urlInputDataProcessor = objOf([\n value$1,\n defaultedMeta\n ]);\n\n const createItemsField = name => field$1('items', 'items', required$2(), arrOf(valueOf(v => asRaw(`Checking item of ${ name }`, itemSchema, v).fold(sErr => Result.error(formatError(sErr)), passValue => Result.value(passValue)))));\n const itemSchema = valueThunk(() => choose$2('type', {\n alertbanner: alertBannerSchema,\n bar: objOf(createBarFields(createItemsField('bar'))),\n button: buttonSchema,\n checkbox: checkboxSchema,\n colorinput: colorInputSchema,\n colorpicker: colorPickerSchema,\n dropzone: dropZoneSchema,\n grid: objOf(createGridFields(createItemsField('grid'))),\n iframe: iframeSchema,\n input: inputSchema,\n listbox: listBoxSchema,\n selectbox: selectBoxSchema,\n sizeinput: sizeInputSchema,\n slider: sliderSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagepreview: imagePreviewSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n tree: treeSchema,\n panel: panelSchema\n }));\n const panelFields = [\n type,\n defaulted('classes', []),\n requiredArrayOf('items', itemSchema)\n ];\n const panelSchema = objOf(panelFields);\n\n const tabFields = [\n generatedName('tab'),\n title,\n requiredArrayOf('items', itemSchema)\n ];\n const tabPanelFields = [\n type,\n requiredArrayOfObj('tabs', tabFields)\n ];\n const tabPanelSchema = objOf(tabPanelFields);\n\n const dialogButtonFields = dialogFooterButtonFields;\n const dialogButtonSchema = dialogFooterButtonSchema;\n const dialogSchema = objOf([\n requiredString('title'),\n requiredOf('body', choose$2('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })),\n defaultedString('size', 'normal'),\n defaultedArrayOf('buttons', [], dialogButtonSchema),\n defaulted('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onTabChange', noop)\n ]);\n const createDialog = spec => asRaw('dialog', dialogSchema, spec);\n\n const urlDialogButtonSchema = objOf([\n requiredStringEnum('type', [\n 'cancel',\n 'custom'\n ]),\n ...dialogButtonFields\n ]);\n const urlDialogSchema = objOf([\n requiredString('title'),\n requiredString('url'),\n optionNumber('height'),\n optionNumber('width'),\n optionArrayOf('buttons', urlDialogButtonSchema),\n defaultedFunction('onAction', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onMessage', noop)\n ]);\n const createUrlDialog = spec => asRaw('dialog', urlDialogSchema, spec);\n\n const getAllObjects = obj => {\n if (isObject(obj)) {\n return [obj].concat(bind$3(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind$3(obj, getAllObjects);\n } else {\n return [];\n }\n };\n\n const isNamedItem = obj => isString(obj.type) && isString(obj.name);\n const dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n imagepreview: imagePreviewDataProcessor,\n selectbox: selectBoxDataProcessor,\n sizeinput: sizeInputDataProcessor,\n slider: sliderInputDataProcessor,\n listbox: listBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n const getDataProcessor = item => Optional.from(dataProcessors[item.type]);\n const getNamedItems = structure => filter$2(getAllObjects(structure), isNamedItem);\n\n const createDataValidator = structure => {\n const namedItems = getNamedItems(structure);\n const fields = bind$3(namedItems, item => getDataProcessor(item).fold(() => [], schema => [requiredOf(item.name, schema)]));\n return objOf(fields);\n };\n\n const extract = structure => {\n var _a;\n const internalDialog = getOrDie(createDialog(structure));\n const dataValidator = createDataValidator(structure);\n const initialData = (_a = structure.initialData) !== null && _a !== void 0 ? _a : {};\n return {\n internalDialog,\n dataValidator,\n initialData\n };\n };\n const DialogManager = {\n open: (factory, structure) => {\n const extraction = extract(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: (factory, structure) => {\n const internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: structure => extract(structure)\n };\n\n const events = (reflectingConfig, reflectingState) => {\n const update = (component, data) => {\n reflectingConfig.updateState.each(updateState => {\n const newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(renderComponents => {\n const newComponents = renderComponents(data, reflectingState.get());\n const replacer = reflectingConfig.reuseDom ? withReuse : withoutReuse;\n replacer(component, newComponents);\n });\n };\n return derive$2([\n run$1(receive(), (component, message) => {\n const receivingData = message;\n if (!receivingData.universal) {\n const channel = reflectingConfig.channel;\n if (contains$2(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\n }\n }),\n runOnAttached((comp, _se) => {\n reflectingConfig.initialData.each(rawData => {\n update(comp, rawData);\n });\n })\n ]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events\n });\n\n const getState = (component, replaceConfig, reflectState) => reflectState;\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState\n });\n\n var ReflectingSchema = [\n required$1('channel'),\n option$3('renderComponents'),\n option$3('updateState'),\n option$3('initialData'),\n defaultedBoolean('reuseDom', true)\n ];\n\n const init = () => {\n const cell = Cell(Optional.none());\n const clear = () => cell.set(Optional.none());\n const readState = () => cell.get().getOr('none');\n return {\n readState,\n get: cell.get,\n set: cell.set,\n clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n\n const Reflecting = create$4({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n const toValidValues = values => {\n const errors = [];\n const result = {};\n each(values, (value, name) => {\n value.fold(() => {\n errors.push(name);\n }, v => {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n\n const renderBodyPanel = (spec, dialogData, backstage, getCompByName) => {\n const memForm = record(Form.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-form'].concat(spec.classes)\n },\n components: map$2(spec.items, item => interpretInForm(parts, item, dialogData, backstage, getCompByName))\n })));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [memForm.asSpec()]\n }],\n behaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n memento(memForm, {\n postprocess: formValue => toValidValues(formValue).fold(err => {\n console.error(err);\n return {};\n }, identity)\n }),\n config('dialog-body-panel', [run$1(focusin(), (comp, se) => {\n comp.getSystem().broadcastOn([dialogFocusShiftedChannel], { newFocus: Optional.some(se.event.target) });\n })])\n ])\n };\n };\n\n const factory$3 = (detail, _spec) => ({\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$9(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })\n ]),\n domModification: detail.domModification\n });\n const TabButton = single({\n name: 'TabButton',\n configFields: [\n defaulted('uid', undefined),\n required$1('value'),\n field$1('dom', 'dom', mergeWithThunk(() => ({\n attributes: {\n 'role': 'tab',\n 'id': generate$6('aria'),\n 'aria-selected': 'false'\n }\n })), anyValue()),\n option$3('action'),\n defaulted('domModification', {}),\n field('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n required$1('view')\n ],\n factory: factory$3\n });\n\n const schema$1 = constant$1([\n required$1('tabs'),\n required$1('dom'),\n defaulted('clickToDismiss', false),\n field('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers$1([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n const tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: barDetail => {\n const dismissTab$1 = (tabbar, button) => {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar,\n button\n });\n };\n const changeTab$1 = (tabbar, button) => {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar,\n button\n });\n };\n return {\n action: button => {\n const tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n const activeButton = Highlighting.isHighlighted(tabbar, button);\n const response = (() => {\n if (activeButton && barDetail.clickToDismiss) {\n return dismissTab$1;\n } else if (!activeButton) {\n return changeTab$1;\n } else {\n return noop;\n }\n })();\n response(tabbar, button);\n },\n domModification: { classes: [barDetail.markers.tabClass] }\n };\n }\n });\n const parts$1 = constant$1([tabsPart]);\n\n const factory$2 = (detail, components, _spec, _externals) => ({\n 'uid': detail.uid,\n 'dom': detail.dom,\n components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': { attributes: { role: 'tablist' } },\n 'behaviours': augment(detail.tabbarBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: (tabbar, tab) => {\n set$9(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: (tabbar, tab) => {\n set$9(tab.element, 'aria-selected', 'false');\n }\n }),\n Keying.config({\n mode: 'flow',\n getInitial: tabbar => {\n return Highlighting.getHighlighted(tabbar).map(tab => tab.element);\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })\n ])\n });\n const Tabbar = composite({\n name: 'Tabbar',\n configFields: schema$1(),\n partFields: parts$1(),\n factory: factory$2\n });\n\n const factory$1 = (detail, _spec) => ({\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: { attributes: { role: 'tabpanel' } }\n });\n const Tabview = single({\n name: 'Tabview',\n configFields: [field('tabviewBehaviours', [Replacing])],\n factory: factory$1\n });\n\n const schema = constant$1([\n defaulted('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted('tabs', []),\n field('tabSectionBehaviours', [])\n ]);\n const barPart = required({\n factory: Tabbar,\n schema: [\n required$1('dom'),\n requiredObjOf('markers', [\n required$1('tabClass'),\n required$1('selectedClass')\n ])\n ],\n name: 'tabbar',\n defaults: detail => {\n return { tabs: detail.tabs };\n }\n });\n const viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n const parts = constant$1([\n barPart,\n viewPart\n ]);\n\n const factory = (detail, components, _spec, _externals) => {\n const changeTab$1 = button => {\n const tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(tabview => {\n const tabWithValue = find$5(detail.tabs, t => t.value === tabValue);\n tabWithValue.each(tabData => {\n const panel = tabData.view();\n getOpt(button.element, 'id').each(id => {\n set$9(tabview.element, 'aria-labelledby', id);\n });\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n const changeTabBy = (section, byPred) => {\n getPart(section, detail, 'tabbar').each(tabbar => {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: get$4(detail.tabSectionBehaviours),\n events: derive$2(flatten([\n detail.selectFirst ? [runOnAttached((section, _simulatedEvent) => {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run$1(changeTab(), (section, simulatedEvent) => {\n const button = simulatedEvent.event.button;\n changeTab$1(button);\n }),\n run$1(dismissTab(), (section, simulatedEvent) => {\n const button = simulatedEvent.event.button;\n detail.onDismissTab(section, button);\n })\n ]\n ])),\n apis: {\n getViewItems: section => {\n return getPart(section, detail, 'tabview').map(tabview => Replacing.contents(tabview)).getOr([]);\n },\n showTab: (section, tabKey) => {\n const getTabIfNotActive = tabbar => {\n const candidates = Highlighting.getCandidates(tabbar);\n const optTab = find$5(candidates, c => Representing.getValue(c) === tabKey);\n return optTab.filter(tab => !Highlighting.isHighlighted(tabbar, tab));\n };\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n const TabSection = composite({\n name: 'TabSection',\n configFields: schema(),\n partFields: parts(),\n factory,\n apis: {\n getViewItems: (apis, component) => apis.getViewItems(component),\n showTab: (apis, component, tabKey) => {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n const measureHeights = (allTabs, tabview, tabviewComp) => map$2(allTabs, (_tab, i) => {\n Replacing.set(tabviewComp, allTabs[i].view());\n const rect = tabview.dom.getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n const getMaxHeight = heights => head(sort(heights, (a, b) => {\n if (a > b) {\n return -1;\n } else if (a < b) {\n return +1;\n } else {\n return 0;\n }\n }));\n const getMaxTabviewHeight = (dialog, tabview, tablist) => {\n const documentElement$1 = documentElement(dialog).dom;\n const rootElm = ancestor(dialog, '.tox-dialog-wrap').getOr(dialog);\n const isFixed = get$f(rootElm, 'position') === 'fixed';\n let maxHeight;\n if (isFixed) {\n maxHeight = Math.max(documentElement$1.clientHeight, window.innerHeight);\n } else {\n maxHeight = Math.max(documentElement$1.offsetHeight, documentElement$1.scrollHeight);\n }\n const tabviewHeight = get$e(tabview);\n const isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$d(tablist);\n const currentTabHeight = isTabListBeside ? Math.max(get$e(tablist), tabviewHeight) : tabviewHeight;\n const dialogTopMargin = parseInt(get$f(dialog, 'margin-top'), 10) || 0;\n const dialogBottomMargin = parseInt(get$f(dialog, 'margin-bottom'), 10) || 0;\n const dialogHeight = get$e(dialog) + dialogTopMargin + dialogBottomMargin;\n const chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n const showTab = (allTabs, comp) => {\n head(allTabs).each(tab => TabSection.showTab(comp, tab.value));\n };\n const setTabviewHeight = (tabview, height) => {\n set$8(tabview, 'height', height + 'px');\n set$8(tabview, 'flex-basis', height + 'px');\n };\n const updateTabviewHeight = (dialogBody, tabview, maxTabHeight) => {\n ancestor(dialogBody, '[role=\"dialog\"]').each(dialog => {\n descendant(dialog, '[role=\"tablist\"]').each(tablist => {\n maxTabHeight.get().map(height => {\n set$8(tabview, 'height', '0');\n set$8(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(height => {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n const getTabview = dialog => descendant(dialog, '[role=\"tabpanel\"]');\n const smartMode = allTabs => {\n const maxTabHeight = value$4();\n const extraEvents = [\n runOnAttached(comp => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n set$8(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOptional().each(tabviewComp => {\n const heights = measureHeights(allTabs, tabview, tabviewComp);\n const maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeightOpt.fold(maxTabHeight.clear, maxTabHeight.set);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$7(tabview, 'visibility');\n showTab(allTabs, comp);\n requestAnimationFrame(() => {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }),\n run$1(windowResize(), comp => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }),\n run$1(formResizeEvent, (comp, _se) => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n const oldFocus = active$1(getRootNode(tabview));\n set$8(tabview, 'visibility', 'hidden');\n const oldHeight = getRaw(tabview, 'height').map(h => parseInt(h, 10));\n remove$7(tabview, 'height');\n remove$7(tabview, 'flex-basis');\n const newHeight = tabview.dom.getBoundingClientRect().height;\n const hasGrown = oldHeight.forall(h => newHeight > h);\n if (hasGrown) {\n maxTabHeight.set(newHeight);\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(h => {\n setTabviewHeight(tabview, h);\n });\n }\n remove$7(tabview, 'visibility');\n oldFocus.each(focus$3);\n });\n })\n ];\n const selectFirst = false;\n return {\n extraEvents,\n selectFirst\n };\n };\n\n const SendDataToSectionChannel = 'send-data-to-section';\n const SendDataToViewChannel = 'send-data-to-view';\n const renderTabPanel = (spec, dialogData, backstage, getCompByName) => {\n const storedValue = Cell({});\n const updateDataWithForm = form => {\n const formData = Representing.getValue(form);\n const validData = toValidValues(formData).getOr({});\n const currentData = storedValue.get();\n const newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n const setDataOnForm = form => {\n const tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n const oldTab = Cell(null);\n const allTabs = map$2(spec.tabs, tab => {\n return {\n value: tab.name,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item']\n },\n components: [text$2(backstage.shared.providers.translate(tab.title))],\n view: () => {\n return [Form.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map$2(tab.items, item => interpretInForm(parts, item, dialogData, backstage, getCompByName)),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll([\n {\n key: SendDataToSectionChannel,\n value: { onReceive: updateDataWithForm }\n },\n {\n key: SendDataToViewChannel,\n value: { onReceive: setDataOnForm }\n }\n ])\n })\n ])\n }))];\n }\n };\n });\n const tabMode = smartMode(allTabs);\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: (section, button, _viewItems) => {\n const name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\n },\n tabs: allTabs,\n components: [\n TabSection.parts.tabbar({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav']\n },\n components: [Tabbar.parts.tabs({})],\n markers: {\n tabClass: 'tox-tab',\n selectedClass: 'tox-dialog__body-nav-item--active'\n },\n tabbarBehaviours: derive$1([Tabstopping.config({})])\n }),\n TabSection.parts.tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })\n ],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([\n config('tabpanel', tabMode.extraEvents),\n Keying.config({ mode: 'acyclic' }),\n Composing.config({ find: comp => head(TabSection.getViewItems(comp)) }),\n withComp(Optional.none(), tsection => {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n }, (tsection, value) => {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n })\n ])\n });\n };\n\n const renderBody = (spec, dialogId, contentId, backstage, ariaAttrs, getCompByName) => {\n const renderComponents = incoming => {\n const body = incoming.body;\n switch (body.type) {\n case 'tabpanel': {\n return [renderTabPanel(body, incoming.initialData, backstage, getCompByName)];\n }\n default: {\n return [renderBodyPanel(body, incoming.initialData, backstage, getCompByName)];\n }\n }\n };\n const updateState = (_comp, incoming) => Optional.some({ isTabPanel: () => incoming.body.type === 'tabpanel' });\n const ariaAttributes = { 'aria-live': 'polite' };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: {\n ...contentId.map(x => ({ id: x })).getOr({}),\n ...ariaAttrs ? ariaAttributes : {}\n }\n },\n components: [],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n Reflecting.config({\n channel: `${ bodyChannel }-${ dialogId }`,\n updateState,\n renderComponents,\n initialData: spec\n })\n ])\n };\n };\n const renderInlineBody = (spec, dialogId, contentId, backstage, ariaAttrs, getCompByName) => renderBody(spec, dialogId, Optional.some(contentId), backstage, ariaAttrs, getCompByName);\n const renderModalBody = (spec, dialogId, backstage, getCompByName) => {\n const bodySpec = renderBody(spec, dialogId, Optional.none(), backstage, false, getCompByName);\n return ModalDialog.parts.body(bodySpec);\n };\n const renderIframeBody = spec => {\n const bodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-iframe']\n },\n components: [craft(Optional.none(), {\n dom: {\n tag: 'iframe',\n attributes: { src: spec.url }\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n })]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n })])\n };\n return ModalDialog.parts.body(bodySpec);\n };\n\n const isTouch = global$6.deviceType.isTouch();\n const hiddenHeader = (title, close) => ({\n dom: {\n tag: 'div',\n styles: { display: 'none' },\n classes: ['tox-dialog__header']\n },\n components: [\n title,\n close\n ]\n });\n const pClose = (onClose, providersBackstage) => ModalDialog.parts.close(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n const pUntitled = () => ModalDialog.parts.title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: { display: 'none' }\n }\n });\n const pBodyMessage = (message, providersBackstage) => ModalDialog.parts.body({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [{ dom: fromHtml(`

${ sanitizeHtmlString(providersBackstage.translate(message)) }

`) }]\n }]\n });\n const pFooter = buttons => ModalDialog.parts.footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n const pFooterGroup = (startButtons, endButtons) => [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })\n ];\n const renderDialog$1 = spec => {\n const dialogClass = 'tox-dialog';\n const blockerClass = dialogClass + '-wrap';\n const blockerBackdropClass = blockerClass + '__backdrop';\n const scrollLockClass = dialogClass + '__disable-scroll';\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: comp => {\n spec.onEscape(comp);\n return Optional.some(true);\n },\n useTabstopAt: elem => !isPseudoStop(elem),\n firstTabstop: spec.firstTabstop,\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: {\n position: 'relative',\n ...spec.extraStyles\n }\n },\n components: [\n spec.header,\n spec.body,\n ...spec.footer.toArray()\n ],\n parts: {\n blocker: {\n dom: fromHtml(`
`),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch ? [\n blockerBackdropClass,\n blockerBackdropClass + '--opaque'\n ] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1([\n Focusing.config({}),\n config('dialog-events', spec.dialogEvents.concat([\n runOnSource(focusin(), (comp, _se) => {\n Blocking.isBlocked(comp) ? noop() : Keying.focusIn(comp);\n }),\n run$1(focusShifted(), (comp, se) => {\n comp.getSystem().broadcastOn([dialogFocusShiftedChannel], { newFocus: se.event.newFocus });\n })\n ])),\n config('scroll-lock', [\n runOnAttached(() => {\n add$2(body(), scrollLockClass);\n }),\n runOnDetached(() => {\n remove$3(body(), scrollLockClass);\n })\n ]),\n ...spec.extraBehaviours\n ]),\n eventOrder: {\n [execute$5()]: ['dialog-events'],\n [attachedToDom()]: [\n 'scroll-lock',\n 'dialog-events',\n 'alloy.base.behaviour'\n ],\n [detachedFromDom()]: [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'scroll-lock'\n ],\n ...spec.eventOrder\n }\n });\n };\n\n const renderClose = providersBackstage => Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'data-mce-name': 'close'\n }\n },\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate('Close') }))\n ]),\n components: [render$3('close', {\n tag: 'span',\n classes: ['tox-icon']\n }, providersBackstage.icons)],\n action: comp => {\n emit(comp, formCancelEvent);\n }\n });\n const renderTitle = (spec, dialogId, titleId, providersBackstage) => {\n const renderComponents = data => [text$2(providersBackstage.translate(data.title))];\n return {\n dom: {\n tag: 'h1',\n classes: ['tox-dialog__title'],\n attributes: { ...titleId.map(x => ({ id: x })).getOr({}) }\n },\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: `${ titleChannel }-${ dialogId }`,\n initialData: spec,\n renderComponents\n })])\n };\n };\n const renderDragHandle = () => ({ dom: fromHtml('
') });\n const renderInlineHeader = (spec, dialogId, titleId, providersBackstage) => Container.sketch({\n dom: fromHtml('
'),\n components: [\n renderTitle(spec, dialogId, Optional.some(titleId), providersBackstage),\n renderDragHandle(),\n renderClose(providersBackstage)\n ],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: handle => {\n return closest$1(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: () => [],\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n const renderModalHeader = (spec, dialogId, providersBackstage) => {\n const pTitle = ModalDialog.parts.title(renderTitle(spec, dialogId, Optional.none(), providersBackstage));\n const pHandle = ModalDialog.parts.draghandle(renderDragHandle());\n const pClose = ModalDialog.parts.close(renderClose(providersBackstage));\n const components = [pTitle].concat(spec.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml('
'),\n components\n });\n };\n\n const getHeader = (title, dialogId, backstage) => renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, dialogId, backstage.shared.providers);\n const getBusySpec = (message, bs, providers, headerHeight) => ({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: { 'aria-label': providers.translate(message) },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: `${ headerHeight.getOr(0) }px`,\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{ dom: fromHtml('
') }]\n });\n const getEventExtras = (lazyDialog, providers, extra) => ({\n onClose: () => extra.closeWindow(),\n onBlock: blockEvent => {\n const headerHeight = descendant(lazyDialog().element, '.tox-dialog__header').map(header => get$e(header));\n ModalDialog.setBusy(lazyDialog(), (_comp, bs) => getBusySpec(blockEvent.message, bs, providers, headerHeight));\n },\n onUnblock: () => {\n ModalDialog.setIdle(lazyDialog());\n }\n });\n const fullscreenClass = 'tox-dialog--fullscreen';\n const largeDialogClass = 'tox-dialog--width-lg';\n const mediumDialogClass = 'tox-dialog--width-md';\n const getDialogSizeClass = size => {\n switch (size) {\n case 'large':\n return Optional.some(largeDialogClass);\n case 'medium':\n return Optional.some(mediumDialogClass);\n default:\n return Optional.none();\n }\n };\n const updateDialogSizeClass = (size, component) => {\n const dialogBody = SugarElement.fromDom(component.element.dom);\n if (!has(dialogBody, fullscreenClass)) {\n remove$2(dialogBody, [\n largeDialogClass,\n mediumDialogClass\n ]);\n getDialogSizeClass(size).each(dialogSizeClass => add$2(dialogBody, dialogSizeClass));\n }\n };\n const toggleFullscreen = (comp, currentSize) => {\n const dialogBody = SugarElement.fromDom(comp.element.dom);\n const classes = get$9(dialogBody);\n const currentSizeClass = find$5(classes, c => c === largeDialogClass || c === mediumDialogClass).or(getDialogSizeClass(currentSize));\n toggle$3(dialogBody, [\n fullscreenClass,\n ...currentSizeClass.toArray()\n ]);\n };\n const renderModalDialog = (spec, dialogEvents, backstage) => build$1(renderDialog$1({\n ...spec,\n firstTabstop: 1,\n lazySink: backstage.shared.getSink,\n extraBehaviours: [\n memory({}),\n ...spec.extraBehaviours\n ],\n onEscape: comp => {\n emit(comp, formCancelEvent);\n },\n dialogEvents,\n eventOrder: {\n [receive()]: [\n Reflecting.name(),\n Receiving.name()\n ],\n [attachedToDom()]: [\n 'scroll-lock',\n Reflecting.name(),\n 'messages',\n 'dialog-events',\n 'alloy.base.behaviour'\n ],\n [detachedFromDom()]: [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'messages',\n Reflecting.name(),\n 'scroll-lock'\n ]\n }\n }));\n const mapMenuButtons = (buttons, menuItemStates = {}) => {\n const mapItems = button => {\n const items = map$2(button.items, item => {\n const cell = get$h(menuItemStates, item.name).getOr(Cell(false));\n return {\n ...item,\n storage: cell\n };\n });\n return {\n ...button,\n items\n };\n };\n return map$2(buttons, button => {\n return button.type === 'menu' ? mapItems(button) : button;\n });\n };\n const extractCellsToObject = buttons => foldl(buttons, (acc, button) => {\n if (button.type === 'menu') {\n const menuButton = button;\n return foldl(menuButton.items, (innerAcc, item) => {\n innerAcc[item.name] = item.storage;\n return innerAcc;\n }, acc);\n }\n return acc;\n }, {});\n\n const initCommonEvents = (fireApiEvent, extras) => [\n runWithTarget(focusin(), onFocus),\n fireApiEvent(formCloseEvent, (_api, spec, _event, self) => {\n if (hasFocus(self.element)) {\n active$1(getRootNode(self.element)).each(blur$1);\n }\n extras.onClose();\n spec.onClose();\n }),\n fireApiEvent(formCancelEvent, (api, spec, _event, self) => {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }),\n run$1(formUnblockEvent, (_c, _se) => extras.onUnblock()),\n run$1(formBlockEvent, (_c, se) => extras.onBlock(se.event))\n ];\n const initUrlDialog = (getInstanceApi, extras) => {\n const fireApiEvent = (eventName, f) => run$1(eventName, (c, se) => {\n withSpec(c, (spec, _c) => {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n const withSpec = (c, f) => {\n Reflecting.getState(c).get().each(currentDialog => {\n f(currentDialog, c);\n });\n };\n return [\n ...initCommonEvents(fireApiEvent, extras),\n fireApiEvent(formActionEvent, (api, spec, event) => {\n spec.onAction(api, { name: event.name });\n })\n ];\n };\n const initDialog = (getInstanceApi, extras, getSink) => {\n const fireApiEvent = (eventName, f) => run$1(eventName, (c, se) => {\n withSpec(c, (spec, _c) => {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n const withSpec = (c, f) => {\n Reflecting.getState(c).get().each(currentDialogInit => {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return [\n ...initCommonEvents(fireApiEvent, extras),\n fireApiEvent(formSubmitEvent, (api, spec) => spec.onSubmit(api)),\n fireApiEvent(formChangeEvent, (api, spec, event) => {\n spec.onChange(api, { name: event.name });\n }),\n fireApiEvent(formActionEvent, (api, spec, event, component) => {\n const focusIn = () => component.getSystem().isConnected() ? Keying.focusIn(component) : undefined;\n const isDisabled = focused => has$1(focused, 'disabled') || getOpt(focused, 'aria-disabled').exists(val => val === 'true');\n const rootNode = getRootNode(component.element);\n const current = active$1(rootNode);\n spec.onAction(api, {\n name: event.name,\n value: event.value\n });\n active$1(rootNode).fold(focusIn, focused => {\n if (isDisabled(focused)) {\n focusIn();\n } else if (current.exists(cur => contains(focused, cur) && isDisabled(cur))) {\n focusIn();\n } else {\n getSink().toOptional().filter(sink => !contains(sink.element, focused)).each(focusIn);\n }\n });\n }),\n fireApiEvent(formTabChangeEvent, (api, spec, event) => {\n spec.onTabChange(api, {\n newTabName: event.name,\n oldTabName: event.oldName\n });\n }),\n runOnDetached(component => {\n const api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })\n ];\n };\n\n const makeButton = (button, backstage) => renderFooterButton(button, button.type, backstage);\n const lookup = (compInSystem, footerButtons, buttonName) => find$5(footerButtons, button => button.name === buttonName).bind(memButton => memButton.memento.getOpt(compInSystem));\n const renderComponents = (_data, state) => {\n const footerButtons = state.map(s => s.footerButtons).getOr([]);\n const buttonGroups = partition$3(footerButtons, button => button.align === 'start');\n const makeGroup = (edge, buttons) => Container.sketch({\n dom: {\n tag: 'div',\n classes: [`tox-dialog__footer-${ edge }`]\n },\n components: map$2(buttons, button => button.memento.asSpec())\n });\n const startButtons = makeGroup('start', buttonGroups.pass);\n const endButtons = makeGroup('end', buttonGroups.fail);\n return [\n startButtons,\n endButtons\n ];\n };\n const renderFooter = (initSpec, dialogId, backstage) => {\n const updateState = (comp, data) => {\n const footerButtons = map$2(data.buttons, button => {\n const memButton = record(makeButton(button, backstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n const lookupByName = buttonName => lookup(comp, footerButtons, buttonName);\n return Optional.some({\n lookupByName,\n footerButtons\n });\n };\n return {\n dom: fromHtml('
'),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: `${ footerChannel }-${ dialogId }`,\n initialData: initSpec,\n updateState,\n renderComponents\n })])\n };\n };\n const renderInlineFooter = (initSpec, dialogId, backstage) => renderFooter(initSpec, dialogId, backstage);\n const renderModalFooter = (initSpec, dialogId, backstage) => ModalDialog.parts.footer(renderFooter(initSpec, dialogId, backstage));\n\n const getCompByName = (access, name) => {\n const root = access.getRoot();\n if (root.getSystem().isConnected()) {\n const form = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form, name).orThunk(() => {\n const footer = access.getFooter();\n const footerState = footer.bind(f => Reflecting.getState(f).get());\n return footerState.bind(f => f.lookupByName(name));\n });\n } else {\n return Optional.none();\n }\n };\n const validateData$1 = (access, data) => {\n const root = access.getRoot();\n return Reflecting.getState(root).get().map(dialogState => getOrDie(asRaw('data', dialogState.dataValidator, data))).getOr(data);\n };\n const getDialogApi = (access, doRedial, menuItemStates) => {\n const withRoot = f => {\n const root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n const getData = () => {\n const root = access.getRoot();\n const valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n const representedValues = Representing.getValue(valueComp);\n const menuItemCurrentState = map$1(menuItemStates, cell => cell.get());\n return {\n ...representedValues,\n ...menuItemCurrentState\n };\n };\n const setData = newData => {\n withRoot(_ => {\n const prevData = instanceApi.getData();\n const mergedData = deepMerge(prevData, newData);\n const newInternalData = validateData$1(access, mergedData);\n const form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each(menuItemStates, (v, k) => {\n if (has$2(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n const setEnabled = (name, state) => {\n getCompByName(access, name).each(state ? Disabling.enable : Disabling.disable);\n };\n const focus = name => {\n getCompByName(access, name).each(Focusing.focus);\n };\n const block = message => {\n if (!isString(message)) {\n throw new Error('The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(root => {\n emitWith(root, formBlockEvent, { message });\n });\n };\n const unblock = () => {\n withRoot(root => {\n emit(root, formUnblockEvent);\n });\n };\n const showTab = name => {\n withRoot(_ => {\n const body = access.getBody();\n const bodyState = Reflecting.getState(body);\n if (bodyState.get().exists(b => b.isTabPanel())) {\n Composing.getCurrent(body).each(tabSection => {\n TabSection.showTab(tabSection, name);\n });\n }\n });\n };\n const redial = d => {\n withRoot(root => {\n const id = access.getId();\n const dialogInit = doRedial(d);\n const storedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons, menuItemStates);\n root.getSystem().broadcastOn([`${ dialogChannel }-${ id }`], dialogInit);\n root.getSystem().broadcastOn([`${ titleChannel }-${ id }`], dialogInit.internalDialog);\n root.getSystem().broadcastOn([`${ bodyChannel }-${ id }`], dialogInit.internalDialog);\n root.getSystem().broadcastOn([`${ footerChannel }-${ id }`], {\n ...dialogInit.internalDialog,\n buttons: storedMenuButtons\n });\n instanceApi.setData(dialogInit.initialData);\n });\n };\n const close = () => {\n withRoot(root => {\n emit(root, formCloseEvent);\n });\n };\n const instanceApi = {\n getData,\n setData,\n setEnabled,\n focus,\n block,\n unblock,\n showTab,\n redial,\n close,\n toggleFullscreen: access.toggleFullscreen\n };\n return instanceApi;\n };\n\n const renderDialog = (dialogInit, extra, backstage) => {\n const dialogId = generate$6('dialog');\n const internalDialog = dialogInit.internalDialog;\n const header = getHeader(internalDialog.title, dialogId, backstage);\n const dialogSize = Cell(internalDialog.size);\n const getCompByName$1 = name => getCompByName(modalAccess, name);\n const dialogSizeClasses = getDialogSizeClass(dialogSize.get()).toArray();\n const updateState = (comp, incoming) => {\n dialogSize.set(incoming.internalDialog.size);\n updateDialogSizeClass(incoming.internalDialog.size, comp);\n return Optional.some(incoming);\n };\n const body = renderModalBody({\n body: internalDialog.body,\n initialData: internalDialog.initialData\n }, dialogId, backstage, getCompByName$1);\n const storedMenuButtons = mapMenuButtons(internalDialog.buttons);\n const objOfCells = extractCellsToObject(storedMenuButtons);\n const footer = someIf(storedMenuButtons.length !== 0, renderModalFooter({ buttons: storedMenuButtons }, dialogId, backstage));\n const dialogEvents = initDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra), backstage.shared.getSink);\n const spec = {\n id: dialogId,\n header,\n body,\n footer,\n extraClasses: dialogSizeClasses,\n extraBehaviours: [Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: dialogInit\n })],\n extraStyles: {}\n };\n const dialog = renderModalDialog(spec, dialogEvents, backstage);\n const modalAccess = (() => {\n const getForm = () => {\n const outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n const toggleFullscreen$1 = () => {\n toggleFullscreen(dialog, dialogSize.get());\n };\n return {\n getId: constant$1(dialogId),\n getRoot: constant$1(dialog),\n getBody: () => ModalDialog.getBody(dialog),\n getFooter: () => ModalDialog.getFooter(dialog),\n getFormWrapper: getForm,\n toggleFullscreen: toggleFullscreen$1\n };\n })();\n const instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog,\n instanceApi\n };\n };\n\n const renderInlineDialog = (dialogInit, extra, backstage, ariaAttrs = false, refreshDocking) => {\n const dialogId = generate$6('dialog');\n const dialogLabelId = generate$6('dialog-label');\n const dialogContentId = generate$6('dialog-content');\n const internalDialog = dialogInit.internalDialog;\n const getCompByName$1 = name => getCompByName(modalAccess, name);\n const dialogSize = Cell(internalDialog.size);\n const dialogSizeClass = getDialogSizeClass(dialogSize.get()).toArray();\n const updateState = (comp, incoming) => {\n dialogSize.set(incoming.internalDialog.size);\n updateDialogSizeClass(incoming.internalDialog.size, comp);\n refreshDocking();\n return Optional.some(incoming);\n };\n const memHeader = record(renderInlineHeader({\n title: internalDialog.title,\n draggable: true\n }, dialogId, dialogLabelId, backstage.shared.providers));\n const memBody = record(renderInlineBody({\n body: internalDialog.body,\n initialData: internalDialog.initialData\n }, dialogId, dialogContentId, backstage, ariaAttrs, getCompByName$1));\n const storagedMenuButtons = mapMenuButtons(internalDialog.buttons);\n const objOfCells = extractCellsToObject(storagedMenuButtons);\n const optMemFooter = someIf(storagedMenuButtons.length !== 0, record(renderInlineFooter({ buttons: storagedMenuButtons }, dialogId, backstage)));\n const dialogEvents = initDialog(() => instanceApi, {\n onBlock: event => {\n Blocking.block(dialog, (_comp, bs) => {\n const headerHeight = memHeader.getOpt(dialog).map(dialog => get$e(dialog.element));\n return getBusySpec(event.message, bs, backstage.shared.providers, headerHeight);\n });\n },\n onUnblock: () => {\n Blocking.unblock(dialog);\n },\n onClose: () => extra.closeWindow()\n }, backstage.shared.getSink);\n const inlineClass = 'tox-dialog-inline';\n const os = detect$1().os;\n const dialog = build$1({\n dom: {\n tag: 'div',\n classes: [\n 'tox-dialog',\n inlineClass,\n ...dialogSizeClass\n ],\n attributes: {\n role: 'dialog',\n ...os.isMacOS() ? { 'aria-label': internalDialog.title } : { 'aria-labelledby': dialogLabelId }\n }\n },\n eventOrder: {\n [receive()]: [\n Reflecting.name(),\n Receiving.name()\n ],\n [execute$5()]: ['execute-on-form'],\n [attachedToDom()]: [\n 'reflecting',\n 'execute-on-form'\n ]\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n onEscape: c => {\n emit(c, formCloseEvent);\n return Optional.some(true);\n },\n useTabstopAt: elem => !isPseudoStop(elem) && (name$3(elem) !== 'button' || get$g(elem, 'disabled') !== 'disabled'),\n firstTabstop: 1\n }),\n Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: dialogInit\n }),\n Focusing.config({}),\n config('execute-on-form', dialogEvents.concat([\n runOnSource(focusin(), (comp, _se) => {\n Keying.focusIn(comp);\n }),\n run$1(focusShifted(), (comp, se) => {\n comp.getSystem().broadcastOn([dialogFocusShiftedChannel], { newFocus: se.event.newFocus });\n })\n ])),\n Blocking.config({ getRoot: () => Optional.some(dialog) }),\n Replacing.config({}),\n memory({})\n ]),\n components: [\n memHeader.asSpec(),\n memBody.asSpec(),\n ...optMemFooter.map(memFooter => memFooter.asSpec()).toArray()\n ]\n });\n const toggleFullscreen$1 = () => {\n toggleFullscreen(dialog, dialogSize.get());\n };\n const modalAccess = {\n getId: constant$1(dialogId),\n getRoot: constant$1(dialog),\n getFooter: () => optMemFooter.map(memFooter => memFooter.get(dialog)),\n getBody: () => memBody.get(dialog),\n getFormWrapper: () => {\n const body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n },\n toggleFullscreen: toggleFullscreen$1\n };\n const instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog,\n instanceApi\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const getUrlDialogApi = root => {\n const withRoot = f => {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n const block = message => {\n if (!isString(message)) {\n throw new Error('The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(root => {\n emitWith(root, formBlockEvent, { message });\n });\n };\n const unblock = () => {\n withRoot(root => {\n emit(root, formUnblockEvent);\n });\n };\n const close = () => {\n withRoot(root => {\n emit(root, formCloseEvent);\n });\n };\n const sendMessage = data => {\n withRoot(root => {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block,\n unblock,\n close,\n sendMessage\n };\n };\n\n const SUPPORTED_MESSAGE_ACTIONS = [\n 'insertContent',\n 'setContent',\n 'execCommand',\n 'close',\n 'block',\n 'unblock'\n ];\n const isSupportedMessage = data => isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n const isCustomMessage = data => !isSupportedMessage(data) && isObject(data) && has$2(data, 'mceAction');\n const handleMessage = (editor, api, data) => {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n case 'setContent':\n editor.setContent(data.content);\n break;\n case 'execCommand':\n const ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n case 'close':\n api.close();\n break;\n case 'block':\n api.block(data.message);\n break;\n case 'unblock':\n api.unblock();\n break;\n }\n };\n const renderUrlDialog = (internalDialog, extra, editor, backstage) => {\n const dialogId = generate$6('dialog');\n const header = getHeader(internalDialog.title, dialogId, backstage);\n const body = renderIframeBody(internalDialog);\n const footer = internalDialog.buttons.bind(buttons => {\n if (buttons.length === 0) {\n return Optional.none();\n } else {\n return Optional.some(renderModalFooter({ buttons }, dialogId, backstage));\n }\n });\n const dialogEvents = initUrlDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra));\n const styles = {\n ...internalDialog.height.fold(() => ({}), height => ({\n 'height': height + 'px',\n 'max-height': height + 'px'\n })),\n ...internalDialog.width.fold(() => ({}), width => ({\n 'width': width + 'px',\n 'max-width': width + 'px'\n }))\n };\n const classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n const iframeUri = new global(internalDialog.url, { base_uri: new global(window.location.href) });\n const iframeDomain = `${ iframeUri.protocol }://${ iframeUri.host }${ iframeUri.port ? ':' + iframeUri.port : '' }`;\n const messageHandlerUnbinder = unbindable();\n const updateState = (_comp, incoming) => Optional.some(incoming);\n const extraBehaviours = [\n Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: internalDialog\n }),\n config('messages', [\n runOnAttached(() => {\n const unbind = bind(SugarElement.fromDom(window), 'message', e => {\n if (iframeUri.isSameOrigin(new global(e.raw.origin))) {\n const data = e.raw.data;\n if (isSupportedMessage(data)) {\n handleMessage(editor, instanceApi, data);\n } else if (isCustomMessage(data)) {\n internalDialog.onMessage(instanceApi, data);\n }\n }\n });\n messageHandlerUnbinder.set(unbind);\n }),\n runOnDetached(messageHandlerUnbinder.clear)\n ]),\n Receiving.config({\n channels: {\n [bodySendMessageChannel]: {\n onReceive: (comp, data) => {\n descendant(comp.element, 'iframe').each(iframeEle => {\n const iframeWin = iframeEle.dom.contentWindow;\n if (isNonNullable(iframeWin)) {\n iframeWin.postMessage(data, iframeDomain);\n }\n });\n }\n }\n }\n })\n ];\n const spec = {\n id: dialogId,\n header,\n body,\n footer,\n extraClasses: classes,\n extraBehaviours,\n extraStyles: styles\n };\n const dialog = renderModalDialog(spec, dialogEvents, backstage);\n const instanceApi = getUrlDialogApi(dialog);\n return {\n dialog,\n instanceApi\n };\n };\n\n const setup$2 = backstage => {\n const sharedBackstage = backstage.shared;\n const open = (message, callback) => {\n const closeDialog = () => {\n ModalDialog.hide(alertDialog);\n callback();\n };\n const memFooterClose = record(renderFooterButton({\n context: 'any',\n name: 'close-alert',\n text: 'OK',\n primary: true,\n buttonType: Optional.some('primary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'cancel', backstage));\n const titleSpec = pUntitled();\n const closeSpec = pClose(closeDialog, sharedBackstage.providers);\n const alertDialog = build$1(renderDialog$1({\n lazySink: () => sharedBackstage.getSink(),\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [memFooterClose.asSpec()]))),\n onEscape: closeDialog,\n extraClasses: ['tox-alert-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run$1(formCancelEvent, closeDialog)],\n eventOrder: {}\n }));\n ModalDialog.show(alertDialog);\n const footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return { open };\n };\n\n const setup$1 = backstage => {\n const sharedBackstage = backstage.shared;\n const open = (message, callback) => {\n const closeDialog = state => {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n const memFooterYes = record(renderFooterButton({\n context: 'any',\n name: 'yes',\n text: 'Yes',\n primary: true,\n buttonType: Optional.some('primary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'submit', backstage));\n const footerNo = renderFooterButton({\n context: 'any',\n name: 'no',\n text: 'No',\n primary: false,\n buttonType: Optional.some('secondary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'cancel', backstage);\n const titleSpec = pUntitled();\n const closeSpec = pClose(() => closeDialog(false), sharedBackstage.providers);\n const confirmDialog = build$1(renderDialog$1({\n lazySink: () => sharedBackstage.getSink(),\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [\n footerNo,\n memFooterYes.asSpec()\n ]))),\n onEscape: () => closeDialog(false),\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [\n run$1(formCancelEvent, () => closeDialog(false)),\n run$1(formSubmitEvent, () => closeDialog(true))\n ],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n const footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return { open };\n };\n\n const validateData = (data, validator) => getOrDie(asRaw('data', validator, data));\n const isAlertOrConfirmDialog = target => closest(target, '.tox-alert-dialog') || closest(target, '.tox-confirm-dialog');\n const inlineAdditionalBehaviours = (editor, isStickyToolbar, isToolbarLocationTop) => {\n if (isStickyToolbar && isToolbarLocationTop) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer()))),\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n modes: ['top'],\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.map(sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n }).getOrThunk(() => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n }));\n }\n })];\n }\n };\n const setup = extras => {\n const editor = extras.editor;\n const isStickyToolbar$1 = isStickyToolbar(editor);\n const alertDialog = setup$2(extras.backstages.dialog);\n const confirmDialog = setup$1(extras.backstages.dialog);\n const open = (config, params, closeWindow) => {\n if (!isUndefined(params)) {\n if (params.inline === 'toolbar') {\n return openInlineDialog(config, extras.backstages.popup.shared.anchors.inlineDialog(), closeWindow, params);\n } else if (params.inline === 'bottom') {\n return openBottomInlineDialog(config, extras.backstages.popup.shared.anchors.inlineBottomDialog(), closeWindow, params);\n } else if (params.inline === 'cursor') {\n return openInlineDialog(config, extras.backstages.popup.shared.anchors.cursor(), closeWindow, params);\n }\n }\n return openModalDialog(config, closeWindow);\n };\n const openUrl = (config, closeWindow) => openModalUrlDialog(config, closeWindow);\n const openModalUrlDialog = (config, closeWindow) => {\n const factory = contents => {\n const dialog = renderUrlDialog(contents, {\n closeWindow: () => {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, editor, extras.backstages.dialog);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n return DialogManager.openUrl(factory, config);\n };\n const openModalDialog = (config, closeWindow) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = internalInitialData;\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const dialog = renderDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, extras.backstages.dialog);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n return DialogManager.open(factory, config);\n };\n const openInlineDialog = (config$1, anchor, closeWindow, windowParams) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = validateData(internalInitialData, dataValidator);\n const inlineDialog = value$4();\n const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const refreshDocking = () => inlineDialog.on(dialog => {\n InlineView.reposition(dialog);\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(dialog);\n }\n });\n const dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, extras.backstages.popup, windowParams.ariaAttrs, refreshDocking);\n const inlineDialogComp = build$1(InlineView.sketch({\n lazySink: extras.backstages.popup.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: windowParams.persistent ? { event: 'doNotDismissYet' } : {},\n ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {\n emit(dialogUi.dialog, formCancelEvent);\n })]),\n ...inlineAdditionalBehaviours(editor, isStickyToolbar$1, isToolbarLocationTop)\n ]),\n isExtraPart: (_comp, target) => isAlertOrConfirmDialog(target)\n }));\n inlineDialog.set(inlineDialogComp);\n const getInlineDialogBounds = () => {\n const elem = editor.inline ? body() : SugarElement.fromDom(editor.getContainer());\n const bounds = box$1(elem);\n return Optional.some(bounds);\n };\n InlineView.showWithinBounds(inlineDialogComp, premade(dialogUi.dialog), { anchor }, getInlineDialogBounds);\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor', refreshDocking);\n }\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n const openBottomInlineDialog = (config$1, anchor, closeWindow, windowParams) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = validateData(internalInitialData, dataValidator);\n const inlineDialog = value$4();\n const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const refreshDocking = () => inlineDialog.on(dialog => {\n InlineView.reposition(dialog);\n Docking.refresh(dialog);\n });\n const dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor ScrollWindow ElementScroll', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, extras.backstages.popup, windowParams.ariaAttrs, refreshDocking);\n const inlineDialogComp = build$1(InlineView.sketch({\n lazySink: extras.backstages.popup.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: windowParams.persistent ? { event: 'doNotDismissYet' } : {},\n ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {\n emit(dialogUi.dialog, formCancelEvent);\n })]),\n Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer()))),\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n modes: [\n 'top',\n 'bottom'\n ],\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.map(sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n }).getOrThunk(() => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n }));\n }\n })\n ]),\n isExtraPart: (_comp, target) => isAlertOrConfirmDialog(target)\n }));\n inlineDialog.set(inlineDialogComp);\n const getInlineDialogBounds = () => {\n return extras.backstages.popup.shared.getSink().toOptional().bind(s => {\n const optScrollingContext = detectWhenSplitUiMode(editor, s.element);\n const margin = 15;\n const bounds$1 = optScrollingContext.map(sc => getBoundsFrom(sc)).getOr(win());\n const contentAreaContainer = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n const constrainedBounds = constrain(contentAreaContainer, bounds$1);\n return Optional.some(bounds(constrainedBounds.x, constrainedBounds.y, constrainedBounds.width, constrainedBounds.height - margin));\n });\n };\n InlineView.showWithinBounds(inlineDialogComp, premade(dialogUi.dialog), { anchor }, getInlineDialogBounds);\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor ScrollWindow ElementScroll ResizeWindow', refreshDocking);\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n const confirm = (message, callback) => {\n confirmDialog.open(message, callback);\n };\n const alert = (message, callback) => {\n alertDialog.open(message, callback);\n };\n const close = instanceApi => {\n instanceApi.close();\n };\n return {\n open,\n openUrl,\n alert,\n close,\n confirm\n };\n };\n\n const registerOptions = editor => {\n register$f(editor);\n register$e(editor);\n register(editor);\n };\n var Theme = () => {\n global$a.add('silver', editor => {\n registerOptions(editor);\n let popupSinkBounds = () => win();\n const {\n dialogs,\n popups,\n renderUI: renderModeUI\n } = setup$3(editor, { getPopupSinkBounds: () => popupSinkBounds() });\n const renderUI = () => {\n const renderResult = renderModeUI();\n const optScrollingContext = detectWhenSplitUiMode(editor, popups.getMothership().element);\n optScrollingContext.each(sc => {\n popupSinkBounds = () => {\n return getBoundsFrom(sc);\n };\n });\n return renderResult;\n };\n Autocompleter.register(editor, popups.backstage.shared);\n const windowMgr = setup({\n editor,\n backstages: {\n popup: popups.backstage,\n dialog: dialogs.backstage\n }\n });\n const notificationRegion = value$4();\n const getNotificationManagerImpl = () => NotificationManagerImpl(editor, { backstage: popups.backstage }, popups.getMothership(), notificationRegion);\n return {\n renderUI,\n getWindowManagerImpl: constant$1(windowMgr),\n getNotificationManagerImpl\n };\n });\n };\n\n Theme();\n\n})();\n","/**\n * TinyMCE version 7.5.1 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var typeOf$1 = function (x) {\n if (x === null) {\n return 'null';\n }\n if (x === undefined) {\n return 'undefined';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isEquatableType = function (x) {\n return [\n 'undefined',\n 'boolean',\n 'number',\n 'string',\n 'function',\n 'xml',\n 'null'\n ].indexOf(x) !== -1;\n };\n\n var sort$1 = function (xs, compareFn) {\n var clone = Array.prototype.slice.call(xs);\n return clone.sort(compareFn);\n };\n\n var contramap = function (eqa, f) {\n return eq$2(function (x, y) {\n return eqa.eq(f(x), f(y));\n });\n };\n var eq$2 = function (f) {\n return { eq: f };\n };\n var tripleEq = eq$2(function (x, y) {\n return x === y;\n });\n var eqString = tripleEq;\n var eqArray = function (eqa) {\n return eq$2(function (x, y) {\n if (x.length !== y.length) {\n return false;\n }\n var len = x.length;\n for (var i = 0; i < len; i++) {\n if (!eqa.eq(x[i], y[i])) {\n return false;\n }\n }\n return true;\n });\n };\n var eqSortedArray = function (eqa, compareFn) {\n return contramap(eqArray(eqa), function (xs) {\n return sort$1(xs, compareFn);\n });\n };\n var eqRecord = function (eqa) {\n return eq$2(function (x, y) {\n var kx = Object.keys(x);\n var ky = Object.keys(y);\n if (!eqSortedArray(eqString).eq(kx, ky)) {\n return false;\n }\n var len = kx.length;\n for (var i = 0; i < len; i++) {\n var q = kx[i];\n if (!eqa.eq(x[q], y[q])) {\n return false;\n }\n }\n return true;\n });\n };\n var eqAny = eq$2(function (x, y) {\n if (x === y) {\n return true;\n }\n var tx = typeOf$1(x);\n var ty = typeOf$1(y);\n if (tx !== ty) {\n return false;\n }\n if (isEquatableType(tx)) {\n return x === y;\n } else if (tx === 'array') {\n return eqArray(eqAny).eq(x, y);\n } else if (tx === 'object') {\n return eqRecord(eqAny).eq(x, y);\n }\n return false;\n });\n\n const getPrototypeOf$2 = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$1 = t => a => t === a;\n const is$4 = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf$2(o) === proto);\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isPlainObject = value => is$4(value, Object);\n const isArray$1 = isType$1('array');\n const isNull = eq$1(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$1(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray$1(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply$1 = f => {\n return f();\n };\n const call = f => {\n f();\n };\n const never = constant(false);\n const always = constant(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const indexOf$1 = (xs, x) => {\n const r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map$3 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$e = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition$2 = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$5 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$e(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil$1 = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$2 = (xs, pred) => {\n return findUntil$1(xs, pred, never);\n };\n const findIndex$2 = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray$1(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$3 = (xs, f) => flatten(map$3(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const difference = (a1, a2) => filter$5(a1, x => !contains$2(a2, x));\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const sort = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$b = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$b(xs, 0);\n const last$2 = xs => get$b(xs, xs.length - 1);\n const from = isFunction(Array.from) ? Array.from : x => nativeSlice.call(x);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n const unique$1 = (xs, comparator) => {\n const r = [];\n const isDuplicated = isFunction(comparator) ? x => exists(r, i => comparator(i, x)) : x => contains$2(r, x);\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (!isDuplicated(x)) {\n r.push(x);\n }\n }\n return r;\n };\n\n const keys = Object.keys;\n const hasOwnProperty$1 = Object.hasOwnProperty;\n const each$d = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map$2 = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each$d(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each$d(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const bifilter = (obj, pred) => {\n const t = {};\n const f = {};\n internalFilter(obj, pred, objAcc(t), objAcc(f));\n return {\n t,\n f\n };\n };\n const filter$4 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each$d(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$a = (obj, key) => {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$2 = (obj, key) => hasOwnProperty$1.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n const equal$1 = (a1, a2, eq = eqAny) => eqRecord(eq).eq(a1, a2);\n\n const stringArray = a => {\n const all = {};\n each$e(a, key => {\n all[key] = {};\n });\n return keys(all);\n };\n\n const isArrayLike = o => o.length !== undefined;\n const isArray = Array.isArray;\n const toArray$1 = obj => {\n if (!isArray(obj)) {\n const array = [];\n for (let i = 0, l = obj.length; i < l; i++) {\n array[i] = obj[i];\n }\n return array;\n } else {\n return obj;\n }\n };\n const each$c = (o, cb, s) => {\n if (!o) {\n return false;\n }\n s = s || o;\n if (isArrayLike(o)) {\n for (let n = 0, l = o.length; n < l; n++) {\n if (cb.call(s, o[n], n, o) === false) {\n return false;\n }\n }\n } else {\n for (const n in o) {\n if (has$2(o, n)) {\n if (cb.call(s, o[n], n, o) === false) {\n return false;\n }\n }\n }\n }\n return true;\n };\n const map$1 = (array, callback) => {\n const out = [];\n each$c(array, (item, index) => {\n out.push(callback(item, index, array));\n });\n return out;\n };\n const filter$3 = (a, f) => {\n const o = [];\n each$c(a, (v, index) => {\n if (!f || f(v, index, a)) {\n o.push(v);\n }\n });\n return o;\n };\n const indexOf = (a, v) => {\n if (a) {\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] === v) {\n return i;\n }\n }\n }\n return -1;\n };\n const reduce = (collection, iteratee, accumulator, thisArg) => {\n let acc = isUndefined(accumulator) ? collection[0] : accumulator;\n for (let i = 0; i < collection.length; i++) {\n acc = iteratee.call(thisArg, acc, collection[i], i);\n }\n return acc;\n };\n const findIndex$1 = (array, predicate, thisArg) => {\n for (let i = 0, l = array.length; i < l; i++) {\n if (predicate.call(thisArg, array[i], i, array)) {\n return i;\n }\n }\n return -1;\n };\n const last$1 = collection => collection[collection.length - 1];\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find$1 = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$3(group(1), group(2));\n };\n const detect$4 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n return find$1(versionRegexes, cleanedAgent);\n };\n const unknown$2 = () => {\n return nu$3(0, 0);\n };\n const nu$3 = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$3,\n detect: detect$4,\n unknown: unknown$2\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$2(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$3 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$2(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$3(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$3(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const contains$1 = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim$4 = blank(/^\\s+|\\s+$/g);\n const lTrim = blank(/^\\s+/g);\n const rTrim = blank(/\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty$3 = s => !isNotEmpty(s);\n const repeat = (s, count) => count <= 0 ? '' : new Array(count + 1).join(s);\n const toInt = (value, radix = 10) => {\n const num = parseInt(value, radix);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains$1(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$1 = () => {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$2 = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$1,\n nu: nu$2,\n edge: constant(edge),\n chromium: constant(chromium),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown = () => {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$1 = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown,\n nu: nu$1,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n macos: constant(macos),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n const detect$2 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$2 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform$4 = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$1 = () => platform$4();\n\n const userAgent = window.navigator.userAgent;\n const platform$3 = detect$1();\n const browser$3 = platform$3.browser;\n const os$1 = platform$3.os;\n const deviceType = platform$3.deviceType;\n const windowsPhone = userAgent.indexOf('Windows Phone') !== -1;\n const Env = {\n transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n documentMode: browser$3.isIE() ? document.documentMode || 7 : 10,\n cacheSuffix: null,\n container: null,\n canHaveCSP: !browser$3.isIE(),\n windowsPhone,\n browser: {\n current: browser$3.current,\n version: browser$3.version,\n isChromium: browser$3.isChromium,\n isEdge: browser$3.isEdge,\n isFirefox: browser$3.isFirefox,\n isIE: browser$3.isIE,\n isOpera: browser$3.isOpera,\n isSafari: browser$3.isSafari\n },\n os: {\n current: os$1.current,\n version: os$1.version,\n isAndroid: os$1.isAndroid,\n isChromeOS: os$1.isChromeOS,\n isFreeBSD: os$1.isFreeBSD,\n isiOS: os$1.isiOS,\n isLinux: os$1.isLinux,\n isMacOS: os$1.isMacOS,\n isSolaris: os$1.isSolaris,\n isWindows: os$1.isWindows\n },\n deviceType: {\n isDesktop: deviceType.isDesktop,\n isiPad: deviceType.isiPad,\n isiPhone: deviceType.isiPhone,\n isPhone: deviceType.isPhone,\n isTablet: deviceType.isTablet,\n isTouch: deviceType.isTouch,\n isWebView: deviceType.isWebView\n }\n };\n\n const whiteSpaceRegExp$1 = /^\\s*|\\s*$/g;\n const trim$3 = str => {\n return isNullable(str) ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');\n };\n const is$3 = (obj, type) => {\n if (!type) {\n return obj !== undefined;\n }\n if (type === 'array' && isArray(obj)) {\n return true;\n }\n return typeof obj === type;\n };\n const makeMap$4 = (items, delim, map = {}) => {\n const resolvedItems = isString(items) ? items.split(delim || ',') : items || [];\n let i = resolvedItems.length;\n while (i--) {\n map[resolvedItems[i]] = {};\n }\n return map;\n };\n const hasOwnProperty = has$2;\n const extend$3 = (obj, ...exts) => {\n for (let i = 0; i < exts.length; i++) {\n const ext = exts[i];\n for (const name in ext) {\n if (has$2(ext, name)) {\n const value = ext[name];\n if (value !== undefined) {\n obj[name] = value;\n }\n }\n }\n }\n return obj;\n };\n const walk$4 = function (o, f, n, s) {\n s = s || this;\n if (o) {\n if (n) {\n o = o[n];\n }\n each$c(o, (o, i) => {\n if (f.call(s, o, i, n) === false) {\n return false;\n } else {\n walk$4(o, f, n, s);\n return true;\n }\n });\n }\n };\n const resolve$3 = (n, o = window) => {\n const path = n.split('.');\n for (let i = 0, l = path.length; i < l; i++) {\n o = o[path[i]];\n if (!o) {\n break;\n }\n }\n return o;\n };\n const explode$3 = (s, d) => {\n if (isArray$1(s)) {\n return s;\n } else if (s === '') {\n return [];\n } else {\n return map$1(s.split(d || ','), trim$3);\n }\n };\n const _addCacheSuffix = url => {\n const cacheSuffix = Env.cacheSuffix;\n if (cacheSuffix) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;\n }\n return url;\n };\n const Tools = {\n trim: trim$3,\n isArray: isArray,\n is: is$3,\n toArray: toArray$1,\n makeMap: makeMap$4,\n each: each$c,\n map: map$1,\n grep: filter$3,\n inArray: indexOf,\n hasOwn: hasOwnProperty,\n extend: extend$3,\n walk: walk$4,\n resolve: resolve$3,\n explode: explode$3,\n _addCacheSuffix\n };\n\n const is$2 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n const lift3 = (oa, ob, oc, f) => oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve$2 = (p, scope) => {\n const parts = p.split('.');\n return path(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve$2(name, scope);\n };\n const getOrDie = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf$1 = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve$2('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf$1(x).constructor.name));\n };\n\n const COMMENT = 8;\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type$1 = element => element.dom.nodeType;\n const isType = t => element => type$1(element) === t;\n const isComment$1 = element => type$1(element) === COMMENT || name(element) === '#comment';\n const isHTMLElement$1 = element => isElement$7(element) && isPrototypeOf(element.dom);\n const isElement$7 = isType(ELEMENT);\n const isText$c = isType(TEXT);\n const isDocument$2 = isType(DOCUMENT);\n const isDocumentFragment$1 = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement$7(e) && name(e) === tag;\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$3 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each$d(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const get$9 = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$9(element, key));\n const has$1 = (element, key) => {\n const dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n const remove$9 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const hasNone = element => {\n const attrs = element.dom.attributes;\n return attrs === undefined || attrs === null || attrs.length === 0;\n };\n const clone$4 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const read$4 = (element, attr) => {\n const value = get$9(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$4 = (element, attr, id) => {\n const old = read$4(element, attr);\n const nu = old.concat([id]);\n set$3(element, attr, nu.join(' '));\n return true;\n };\n const remove$8 = (element, attr, id) => {\n const nu = filter$5(read$4(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$3(element, attr, nu.join(' '));\n } else {\n remove$9(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$8 = element => read$4(element, 'class');\n const add$3 = (element, clazz) => add$4(element, 'class', clazz);\n const remove$7 = (element, clazz) => remove$8(element, 'class', clazz);\n const toggle$2 = (element, clazz) => {\n if (contains$2(get$8(element), clazz)) {\n return remove$7(element, clazz);\n } else {\n return add$3(element, clazz);\n }\n };\n\n const add$2 = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$8(element);\n if (classList.length === 0) {\n remove$9(element, 'class');\n }\n };\n const remove$6 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$7(element, clazz);\n }\n cleanClass(element);\n };\n const toggle$1 = (element, clazz) => {\n const result = supports(element) ? element.dom.classList.toggle(clazz) : toggle$2(element, clazz);\n cleanClass(element);\n return result;\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom$2(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom$2(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom$2(node);\n };\n const fromDom$2 = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint$2 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$2);\n const SugarElement = {\n fromHtml: fromHtml$1,\n fromTag,\n fromText,\n fromDom: fromDom$2,\n fromPoint: fromPoint$2\n };\n\n const toArray = (target, f) => {\n const r = [];\n const recurse = e => {\n r.push(e);\n return f(e);\n };\n let cur = f(target);\n do {\n cur = cur.bind(recurse);\n } while (cur.isSome());\n return r;\n };\n\n const is$1 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$3(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n const owner$1 = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument$2(dos) ? dos : owner$1(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents$1 = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const siblings = element => {\n const filterSelf = elements => filter$5(elements, x => !eq(element, x));\n return parent(element).map(children$1).map(filterSelf).getOr([]);\n };\n const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const prevSiblings = element => reverse(toArray(element, prevSibling));\n const nextSiblings = element => toArray(element, nextSibling);\n const children$1 = element => map$3(element.dom.childNodes, SugarElement.fromDom);\n const child$1 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$1(element, 0);\n const lastChild = element => child$1(element, element.dom.childNodes.length - 1);\n const childNodesCount = element => element.dom.childNodes.length;\n\n const getHead = doc => {\n const b = doc.dom.head;\n if (b === null || b === undefined) {\n throw new Error('Head is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const isShadowRoot = dos => isDocumentFragment$1(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getStyleContainer = dos => isShadowRoot(dos) ? dos : getHead(documentOrOwner(dos));\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement$7(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText$c(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$4 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$4 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$4, scope, predicate, isRoot);\n };\n const sibling$1 = (scope, predicate) => {\n const element = scope.dom;\n if (!element.parentNode) {\n return Optional.none();\n }\n return child(SugarElement.fromDom(element.parentNode), x => !eq(scope, x) && predicate(x));\n };\n const child = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$2(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$2 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const ancestor$3 = (scope, selector, isRoot) => ancestor$4(scope, e => is$1(e, selector), isRoot);\n const descendant$1 = (scope, selector) => one(selector, scope);\n const closest$3 = (scope, selector, isRoot) => {\n const is = (element, selector) => is$1(element, selector);\n return ClosestOrAncestor(is, ancestor$3, scope, selector, isRoot);\n };\n\n const closest$2 = target => closest$3(target, '[contenteditable]');\n const isEditable$2 = (element, assumeEditable = false) => {\n if (inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest$2(element).fold(constant(assumeEditable), editable => getRaw$1(editable) === 'true');\n }\n };\n const getRaw$1 = element => element.dom.contentEditable;\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$2 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each$d(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const get$7 = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const getAllRaw = element => {\n const css = {};\n const dom = element.dom;\n if (isSupported(dom)) {\n for (let i = 0; i < dom.style.length; i++) {\n const ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n const remove$5 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is$2(getOpt(element, 'style').map(trim$4), '')) {\n remove$9(element, 'style');\n }\n };\n const reflow = e => e.dom.offsetWidth;\n\n const before$3 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$4 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$3(v, element);\n });\n };\n const prepend = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$1(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const wrap$2 = (element, wrapper) => {\n before$3(element, wrapper);\n append$1(wrapper, element);\n };\n\n const after$3 = (marker, elements) => {\n each$e(elements, (x, i) => {\n const e = i === 0 ? marker : elements[i - 1];\n after$4(e, x);\n });\n };\n const append = (parent, elements) => {\n each$e(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$e(children$1(element), rogue => {\n remove$4(rogue);\n });\n };\n const remove$4 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n const unwrap = wrapper => {\n const children = children$1(wrapper);\n if (children.length > 0) {\n after$3(wrapper, children);\n }\n remove$4(wrapper);\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children$1(SugarElement.fromDom(div));\n };\n const fromDom$1 = nodes => map$3(nodes, SugarElement.fromDom);\n\n const get$6 = element => element.dom.innerHTML;\n const set$1 = (element, content) => {\n const owner = owner$1(element);\n const docDom = owner.dom;\n const fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n const contentElements = fromHtml(content, docDom);\n append(fragment, contentElements);\n empty(element);\n append$1(element, fragment);\n };\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$1(container, clone);\n return get$6(container);\n };\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle$1 = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle$1(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const r = (left, top) => {\n const translate = (x, y) => r(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const get$5 = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const to = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n const intoView = (element, alignToTop) => {\n const isSafari = detect$1().browser.isSafari();\n if (isSafari && isFunction(element.dom.scrollIntoViewIfNeeded)) {\n element.dom.scrollIntoViewIfNeeded(false);\n } else {\n element.dom.scrollIntoView(alignToTop);\n }\n };\n\n const get$4 = _win => {\n const win = _win === undefined ? window : _win;\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win.visualViewport);\n }\n };\n const bounds = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const getBounds = _win => {\n const win = _win === undefined ? window : _win;\n const doc = win.document;\n const scroll = get$5(SugarElement.fromDom(doc));\n return get$4(win).fold(() => {\n const html = win.document.documentElement;\n const width = html.clientWidth;\n const height = html.clientHeight;\n return bounds(scroll.left, scroll.top, width, height);\n }, visualViewport => bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));\n };\n\n const children = (scope, predicate) => filter$5(children$1(scope), predicate);\n const descendants$1 = (scope, predicate) => {\n let result = [];\n each$e(children$1(scope), x => {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants$1(x, predicate));\n });\n return result;\n };\n\n const descendants = (scope, selector) => all(selector, scope);\n\n const ancestor$2 = (scope, predicate, isRoot) => ancestor$4(scope, predicate, isRoot).isSome();\n const sibling = (scope, predicate) => sibling$1(scope, predicate).isSome();\n const descendant = (scope, predicate) => descendant$2(scope, predicate).isSome();\n\n class DomTreeWalker {\n constructor(startNode, rootNode) {\n this.node = startNode;\n this.rootNode = rootNode;\n this.current = this.current.bind(this);\n this.next = this.next.bind(this);\n this.prev = this.prev.bind(this);\n this.prev2 = this.prev2.bind(this);\n }\n current() {\n return this.node;\n }\n next(shallow) {\n this.node = this.findSibling(this.node, 'firstChild', 'nextSibling', shallow);\n return this.node;\n }\n prev(shallow) {\n this.node = this.findSibling(this.node, 'lastChild', 'previousSibling', shallow);\n return this.node;\n }\n prev2(shallow) {\n this.node = this.findPreviousNode(this.node, shallow);\n return this.node;\n }\n findSibling(node, startName, siblingName, shallow) {\n if (node) {\n if (!shallow && node[startName]) {\n return node[startName];\n }\n if (node !== this.rootNode) {\n let sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (let parent = node.parentNode; parent && parent !== this.rootNode; parent = parent.parentNode) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n }\n return undefined;\n }\n findPreviousNode(node, shallow) {\n if (node) {\n const sibling = node.previousSibling;\n if (this.rootNode && sibling === this.rootNode) {\n return;\n }\n if (sibling) {\n if (!shallow) {\n for (let child = sibling.lastChild; child; child = child.lastChild) {\n if (!child.lastChild) {\n return child;\n }\n }\n }\n return sibling;\n }\n const parent = node.parentNode;\n if (parent && parent !== this.rootNode) {\n return parent;\n }\n }\n return undefined;\n }\n }\n\n const zeroWidth = '\\uFEFF';\n const nbsp = '\\xA0';\n const isZwsp$2 = char => char === zeroWidth;\n const removeZwsp = s => s.replace(/\\uFEFF/g, '');\n\n const whiteSpaceRegExp = /^[ \\t\\r\\n]*$/;\n const isWhitespaceText = text => whiteSpaceRegExp.test(text);\n const isZwsp$1 = text => {\n for (const c of text) {\n if (!isZwsp$2(c)) {\n return false;\n }\n }\n return true;\n };\n const isCollapsibleWhitespace$1 = c => ' \\f\\t\\x0B'.indexOf(c) !== -1;\n const isNewLineChar = c => c === '\\n' || c === '\\r';\n const isNewline = (text, idx) => idx < text.length && idx >= 0 ? isNewLineChar(text[idx]) : false;\n const normalize$4 = (text, tabSpaces = 4, isStartOfContent = true, isEndOfContent = true) => {\n const tabSpace = repeat(' ', tabSpaces);\n const normalizedText = text.replace(/\\t/g, tabSpace);\n const result = foldl(normalizedText, (acc, c) => {\n if (isCollapsibleWhitespace$1(c) || c === nbsp) {\n if (acc.pcIsSpace || acc.str === '' && isStartOfContent || acc.str.length === normalizedText.length - 1 && isEndOfContent || isNewline(normalizedText, acc.str.length + 1)) {\n return {\n pcIsSpace: false,\n str: acc.str + nbsp\n };\n } else {\n return {\n pcIsSpace: true,\n str: acc.str + ' '\n };\n }\n } else {\n return {\n pcIsSpace: isNewLineChar(c),\n str: acc.str + c\n };\n }\n }, {\n pcIsSpace: false,\n str: ''\n });\n return result.str;\n };\n\n const isNodeType = type => {\n return node => {\n return !!node && node.nodeType === type;\n };\n };\n const isRestrictedNode = node => !!node && !Object.getPrototypeOf(node);\n const isElement$6 = isNodeType(1);\n const isHTMLElement = node => isElement$6(node) && isHTMLElement$1(SugarElement.fromDom(node));\n const isSVGElement = node => isElement$6(node) && node.namespaceURI === 'http://www.w3.org/2000/svg';\n const matchNodeName = name => {\n const lowerCasedName = name.toLowerCase();\n return node => isNonNullable(node) && node.nodeName.toLowerCase() === lowerCasedName;\n };\n const matchNodeNames = names => {\n const lowerCasedNames = names.map(s => s.toLowerCase());\n return node => {\n if (node && node.nodeName) {\n const nodeName = node.nodeName.toLowerCase();\n return contains$2(lowerCasedNames, nodeName);\n }\n return false;\n };\n };\n const matchStyleValues = (name, values) => {\n const items = values.toLowerCase().split(' ');\n return node => {\n if (isElement$6(node)) {\n const win = node.ownerDocument.defaultView;\n if (win) {\n for (let i = 0; i < items.length; i++) {\n const computed = win.getComputedStyle(node, null);\n const cssValue = computed ? computed.getPropertyValue(name) : null;\n if (cssValue === items[i]) {\n return true;\n }\n }\n }\n }\n return false;\n };\n };\n const hasAttribute = attrName => {\n return node => {\n return isElement$6(node) && node.hasAttribute(attrName);\n };\n };\n const isBogus$1 = node => isElement$6(node) && node.hasAttribute('data-mce-bogus');\n const isBogusAll = node => isElement$6(node) && node.getAttribute('data-mce-bogus') === 'all';\n const isTable$2 = node => isElement$6(node) && node.tagName === 'TABLE';\n const hasContentEditableState = value => {\n return node => {\n if (isHTMLElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n const isTextareaOrInput = matchNodeNames([\n 'textarea',\n 'input'\n ]);\n const isText$b = isNodeType(3);\n const isCData = isNodeType(4);\n const isPi = isNodeType(7);\n const isComment = isNodeType(8);\n const isDocument$1 = isNodeType(9);\n const isDocumentFragment = isNodeType(11);\n const isBr$6 = matchNodeName('br');\n const isImg = matchNodeName('img');\n const isContentEditableTrue$3 = hasContentEditableState('true');\n const isContentEditableFalse$b = hasContentEditableState('false');\n const isTableCell$3 = matchNodeNames([\n 'td',\n 'th'\n ]);\n const isTableCellOrCaption = matchNodeNames([\n 'td',\n 'th',\n 'caption'\n ]);\n const isMedia$2 = matchNodeNames([\n 'video',\n 'audio',\n 'object',\n 'embed'\n ]);\n const isListItem$2 = matchNodeName('li');\n const isDetails = matchNodeName('details');\n const isSummary$1 = matchNodeName('summary');\n\n const defaultOptionValues = {\n skipBogus: true,\n includeZwsp: false,\n checkRootAsContent: false\n };\n const hasWhitespacePreserveParent = (node, rootNode, schema) => {\n const rootElement = SugarElement.fromDom(rootNode);\n const startNode = SugarElement.fromDom(node);\n const whitespaceElements = schema.getWhitespaceElements();\n const predicate = node => has$2(whitespaceElements, name(node));\n return ancestor$2(startNode, predicate, curry(eq, rootElement));\n };\n const isNamedAnchor = node => {\n return isElement$6(node) && node.nodeName === 'A' && !node.hasAttribute('href') && (node.hasAttribute('name') || node.hasAttribute('id'));\n };\n const isNonEmptyElement$1 = (node, schema) => {\n return isElement$6(node) && has$2(schema.getNonEmptyElements(), node.nodeName);\n };\n const isBookmark = hasAttribute('data-mce-bookmark');\n const hasNonEditableParent = node => parentElement(SugarElement.fromDom(node)).exists(parent => !isEditable$2(parent));\n const isWhitespace$1 = (node, rootNode, schema) => isWhitespaceText(node.data) && !hasWhitespacePreserveParent(node, rootNode, schema);\n const isText$a = (node, rootNode, schema, options) => isText$b(node) && !isWhitespace$1(node, rootNode, schema) && (!options.includeZwsp || !isZwsp$1(node.data));\n const isContentNode = (schema, node, rootNode, options) => {\n return isFunction(options.isContent) && options.isContent(node) || isNonEmptyElement$1(node, schema) || isBookmark(node) || isNamedAnchor(node) || isText$a(node, rootNode, schema, options) || isContentEditableFalse$b(node) || isContentEditableTrue$3(node) && hasNonEditableParent(node);\n };\n const isEmptyNode = (schema, targetNode, opts) => {\n const options = {\n ...defaultOptionValues,\n ...opts\n };\n if (options.checkRootAsContent) {\n if (isContentNode(schema, targetNode, targetNode, options)) {\n return false;\n }\n }\n let node = targetNode.firstChild;\n let brCount = 0;\n if (!node) {\n return true;\n }\n const walker = new DomTreeWalker(node, targetNode);\n do {\n if (options.skipBogus && isElement$6(node)) {\n const bogusValue = node.getAttribute('data-mce-bogus');\n if (bogusValue) {\n node = walker.next(bogusValue === 'all');\n continue;\n }\n }\n if (isComment(node)) {\n node = walker.next(true);\n continue;\n }\n if (isBr$6(node)) {\n brCount++;\n node = walker.next();\n continue;\n }\n if (isContentNode(schema, node, targetNode, options)) {\n return false;\n }\n node = walker.next();\n } while (node);\n return brCount <= 1;\n };\n const isEmpty$2 = (schema, elm, options) => {\n return isEmptyNode(schema, elm.dom, {\n checkRootAsContent: true,\n ...options\n });\n };\n const isContent$1 = (schema, node, options) => {\n return isContentNode(schema, node, node, {\n includeZwsp: defaultOptionValues.includeZwsp,\n ...options\n });\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const repeatable = delay => {\n const intervalId = Cell(Optional.none());\n const revoke = () => intervalId.get().each(id => clearInterval(id));\n const clear = () => {\n revoke();\n intervalId.set(Optional.none());\n };\n const isSet = () => intervalId.get().isSome();\n const get = () => intervalId.get();\n const set = functionToRepeat => {\n revoke();\n intervalId.set(Optional.some(setInterval(functionToRepeat, delay)));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const value$2 = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const nodeNameToNamespaceType = name => {\n const lowerCaseName = name.toLowerCase();\n if (lowerCaseName === 'svg') {\n return 'svg';\n } else if (lowerCaseName === 'math') {\n return 'math';\n } else {\n return 'html';\n }\n };\n const isNonHtmlElementRootName = name => nodeNameToNamespaceType(name) !== 'html';\n const isNonHtmlElementRoot = node => isNonHtmlElementRootName(node.nodeName);\n const toScopeType = node => nodeNameToNamespaceType(node.nodeName);\n const namespaceElements = [\n 'svg',\n 'math'\n ];\n const createNamespaceTracker = () => {\n const currentScope = value$2();\n const current = () => currentScope.get().map(toScopeType).getOr('html');\n const track = node => {\n if (isNonHtmlElementRoot(node)) {\n currentScope.set(node);\n } else if (currentScope.get().exists(scopeNode => !scopeNode.contains(node))) {\n currentScope.clear();\n }\n return current();\n };\n const reset = () => {\n currentScope.clear();\n };\n return {\n track,\n current,\n reset\n };\n };\n\n const transparentBlockAttr = 'data-mce-block';\n const elementNames = map => filter$5(keys(map), key => !/[A-Z]/.test(key));\n const makeSelectorFromSchemaMap = map => map$3(elementNames(map), name => {\n const escapedName = CSS.escape(name);\n return `${ escapedName }:` + map$3(namespaceElements, ns => `not(${ ns } ${ escapedName })`).join(':');\n }).join(',');\n const updateTransparent = (blocksSelector, transparent) => {\n if (isNonNullable(transparent.querySelector(blocksSelector))) {\n transparent.setAttribute(transparentBlockAttr, 'true');\n if (transparent.getAttribute('data-mce-selected') === 'inline-boundary') {\n transparent.removeAttribute('data-mce-selected');\n }\n return true;\n } else {\n transparent.removeAttribute(transparentBlockAttr);\n return false;\n }\n };\n const updateBlockStateOnChildren = (schema, scope) => {\n const transparentSelector = makeSelectorFromSchemaMap(schema.getTransparentElements());\n const blocksSelector = makeSelectorFromSchemaMap(schema.getBlockElements());\n return filter$5(scope.querySelectorAll(transparentSelector), transparent => updateTransparent(blocksSelector, transparent));\n };\n const trimEdge = (schema, el, leftSide) => {\n var _a;\n const childPropertyName = leftSide ? 'lastChild' : 'firstChild';\n for (let child = el[childPropertyName]; child; child = child[childPropertyName]) {\n if (isEmptyNode(schema, child, { checkRootAsContent: true })) {\n (_a = child.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(child);\n return;\n }\n }\n };\n const split$2 = (schema, parentElm, splitElm) => {\n const range = document.createRange();\n const parentNode = parentElm.parentNode;\n if (parentNode) {\n range.setStartBefore(parentElm);\n range.setEndBefore(splitElm);\n const beforeFragment = range.extractContents();\n trimEdge(schema, beforeFragment, true);\n range.setStartAfter(splitElm);\n range.setEndAfter(parentElm);\n const afterFragment = range.extractContents();\n trimEdge(schema, afterFragment, false);\n if (!isEmptyNode(schema, beforeFragment, { checkRootAsContent: true })) {\n parentNode.insertBefore(beforeFragment, parentElm);\n }\n if (!isEmptyNode(schema, splitElm, { checkRootAsContent: true })) {\n parentNode.insertBefore(splitElm, parentElm);\n }\n if (!isEmptyNode(schema, afterFragment, { checkRootAsContent: true })) {\n parentNode.insertBefore(afterFragment, parentElm);\n }\n parentNode.removeChild(parentElm);\n }\n };\n const splitInvalidChildren = (schema, scope, transparentBlocks) => {\n const blocksElements = schema.getBlockElements();\n const rootNode = SugarElement.fromDom(scope);\n const isBlock = el => name(el) in blocksElements;\n const isRoot = el => eq(el, rootNode);\n each$e(fromDom$1(transparentBlocks), transparentBlock => {\n ancestor$4(transparentBlock, isBlock, isRoot).each(parentBlock => {\n const invalidChildren = children(transparentBlock, el => isBlock(el) && !schema.isValidChild(name(parentBlock), name(el)));\n if (invalidChildren.length > 0) {\n const stateScope = parentElement(parentBlock);\n each$e(invalidChildren, child => {\n ancestor$4(child, isBlock, isRoot).each(parentBlock => {\n split$2(schema, parentBlock.dom, child.dom);\n });\n });\n stateScope.each(scope => updateBlockStateOnChildren(schema, scope.dom));\n }\n });\n });\n };\n const unwrapInvalidChildren = (schema, scope, transparentBlocks) => {\n each$e([\n ...transparentBlocks,\n ...isTransparentBlock(schema, scope) ? [scope] : []\n ], block => each$e(descendants(SugarElement.fromDom(block), block.nodeName.toLowerCase()), elm => {\n if (isTransparentInline(schema, elm.dom)) {\n unwrap(elm);\n }\n }));\n };\n const updateChildren = (schema, scope) => {\n const transparentBlocks = updateBlockStateOnChildren(schema, scope);\n splitInvalidChildren(schema, scope, transparentBlocks);\n unwrapInvalidChildren(schema, scope, transparentBlocks);\n };\n const updateElement = (schema, target) => {\n if (isTransparentElement(schema, target)) {\n const blocksSelector = makeSelectorFromSchemaMap(schema.getBlockElements());\n updateTransparent(blocksSelector, target);\n }\n };\n const updateCaret = (schema, root, caretParent) => {\n const isRoot = el => eq(el, SugarElement.fromDom(root));\n const parents = parents$1(SugarElement.fromDom(caretParent), isRoot);\n get$b(parents, parents.length - 2).filter(isElement$7).fold(() => updateChildren(schema, root), scope => updateChildren(schema, scope.dom));\n };\n const hasBlockAttr = el => el.hasAttribute(transparentBlockAttr);\n const isTransparentElementName = (schema, name) => has$2(schema.getTransparentElements(), name);\n const isTransparentElement = (schema, node) => isElement$6(node) && isTransparentElementName(schema, node.nodeName);\n const isTransparentBlock = (schema, node) => isTransparentElement(schema, node) && hasBlockAttr(node);\n const isTransparentInline = (schema, node) => isTransparentElement(schema, node) && !hasBlockAttr(node);\n const isTransparentAstBlock = (schema, node) => node.type === 1 && isTransparentElementName(schema, node.name) && isString(node.attr(transparentBlockAttr));\n\n const browser$2 = detect$1().browser;\n const firstElement = nodes => find$2(nodes, isElement$7);\n const getTableCaptionDeltaY = elm => {\n if (browser$2.isFirefox() && name(elm) === 'table') {\n return firstElement(children$1(elm)).filter(elm => {\n return name(elm) === 'caption';\n }).bind(caption => {\n return firstElement(nextSiblings(caption)).map(body => {\n const bodyTop = body.dom.offsetTop;\n const captionTop = caption.dom.offsetTop;\n const captionHeight = caption.dom.offsetHeight;\n return bodyTop <= captionTop ? -captionHeight : 0;\n });\n }).getOr(0);\n } else {\n return 0;\n }\n };\n const hasChild = (elm, child) => elm.children && contains$2(elm.children, child);\n const getPos = (body, elm, rootElm) => {\n let x = 0, y = 0;\n const doc = body.ownerDocument;\n rootElm = rootElm ? rootElm : body;\n if (elm) {\n if (rootElm === body && elm.getBoundingClientRect && get$7(SugarElement.fromDom(body), 'position') === 'static') {\n const pos = elm.getBoundingClientRect();\n x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;\n y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;\n return {\n x,\n y\n };\n }\n let offsetParent = elm;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n const castOffsetParent = offsetParent;\n x += castOffsetParent.offsetLeft || 0;\n y += castOffsetParent.offsetTop || 0;\n offsetParent = castOffsetParent.offsetParent;\n }\n offsetParent = elm.parentNode;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n x -= offsetParent.scrollLeft || 0;\n y -= offsetParent.scrollTop || 0;\n offsetParent = offsetParent.parentNode;\n }\n y += getTableCaptionDeltaY(SugarElement.fromDom(elm));\n }\n return {\n x,\n y\n };\n };\n\n const StyleSheetLoader = (documentOrShadowRoot, settings = {}) => {\n let idCount = 0;\n const loadedStates = {};\n const edos = SugarElement.fromDom(documentOrShadowRoot);\n const doc = documentOrOwner(edos);\n const _setReferrerPolicy = referrerPolicy => {\n settings.referrerPolicy = referrerPolicy;\n };\n const _setContentCssCors = contentCssCors => {\n settings.contentCssCors = contentCssCors;\n };\n const addStyle = element => {\n append$1(getStyleContainer(edos), element);\n };\n const removeStyle = id => {\n const styleContainer = getStyleContainer(edos);\n descendant$1(styleContainer, '#' + id).each(remove$4);\n };\n const getOrCreateState = url => get$a(loadedStates, url).getOrThunk(() => ({\n id: 'mce-u' + idCount++,\n passed: [],\n failed: [],\n count: 0\n }));\n const load = url => new Promise((success, failure) => {\n let link;\n const urlWithSuffix = Tools._addCacheSuffix(url);\n const state = getOrCreateState(urlWithSuffix);\n loadedStates[urlWithSuffix] = state;\n state.count++;\n const resolve = (callbacks, status) => {\n each$e(callbacks, call);\n state.status = status;\n state.passed = [];\n state.failed = [];\n if (link) {\n link.onload = null;\n link.onerror = null;\n link = null;\n }\n };\n const passed = () => resolve(state.passed, 2);\n const failed = () => resolve(state.failed, 3);\n if (success) {\n state.passed.push(success);\n }\n if (failure) {\n state.failed.push(failure);\n }\n if (state.status === 1) {\n return;\n }\n if (state.status === 2) {\n passed();\n return;\n }\n if (state.status === 3) {\n failed();\n return;\n }\n state.status = 1;\n const linkElem = SugarElement.fromTag('link', doc.dom);\n setAll$1(linkElem, {\n rel: 'stylesheet',\n type: 'text/css',\n id: state.id\n });\n if (settings.contentCssCors) {\n set$3(linkElem, 'crossOrigin', 'anonymous');\n }\n if (settings.referrerPolicy) {\n set$3(linkElem, 'referrerpolicy', settings.referrerPolicy);\n }\n link = linkElem.dom;\n link.onload = passed;\n link.onerror = failed;\n addStyle(linkElem);\n set$3(linkElem, 'href', urlWithSuffix);\n });\n const loadRawCss = (key, css) => {\n const state = getOrCreateState(key);\n loadedStates[key] = state;\n state.count++;\n const styleElem = SugarElement.fromTag('style', doc.dom);\n setAll$1(styleElem, {\n rel: 'stylesheet',\n type: 'text/css',\n id: state.id\n });\n styleElem.dom.innerHTML = css;\n addStyle(styleElem);\n };\n const loadAll = urls => {\n const loadedUrls = Promise.allSettled(map$3(urls, url => load(url).then(constant(url))));\n return loadedUrls.then(results => {\n const parts = partition$2(results, r => r.status === 'fulfilled');\n if (parts.fail.length > 0) {\n return Promise.reject(map$3(parts.fail, result => result.reason));\n } else {\n return map$3(parts.pass, result => result.value);\n }\n });\n };\n const unload = url => {\n const urlWithSuffix = Tools._addCacheSuffix(url);\n get$a(loadedStates, urlWithSuffix).each(state => {\n const count = --state.count;\n if (count === 0) {\n delete loadedStates[urlWithSuffix];\n removeStyle(state.id);\n }\n });\n };\n const unloadRawCss = key => {\n get$a(loadedStates, key).each(state => {\n const count = --state.count;\n if (count === 0) {\n delete loadedStates[key];\n removeStyle(state.id);\n }\n });\n };\n const unloadAll = urls => {\n each$e(urls, url => {\n unload(url);\n });\n };\n return {\n load,\n loadRawCss,\n loadAll,\n unload,\n unloadRawCss,\n unloadAll,\n _setReferrerPolicy,\n _setContentCssCors\n };\n };\n\n const create$c = () => {\n const map = new WeakMap();\n const forElement = (referenceElement, settings) => {\n const root = getRootNode(referenceElement);\n const rootDom = root.dom;\n return Optional.from(map.get(rootDom)).getOrThunk(() => {\n const sl = StyleSheetLoader(rootDom, settings);\n map.set(rootDom, sl);\n return sl;\n });\n };\n return { forElement };\n };\n const instance = create$c();\n\n const isSpan = node => node.nodeName.toLowerCase() === 'span';\n const isInlineContent = (node, schema) => isNonNullable(node) && (isContent$1(schema, node) || schema.isInline(node.nodeName.toLowerCase()));\n const surroundedByInlineContent = (node, root, schema) => {\n const prev = new DomTreeWalker(node, root).prev(false);\n const next = new DomTreeWalker(node, root).next(false);\n const prevIsInline = isUndefined(prev) || isInlineContent(prev, schema);\n const nextIsInline = isUndefined(next) || isInlineContent(next, schema);\n return prevIsInline && nextIsInline;\n };\n const isBookmarkNode$2 = node => isSpan(node) && node.getAttribute('data-mce-type') === 'bookmark';\n const isKeepTextNode = (node, root, schema) => isText$b(node) && node.data.length > 0 && surroundedByInlineContent(node, root, schema);\n const isKeepElement = node => isElement$6(node) ? node.childNodes.length > 0 : false;\n const isDocument = node => isDocumentFragment(node) || isDocument$1(node);\n const trimNode = (dom, node, schema, root) => {\n var _a;\n const rootNode = root || node;\n if (isElement$6(node) && isBookmarkNode$2(node)) {\n return node;\n }\n const children = node.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n trimNode(dom, children[i], schema, rootNode);\n }\n if (isElement$6(node)) {\n const currentChildren = node.childNodes;\n if (currentChildren.length === 1 && isBookmarkNode$2(currentChildren[0])) {\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(currentChildren[0], node);\n }\n }\n if (!isDocument(node) && !isContent$1(schema, node) && !isKeepElement(node) && !isKeepTextNode(node, rootNode, schema)) {\n dom.remove(node);\n }\n return node;\n };\n\n const makeMap$3 = Tools.makeMap;\n const attrsCharsRegExp = /[&<>\\\"\\u0060\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n const textCharsRegExp = /[<>&\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n const rawCharsRegExp = /[<>&\\\"\\']/g;\n const entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;\n const asciiMap = {\n 128: '\\u20AC',\n 130: '\\u201A',\n 131: '\\u0192',\n 132: '\\u201E',\n 133: '\\u2026',\n 134: '\\u2020',\n 135: '\\u2021',\n 136: '\\u02c6',\n 137: '\\u2030',\n 138: '\\u0160',\n 139: '\\u2039',\n 140: '\\u0152',\n 142: '\\u017d',\n 145: '\\u2018',\n 146: '\\u2019',\n 147: '\\u201C',\n 148: '\\u201D',\n 149: '\\u2022',\n 150: '\\u2013',\n 151: '\\u2014',\n 152: '\\u02DC',\n 153: '\\u2122',\n 154: '\\u0161',\n 155: '\\u203A',\n 156: '\\u0153',\n 158: '\\u017e',\n 159: '\\u0178'\n };\n const baseEntities = {\n '\"': '"',\n '\\'': ''',\n '<': '<',\n '>': '>',\n '&': '&',\n '`': '`'\n };\n const reverseEntities = {\n '<': '<',\n '>': '>',\n '&': '&',\n '"': '\"',\n ''': `'`\n };\n const nativeDecode = text => {\n const elm = SugarElement.fromTag('div').dom;\n elm.innerHTML = text;\n return elm.textContent || elm.innerText || text;\n };\n const buildEntitiesLookup = (items, radix) => {\n const lookup = {};\n if (items) {\n const itemList = items.split(',');\n radix = radix || 10;\n for (let i = 0; i < itemList.length; i += 2) {\n const chr = String.fromCharCode(parseInt(itemList[i], radix));\n if (!baseEntities[chr]) {\n const entity = '&' + itemList[i + 1] + ';';\n lookup[chr] = entity;\n lookup[entity] = chr;\n }\n }\n return lookup;\n } else {\n return undefined;\n }\n };\n const namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32);\n const encodeRaw = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n return baseEntities[chr] || chr;\n });\n const encodeAllRaw = text => ('' + text).replace(rawCharsRegExp, chr => {\n return baseEntities[chr] || chr;\n });\n const encodeNumeric = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';\n });\n const encodeNamed = (text, attr, entities) => {\n const resolveEntities = entities || namedEntities;\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n return baseEntities[chr] || resolveEntities[chr] || chr;\n });\n };\n const getEncodeFunc = (name, entities) => {\n const entitiesMap = buildEntitiesLookup(entities) || namedEntities;\n const encodeNamedAndNumeric = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n if (baseEntities[chr] !== undefined) {\n return baseEntities[chr];\n }\n if (entitiesMap[chr] !== undefined) {\n return entitiesMap[chr];\n }\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return '&#' + chr.charCodeAt(0) + ';';\n });\n const encodeCustomNamed = (text, attr) => {\n return encodeNamed(text, attr, entitiesMap);\n };\n const nameMap = makeMap$3(name.replace(/\\+/g, ','));\n if (nameMap.named && nameMap.numeric) {\n return encodeNamedAndNumeric;\n }\n if (nameMap.named) {\n if (entities) {\n return encodeCustomNamed;\n }\n return encodeNamed;\n }\n if (nameMap.numeric) {\n return encodeNumeric;\n }\n return encodeRaw;\n };\n const decode = text => text.replace(entityRegExp, (all, numeric) => {\n if (numeric) {\n if (numeric.charAt(0).toLowerCase() === 'x') {\n numeric = parseInt(numeric.substr(1), 16);\n } else {\n numeric = parseInt(numeric, 10);\n }\n if (numeric > 65535) {\n numeric -= 65536;\n return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023));\n }\n return asciiMap[numeric] || String.fromCharCode(numeric);\n }\n return reverseEntities[all] || namedEntities[all] || nativeDecode(all);\n });\n const Entities = {\n encodeRaw,\n encodeAllRaw,\n encodeNumeric,\n encodeNamed,\n getEncodeFunc,\n decode\n };\n\n const split$1 = (items, delim) => {\n items = Tools.trim(items);\n return items ? items.split(delim || ' ') : [];\n };\n const patternToRegExp = str => new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');\n const isRegExp$1 = obj => isObject(obj) && obj.source && Object.prototype.toString.call(obj) === '[object RegExp]';\n const deepCloneElementRule = obj => {\n const helper = value => {\n if (isArray$1(value)) {\n return map$3(value, helper);\n } else if (isRegExp$1(value)) {\n return new RegExp(value.source, value.flags);\n } else if (isObject(value)) {\n return map$2(value, helper);\n } else {\n return value;\n }\n };\n return helper(obj);\n };\n\n const parseCustomElementsRules = value => {\n const customElementRegExp = /^(~)?(.+)$/;\n return bind$3(split$1(value, ','), rule => {\n const matches = customElementRegExp.exec(rule);\n if (matches) {\n const inline = matches[1] === '~';\n const cloneName = inline ? 'span' : 'div';\n const name = matches[2];\n return [{\n cloneName,\n name\n }];\n } else {\n return [];\n }\n });\n };\n\n const getGlobalAttributeSet = type => {\n return Object.freeze([\n 'id',\n 'accesskey',\n 'class',\n 'dir',\n 'lang',\n 'style',\n 'tabindex',\n 'title',\n 'role',\n ...type !== 'html4' ? [\n 'contenteditable',\n 'contextmenu',\n 'draggable',\n 'dropzone',\n 'hidden',\n 'spellcheck',\n 'translate',\n 'itemprop',\n 'itemscope',\n 'itemtype'\n ] : [],\n ...type !== 'html5-strict' ? ['xml:lang'] : []\n ]);\n };\n\n const getElementSetsAsStrings = type => {\n let blockContent;\n let phrasingContent;\n blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul';\n phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment';\n if (type !== 'html4') {\n const transparentContent = 'a ins del canvas map';\n blockContent += ' article aside details dialog figure main header footer hgroup section nav ' + transparentContent;\n phrasingContent += ' audio canvas command data datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen svg';\n }\n if (type !== 'html5-strict') {\n const html4PhrasingContent = 'acronym applet basefont big font strike tt';\n phrasingContent = [\n phrasingContent,\n html4PhrasingContent\n ].join(' ');\n const html4BlockContent = 'center dir isindex noframes';\n blockContent = [\n blockContent,\n html4BlockContent\n ].join(' ');\n }\n const flowContent = [\n blockContent,\n phrasingContent\n ].join(' ');\n return {\n blockContent,\n phrasingContent,\n flowContent\n };\n };\n const getElementSets = type => {\n const {blockContent, phrasingContent, flowContent} = getElementSetsAsStrings(type);\n const toArr = value => {\n return Object.freeze(value.split(' '));\n };\n return Object.freeze({\n blockContent: toArr(blockContent),\n phrasingContent: toArr(phrasingContent),\n flowContent: toArr(flowContent)\n });\n };\n\n const cachedSets = {\n 'html4': cached(() => getElementSets('html4')),\n 'html5': cached(() => getElementSets('html5')),\n 'html5-strict': cached(() => getElementSets('html5-strict'))\n };\n const getElementsPreset = (type, name) => {\n const {blockContent, phrasingContent, flowContent} = cachedSets[type]();\n if (name === 'blocks') {\n return Optional.some(blockContent);\n } else if (name === 'phrasing') {\n return Optional.some(phrasingContent);\n } else if (name === 'flow') {\n return Optional.some(flowContent);\n } else {\n return Optional.none();\n }\n };\n\n const makeSchema = type => {\n const globalAttributes = getGlobalAttributeSet(type);\n const {phrasingContent, flowContent} = getElementSetsAsStrings(type);\n const schema = {};\n const addElement = (name, attributes, children) => {\n schema[name] = {\n attributes: mapToObject(attributes, constant({})),\n attributesOrder: attributes,\n children: mapToObject(children, constant({}))\n };\n };\n const add = (name, attributes = '', children = '') => {\n const childNames = split$1(children);\n const names = split$1(name);\n let ni = names.length;\n const allAttributes = [\n ...globalAttributes,\n ...split$1(attributes)\n ];\n while (ni--) {\n addElement(names[ni], allAttributes.slice(), childNames);\n }\n };\n const addAttrs = (name, attributes) => {\n const names = split$1(name);\n const attrs = split$1(attributes);\n let ni = names.length;\n while (ni--) {\n const schemaItem = schema[names[ni]];\n for (let i = 0, l = attrs.length; i < l; i++) {\n schemaItem.attributes[attrs[i]] = {};\n schemaItem.attributesOrder.push(attrs[i]);\n }\n }\n };\n if (type !== 'html5-strict') {\n const html4PhrasingContent = 'acronym applet basefont big font strike tt';\n each$e(split$1(html4PhrasingContent), name => {\n add(name, '', phrasingContent);\n });\n const html4BlockContent = 'center dir isindex noframes';\n each$e(split$1(html4BlockContent), name => {\n add(name, '', flowContent);\n });\n }\n add('html', 'manifest', 'head body');\n add('head', '', 'base command link meta noscript script style title');\n add('title hr noscript br');\n add('base', 'href target');\n add('link', 'href rel media hreflang type sizes hreflang');\n add('meta', 'name http-equiv content charset');\n add('style', 'media type scoped');\n add('script', 'src async defer type charset');\n add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent);\n add('dd div', '', flowContent);\n add('address dt caption', '', type === 'html4' ? phrasingContent : flowContent);\n add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent);\n add('blockquote', 'cite', flowContent);\n add('ol', 'reversed start type', 'li');\n add('ul', '', 'li');\n add('li', 'value', flowContent);\n add('dl', '', 'dt dd');\n add('a', 'href target rel media hreflang type', type === 'html4' ? phrasingContent : flowContent);\n add('q', 'cite', phrasingContent);\n add('ins del', 'cite datetime', flowContent);\n add('img', 'src sizes srcset alt usemap ismap width height');\n add('iframe', 'src name width height', flowContent);\n add('embed', 'src type width height');\n add('object', 'data type typemustmatch name usemap form width height', [\n flowContent,\n 'param'\n ].join(' '));\n add('param', 'name value');\n add('map', 'name', [\n flowContent,\n 'area'\n ].join(' '));\n add('area', 'alt coords shape href target rel media hreflang type');\n add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : ''));\n add('colgroup', 'span', 'col');\n add('col', 'span');\n add('tbody thead tfoot', '', 'tr');\n add('tr', '', 'td th');\n add('td', 'colspan rowspan headers', flowContent);\n add('th', 'colspan rowspan headers scope abbr', flowContent);\n add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent);\n add('fieldset', 'disabled form name', [\n flowContent,\n 'legend'\n ].join(' '));\n add('label', 'form for', phrasingContent);\n add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width');\n add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent);\n add('select', 'disabled form multiple name required size', 'option optgroup');\n add('optgroup', 'disabled label', 'option');\n add('option', 'disabled label selected value');\n add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap');\n add('menu', 'type label', [\n flowContent,\n 'li'\n ].join(' '));\n add('noscript', '', flowContent);\n if (type !== 'html4') {\n add('wbr');\n add('ruby', '', [\n phrasingContent,\n 'rt rp'\n ].join(' '));\n add('figcaption', '', flowContent);\n add('mark rt rp bdi', '', phrasingContent);\n add('summary', '', [\n phrasingContent,\n 'h1 h2 h3 h4 h5 h6'\n ].join(' '));\n add('canvas', 'width height', flowContent);\n add('data', 'value', phrasingContent);\n add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [\n flowContent,\n 'track source'\n ].join(' '));\n add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [\n flowContent,\n 'track source'\n ].join(' '));\n add('picture', '', 'img source');\n add('source', 'src srcset type media sizes');\n add('track', 'kind src srclang label default');\n add('datalist', '', [\n phrasingContent,\n 'option'\n ].join(' '));\n add('article section nav aside main header footer', '', flowContent);\n add('hgroup', '', 'h1 h2 h3 h4 h5 h6');\n add('figure', '', [\n flowContent,\n 'figcaption'\n ].join(' '));\n add('time', 'datetime', phrasingContent);\n add('dialog', 'open', flowContent);\n add('command', 'type label icon disabled checked radiogroup command');\n add('output', 'for form name', phrasingContent);\n add('progress', 'value max', phrasingContent);\n add('meter', 'value min max low high optimum', phrasingContent);\n add('details', 'open', [\n flowContent,\n 'summary'\n ].join(' '));\n add('keygen', 'autofocus challenge disabled form keytype name');\n addElement('svg', 'id tabindex lang xml:space class style x y width height viewBox preserveAspectRatio zoomAndPan transform'.split(' '), []);\n }\n if (type !== 'html5-strict') {\n addAttrs('script', 'language xml:space');\n addAttrs('style', 'xml:space');\n addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace');\n addAttrs('embed', 'align name hspace vspace');\n addAttrs('param', 'valuetype type');\n addAttrs('a', 'charset name rev shape coords');\n addAttrs('br', 'clear');\n addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace');\n addAttrs('img', 'name longdesc align border hspace vspace');\n addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align');\n addAttrs('font basefont', 'size color face');\n addAttrs('input', 'usemap align');\n addAttrs('select');\n addAttrs('textarea');\n addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align');\n addAttrs('ul', 'type compact');\n addAttrs('li', 'type');\n addAttrs('ol dl menu dir', 'compact');\n addAttrs('pre', 'width xml:space');\n addAttrs('hr', 'align noshade size width');\n addAttrs('isindex', 'prompt');\n addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor');\n addAttrs('col', 'width align char charoff valign');\n addAttrs('colgroup', 'width align char charoff valign');\n addAttrs('thead', 'align char charoff valign');\n addAttrs('tr', 'align char charoff valign bgcolor');\n addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height');\n addAttrs('form', 'accept');\n addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height');\n addAttrs('tfoot', 'align char charoff valign');\n addAttrs('tbody', 'align char charoff valign');\n addAttrs('area', 'nohref');\n addAttrs('body', 'background bgcolor text link vlink alink');\n }\n if (type !== 'html4') {\n addAttrs('input button select textarea', 'autofocus');\n addAttrs('input textarea', 'placeholder');\n addAttrs('a', 'download');\n addAttrs('link script img', 'crossorigin');\n addAttrs('img', 'loading');\n addAttrs('iframe', 'sandbox seamless allow allowfullscreen loading referrerpolicy');\n }\n if (type !== 'html4') {\n each$e([\n schema.video,\n schema.audio\n ], item => {\n delete item.children.audio;\n delete item.children.video;\n });\n }\n each$e(split$1('a form meter progress dfn'), name => {\n if (schema[name]) {\n delete schema[name].children[name];\n }\n });\n delete schema.caption.children.table;\n delete schema.script;\n return schema;\n };\n\n const prefixToOperation = prefix => prefix === '-' ? 'remove' : 'add';\n const parseValidChild = name => {\n const validChildRegExp = /^(@?)([A-Za-z0-9_\\-.\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u203f-\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]+)$/;\n return Optional.from(validChildRegExp.exec(name)).map(matches => ({\n preset: matches[1] === '@',\n name: matches[2]\n }));\n };\n const parseValidChildrenRules = value => {\n const childRuleRegExp = /^([+\\-]?)([A-Za-z0-9_\\-.\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u203f-\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]+)\\[([^\\]]+)]$/;\n return bind$3(split$1(value, ','), rule => {\n const matches = childRuleRegExp.exec(rule);\n if (matches) {\n const prefix = matches[1];\n const operation = prefix ? prefixToOperation(prefix) : 'replace';\n const name = matches[2];\n const validChildren = bind$3(split$1(matches[3], '|'), validChild => parseValidChild(validChild).toArray());\n return [{\n operation,\n name,\n validChildren\n }];\n } else {\n return [];\n }\n });\n };\n\n const parseValidElementsAttrDataIntoElement = (attrData, targetElement) => {\n const attrRuleRegExp = /^([!\\-])?(\\w+[\\\\:]:\\w+|[^=~<]+)?(?:([=~<])(.*))?$/;\n const hasPatternsRegExp = /[*?+]/;\n const {attributes, attributesOrder} = targetElement;\n return each$e(split$1(attrData, '|'), rule => {\n const matches = attrRuleRegExp.exec(rule);\n if (matches) {\n const attr = {};\n const attrType = matches[1];\n const attrName = matches[2].replace(/[\\\\:]:/g, ':');\n const attrPrefix = matches[3];\n const value = matches[4];\n if (attrType === '!') {\n targetElement.attributesRequired = targetElement.attributesRequired || [];\n targetElement.attributesRequired.push(attrName);\n attr.required = true;\n }\n if (attrType === '-') {\n delete attributes[attrName];\n attributesOrder.splice(Tools.inArray(attributesOrder, attrName), 1);\n return;\n }\n if (attrPrefix) {\n if (attrPrefix === '=') {\n targetElement.attributesDefault = targetElement.attributesDefault || [];\n targetElement.attributesDefault.push({\n name: attrName,\n value\n });\n attr.defaultValue = value;\n } else if (attrPrefix === '~') {\n targetElement.attributesForced = targetElement.attributesForced || [];\n targetElement.attributesForced.push({\n name: attrName,\n value\n });\n attr.forcedValue = value;\n } else if (attrPrefix === '<') {\n attr.validValues = Tools.makeMap(value, '?');\n }\n }\n if (hasPatternsRegExp.test(attrName)) {\n const attrPattern = attr;\n targetElement.attributePatterns = targetElement.attributePatterns || [];\n attrPattern.pattern = patternToRegExp(attrName);\n targetElement.attributePatterns.push(attrPattern);\n } else {\n if (!attributes[attrName]) {\n attributesOrder.push(attrName);\n }\n attributes[attrName] = attr;\n }\n }\n });\n };\n const cloneAttributesInto = (from, to) => {\n each$d(from.attributes, (value, key) => {\n to.attributes[key] = value;\n });\n to.attributesOrder.push(...from.attributesOrder);\n };\n const parseValidElementsRules = (globalElement, validElements) => {\n const elementRuleRegExp = /^([#+\\-])?([^\\[!\\/]+)(?:\\/([^\\[!]+))?(?:(!?)\\[([^\\]]+)])?$/;\n return bind$3(split$1(validElements, ','), rule => {\n const matches = elementRuleRegExp.exec(rule);\n if (matches) {\n const prefix = matches[1];\n const elementName = matches[2];\n const outputName = matches[3];\n const attrsPrefix = matches[4];\n const attrData = matches[5];\n const element = {\n attributes: {},\n attributesOrder: []\n };\n globalElement.each(el => cloneAttributesInto(el, element));\n if (prefix === '#') {\n element.paddEmpty = true;\n } else if (prefix === '-') {\n element.removeEmpty = true;\n }\n if (attrsPrefix === '!') {\n element.removeEmptyAttrs = true;\n }\n if (attrData) {\n parseValidElementsAttrDataIntoElement(attrData, element);\n }\n if (outputName) {\n element.outputName = elementName;\n }\n if (elementName === '@') {\n if (globalElement.isNone()) {\n globalElement = Optional.some(element);\n } else {\n return [];\n }\n }\n return [outputName ? {\n name: elementName,\n element,\n aliasName: outputName\n } : {\n name: elementName,\n element\n }];\n } else {\n return [];\n }\n });\n };\n\n const mapCache = {};\n const makeMap$2 = Tools.makeMap, each$b = Tools.each, extend$2 = Tools.extend, explode$2 = Tools.explode;\n const createMap = (defaultValue, extendWith = {}) => {\n const value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' '));\n return extend$2(value, extendWith);\n };\n const getTextRootBlockElements = schema => createMap('td th li dt dd figcaption caption details summary', schema.getTextBlockElements());\n const compileElementMap = (value, mode) => {\n if (value) {\n const styles = {};\n if (isString(value)) {\n value = { '*': value };\n }\n each$b(value, (value, key) => {\n styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$2(value, /[, ]/);\n });\n return styles;\n } else {\n return undefined;\n }\n };\n const Schema = (settings = {}) => {\n var _a;\n const elements = {};\n const children = {};\n let patternElements = [];\n const customElementsMap = {};\n const specialElements = {};\n const createLookupTable = (option, defaultValue, extendWith) => {\n const value = settings[option];\n if (!value) {\n let newValue = mapCache[option];\n if (!newValue) {\n newValue = createMap(defaultValue, extendWith);\n mapCache[option] = newValue;\n }\n return newValue;\n } else {\n return makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/));\n }\n };\n const schemaType = (_a = settings.schema) !== null && _a !== void 0 ? _a : 'html5';\n const schemaItems = makeSchema(schemaType);\n if (settings.verify_html === false) {\n settings.valid_elements = '*[*]';\n }\n const validStyles = compileElementMap(settings.valid_styles);\n const invalidStyles = compileElementMap(settings.invalid_styles, 'map');\n const validClasses = compileElementMap(settings.valid_classes, 'map');\n const whitespaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code');\n const selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');\n const voidElementsMap = createLookupTable('void_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track');\n const boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls allowfullscreen');\n const nonEmptyOrMoveCaretBeforeOnEnter = 'td th iframe video audio object script code';\n const nonEmptyElementsMap = createLookupTable('non_empty_elements', nonEmptyOrMoveCaretBeforeOnEnter + ' pre svg textarea summary', voidElementsMap);\n const moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', nonEmptyOrMoveCaretBeforeOnEnter + ' table', voidElementsMap);\n const headings = 'h1 h2 h3 h4 h5 h6';\n const textBlockElementsMap = createLookupTable('text_block_elements', headings + ' p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure');\n const blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary html body multicol listing', textBlockElementsMap);\n const textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font s strike u var cite ' + 'dfn code mark q sup sub samp');\n const transparentElementsMap = createLookupTable('transparent_elements', 'a ins del canvas map');\n const wrapBlockElementsMap = createLookupTable('wrap_block_elements', 'pre ' + headings);\n each$b('script noscript iframe noframes noembed title style textarea xmp plaintext'.split(' '), name => {\n specialElements[name] = new RegExp(']*>', 'gi');\n });\n const addValidElements = validElements => {\n const globalElement = Optional.from(elements['@']);\n const hasPatternsRegExp = /[*?+]/;\n each$e(parseValidElementsRules(globalElement, validElements !== null && validElements !== void 0 ? validElements : ''), ({name, element, aliasName}) => {\n if (aliasName) {\n elements[aliasName] = element;\n }\n if (hasPatternsRegExp.test(name)) {\n const patternElement = element;\n patternElement.pattern = patternToRegExp(name);\n patternElements.push(patternElement);\n } else {\n elements[name] = element;\n }\n });\n };\n const setValidElements = validElements => {\n patternElements = [];\n each$e(keys(elements), name => {\n delete elements[name];\n });\n addValidElements(validElements);\n };\n const addCustomElement = (name, spec) => {\n var _a, _b;\n delete mapCache.text_block_elements;\n delete mapCache.block_elements;\n const inline = spec.extends ? !isBlock(spec.extends) : false;\n const cloneName = spec.extends;\n children[name] = cloneName ? children[cloneName] : {};\n customElementsMap[name] = cloneName !== null && cloneName !== void 0 ? cloneName : name;\n nonEmptyElementsMap[name.toUpperCase()] = {};\n nonEmptyElementsMap[name] = {};\n if (!inline) {\n blockElementsMap[name.toUpperCase()] = {};\n blockElementsMap[name] = {};\n }\n if (cloneName && !elements[name] && elements[cloneName]) {\n const customRule = deepCloneElementRule(elements[cloneName]);\n delete customRule.removeEmptyAttrs;\n delete customRule.removeEmpty;\n elements[name] = customRule;\n } else {\n elements[name] = {\n attributesOrder: [],\n attributes: {}\n };\n }\n if (isArray$1(spec.attributes)) {\n const processAttrName = name => {\n customRule.attributesOrder.push(name);\n customRule.attributes[name] = {};\n };\n const customRule = (_a = elements[name]) !== null && _a !== void 0 ? _a : {};\n delete customRule.attributesDefault;\n delete customRule.attributesForced;\n delete customRule.attributePatterns;\n delete customRule.attributesRequired;\n customRule.attributesOrder = [];\n customRule.attributes = {};\n each$e(spec.attributes, attrName => {\n const globalAttrs = getGlobalAttributeSet(schemaType);\n parseValidChild(attrName).each(({preset, name}) => {\n if (preset) {\n if (name === 'global') {\n each$e(globalAttrs, processAttrName);\n }\n } else {\n processAttrName(name);\n }\n });\n });\n elements[name] = customRule;\n }\n if (isBoolean(spec.padEmpty)) {\n const customRule = (_b = elements[name]) !== null && _b !== void 0 ? _b : {};\n customRule.paddEmpty = spec.padEmpty;\n elements[name] = customRule;\n }\n if (isArray$1(spec.children)) {\n const customElementChildren = {};\n const processNodeName = name => {\n customElementChildren[name] = {};\n };\n const processPreset = name => {\n getElementsPreset(schemaType, name).each(names => {\n each$e(names, processNodeName);\n });\n };\n each$e(spec.children, child => {\n parseValidChild(child).each(({preset, name}) => {\n if (preset) {\n processPreset(name);\n } else {\n processNodeName(name);\n }\n });\n });\n children[name] = customElementChildren;\n }\n if (cloneName) {\n each$d(children, (element, elmName) => {\n if (element[cloneName]) {\n children[elmName] = element = extend$2({}, children[elmName]);\n element[name] = element[cloneName];\n }\n });\n }\n };\n const addCustomElementsFromString = customElements => {\n each$e(parseCustomElementsRules(customElements !== null && customElements !== void 0 ? customElements : ''), ({name, cloneName}) => {\n addCustomElement(name, { extends: cloneName });\n });\n };\n const addCustomElements = customElements => {\n if (isObject(customElements)) {\n each$d(customElements, (spec, name) => addCustomElement(name, spec));\n } else if (isString(customElements)) {\n addCustomElementsFromString(customElements);\n }\n };\n const addValidChildren = validChildren => {\n each$e(parseValidChildrenRules(validChildren !== null && validChildren !== void 0 ? validChildren : ''), ({operation, name, validChildren}) => {\n const parent = operation === 'replace' ? { '#comment': {} } : children[name];\n const processNodeName = name => {\n if (operation === 'remove') {\n delete parent[name];\n } else {\n parent[name] = {};\n }\n };\n const processPreset = name => {\n getElementsPreset(schemaType, name).each(names => {\n each$e(names, processNodeName);\n });\n };\n each$e(validChildren, ({preset, name}) => {\n if (preset) {\n processPreset(name);\n } else {\n processNodeName(name);\n }\n });\n children[name] = parent;\n });\n };\n const getElementRule = name => {\n const element = elements[name];\n if (element) {\n return element;\n }\n let i = patternElements.length;\n while (i--) {\n const patternElement = patternElements[i];\n if (patternElement.pattern.test(name)) {\n return patternElement;\n }\n }\n return undefined;\n };\n const setup = () => {\n if (!settings.valid_elements) {\n each$b(schemaItems, (element, name) => {\n elements[name] = {\n attributes: element.attributes,\n attributesOrder: element.attributesOrder\n };\n children[name] = element.children;\n });\n each$b(split$1('strong/b em/i'), item => {\n const items = split$1(item, '/');\n elements[items[1]].outputName = items[0];\n });\n each$b(textInlineElementsMap, (_val, name) => {\n if (elements[name]) {\n if (settings.padd_empty_block_inline_children) {\n elements[name].paddInEmptyBlock = true;\n }\n elements[name].removeEmpty = true;\n }\n });\n each$b(split$1('ol ul blockquote a table tbody'), name => {\n if (elements[name]) {\n elements[name].removeEmpty = true;\n }\n });\n each$b(split$1('p h1 h2 h3 h4 h5 h6 th td pre div address caption li summary'), name => {\n if (elements[name]) {\n elements[name].paddEmpty = true;\n }\n });\n each$b(split$1('span'), name => {\n elements[name].removeEmptyAttrs = true;\n });\n } else {\n setValidElements(settings.valid_elements);\n each$b(schemaItems, (element, name) => {\n children[name] = element.children;\n });\n }\n delete elements.svg;\n addCustomElements(settings.custom_elements);\n addValidChildren(settings.valid_children);\n addValidElements(settings.extended_valid_elements);\n addValidChildren('+ol[ul|ol],+ul[ul|ol]');\n each$b({\n dd: 'dl',\n dt: 'dl',\n li: 'ul ol',\n td: 'tr',\n th: 'tr',\n tr: 'tbody thead tfoot',\n tbody: 'table',\n thead: 'table',\n tfoot: 'table',\n legend: 'fieldset',\n area: 'map',\n param: 'video audio object'\n }, (parents, item) => {\n if (elements[item]) {\n elements[item].parentsRequired = split$1(parents);\n }\n });\n if (settings.invalid_elements) {\n each$b(explode$2(settings.invalid_elements), item => {\n if (elements[item]) {\n delete elements[item];\n }\n });\n }\n if (!getElementRule('span')) {\n addValidElements('span[!data-mce-type|*]');\n }\n };\n const getValidStyles = constant(validStyles);\n const getInvalidStyles = constant(invalidStyles);\n const getValidClasses = constant(validClasses);\n const getBoolAttrs = constant(boolAttrMap);\n const getBlockElements = constant(blockElementsMap);\n const getTextBlockElements = constant(textBlockElementsMap);\n const getTextInlineElements = constant(textInlineElementsMap);\n const getVoidElements = constant(Object.seal(voidElementsMap));\n const getSelfClosingElements = constant(selfClosingElementsMap);\n const getNonEmptyElements = constant(nonEmptyElementsMap);\n const getMoveCaretBeforeOnEnterElements = constant(moveCaretBeforeOnEnterElementsMap);\n const getWhitespaceElements = constant(whitespaceElementsMap);\n const getTransparentElements = constant(transparentElementsMap);\n const getWrapBlockElements = constant(wrapBlockElementsMap);\n const getSpecialElements = constant(Object.seal(specialElements));\n const isValidChild = (name, child) => {\n const parent = children[name.toLowerCase()];\n return !!(parent && parent[child.toLowerCase()]);\n };\n const isValid = (name, attr) => {\n const rule = getElementRule(name);\n if (rule) {\n if (attr) {\n if (rule.attributes[attr]) {\n return true;\n }\n const attrPatterns = rule.attributePatterns;\n if (attrPatterns) {\n let i = attrPatterns.length;\n while (i--) {\n if (attrPatterns[i].pattern.test(attr)) {\n return true;\n }\n }\n }\n } else {\n return true;\n }\n }\n return false;\n };\n const isBlock = name => has$2(getBlockElements(), name);\n const isInline = name => !startsWith(name, '#') && isValid(name) && !isBlock(name);\n const isWrapper = name => has$2(getWrapBlockElements(), name) || isInline(name);\n const getCustomElements = constant(customElementsMap);\n setup();\n return {\n type: schemaType,\n children,\n elements,\n getValidStyles,\n getValidClasses,\n getBlockElements,\n getInvalidStyles,\n getVoidElements,\n getTextBlockElements,\n getTextInlineElements,\n getBoolAttrs,\n getElementRule,\n getSelfClosingElements,\n getNonEmptyElements,\n getMoveCaretBeforeOnEnterElements,\n getWhitespaceElements,\n getTransparentElements,\n getSpecialElements,\n isValidChild,\n isValid,\n isBlock,\n isInline,\n isWrapper,\n getCustomElements,\n addValidElements,\n setValidElements,\n addCustomElements,\n addValidChildren\n };\n };\n\n const hexColour = value => ({ value: normalizeHex(value) });\n const normalizeHex = hex => removeLeading(hex, '#').toUpperCase();\n const toHex = component => {\n const hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n const fromRgba = rgbaColour => {\n const value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n const rgbRegex = /^\\s*rgb\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*\\)\\s*$/i;\n const rgbaRegex = /^\\s*rgba\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*((?:\\d?\\.\\d+|\\d+)%?)\\s*\\)\\s*$/i;\n const rgbaColour = (red, green, blue, alpha) => ({\n red,\n green,\n blue,\n alpha\n });\n const fromStringValues = (red, green, blue, alpha) => {\n const r = parseInt(red, 10);\n const g = parseInt(green, 10);\n const b = parseInt(blue, 10);\n const a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n const getColorFormat = colorString => {\n if (rgbRegex.test(colorString)) {\n return 'rgb';\n } else if (rgbaRegex.test(colorString)) {\n return 'rgba';\n }\n return 'other';\n };\n const fromString = rgbaString => {\n const rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n const rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n const toString = rgba => `rgba(${ rgba.red },${ rgba.green },${ rgba.blue },${ rgba.alpha })`;\n\n const rgbaToHexString = color => fromString(color).map(fromRgba).map(h => '#' + h.value).getOr(color);\n\n const Styles = (settings = {}, schema) => {\n const urlOrStrRegExp = /(?:url(?:(?:\\(\\s*\\\"([^\\\"]+)\\\"\\s*\\))|(?:\\(\\s*\\'([^\\']+)\\'\\s*\\))|(?:\\(\\s*([^)\\s]+)\\s*\\))))|(?:\\'([^\\']+)\\')|(?:\\\"([^\\\"]+)\\\")/gi;\n const styleRegExp = /\\s*([^:]+):\\s*([^;]+);?/g;\n const trimRightRegExp = /\\s+$/;\n const encodingLookup = {};\n let validStyles;\n let invalidStyles;\n const invisibleChar = zeroWidth;\n if (schema) {\n validStyles = schema.getValidStyles();\n invalidStyles = schema.getInvalidStyles();\n }\n const encodingItems = (`\\\\\" \\\\' \\\\; \\\\: ; : ` + invisibleChar).split(' ');\n for (let i = 0; i < encodingItems.length; i++) {\n encodingLookup[encodingItems[i]] = invisibleChar + i;\n encodingLookup[invisibleChar + i] = encodingItems[i];\n }\n const self = {\n parse: css => {\n const styles = {};\n let isEncoded = false;\n const urlConverter = settings.url_converter;\n const urlConverterScope = settings.url_converter_scope || self;\n const compress = (prefix, suffix, noJoin) => {\n const top = styles[prefix + '-top' + suffix];\n if (!top) {\n return;\n }\n const right = styles[prefix + '-right' + suffix];\n if (!right) {\n return;\n }\n const bottom = styles[prefix + '-bottom' + suffix];\n if (!bottom) {\n return;\n }\n const left = styles[prefix + '-left' + suffix];\n if (!left) {\n return;\n }\n const box = [\n top,\n right,\n bottom,\n left\n ];\n let i = box.length - 1;\n while (i--) {\n if (box[i] !== box[i + 1]) {\n break;\n }\n }\n if (i > -1 && noJoin) {\n return;\n }\n styles[prefix + suffix] = i === -1 ? box[0] : box.join(' ');\n delete styles[prefix + '-top' + suffix];\n delete styles[prefix + '-right' + suffix];\n delete styles[prefix + '-bottom' + suffix];\n delete styles[prefix + '-left' + suffix];\n };\n const canCompress = key => {\n const value = styles[key];\n if (!value) {\n return;\n }\n const values = value.indexOf(',') > -1 ? [value] : value.split(' ');\n let i = values.length;\n while (i--) {\n if (values[i] !== values[0]) {\n return false;\n }\n }\n styles[key] = values[0];\n return true;\n };\n const compress2 = (target, a, b, c) => {\n if (!canCompress(a)) {\n return;\n }\n if (!canCompress(b)) {\n return;\n }\n if (!canCompress(c)) {\n return;\n }\n styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];\n delete styles[a];\n delete styles[b];\n delete styles[c];\n };\n const encode = str => {\n isEncoded = true;\n return encodingLookup[str];\n };\n const decode = (str, keepSlashes) => {\n if (isEncoded) {\n str = str.replace(/\\uFEFF[0-9]/g, str => {\n return encodingLookup[str];\n });\n }\n if (!keepSlashes) {\n str = str.replace(/\\\\([\\'\\\";:])/g, '$1');\n }\n return str;\n };\n const decodeSingleHexSequence = escSeq => {\n return String.fromCharCode(parseInt(escSeq.slice(1), 16));\n };\n const decodeHexSequences = value => {\n return value.replace(/\\\\[0-9a-f]+/gi, decodeSingleHexSequence);\n };\n const processUrl = (match, url, url2, url3, str, str2) => {\n str = str || str2;\n if (str) {\n str = decode(str);\n return `'` + str.replace(/\\'/g, `\\\\'`) + `'`;\n }\n url = decode(url || url2 || url3 || '');\n if (!settings.allow_script_urls) {\n const scriptUrl = url.replace(/[\\s\\r\\n]+/g, '');\n if (/(java|vb)script:/i.test(scriptUrl)) {\n return '';\n }\n if (!settings.allow_svg_data_urls && /^data:image\\/svg/i.test(scriptUrl)) {\n return '';\n }\n }\n if (urlConverter) {\n url = urlConverter.call(urlConverterScope, url, 'style');\n }\n return `url('` + url.replace(/\\'/g, `\\\\'`) + `')`;\n };\n if (css) {\n css = css.replace(/[\\u0000-\\u001F]/g, '');\n css = css.replace(/\\\\[\\\"\\';:\\uFEFF]/g, encode).replace(/\\\"[^\\\"]+\\\"|\\'[^\\']+\\'/g, str => {\n return str.replace(/[;:]/g, encode);\n });\n let matches;\n while (matches = styleRegExp.exec(css)) {\n styleRegExp.lastIndex = matches.index + matches[0].length;\n let name = matches[1].replace(trimRightRegExp, '').toLowerCase();\n let value = matches[2].replace(trimRightRegExp, '');\n if (name && value) {\n name = decodeHexSequences(name);\n value = decodeHexSequences(value);\n if (name.indexOf(invisibleChar) !== -1 || name.indexOf('\"') !== -1) {\n continue;\n }\n if (!settings.allow_script_urls && (name === 'behavior' || /expression\\s*\\(|\\/\\*|\\*\\//.test(value))) {\n continue;\n }\n if (name === 'font-weight' && value === '700') {\n value = 'bold';\n } else if (name === 'color' || name === 'background-color') {\n value = value.toLowerCase();\n }\n if (getColorFormat(value) === 'rgb') {\n fromString(value).each(rgba => {\n value = rgbaToHexString(toString(rgba)).toLowerCase();\n });\n }\n value = value.replace(urlOrStrRegExp, processUrl);\n styles[name] = isEncoded ? decode(value, true) : value;\n }\n }\n compress('border', '', true);\n compress('border', '-width');\n compress('border', '-color');\n compress('border', '-style');\n compress('padding', '');\n compress('margin', '');\n compress2('border', 'border-width', 'border-style', 'border-color');\n if (styles.border === 'medium none') {\n delete styles.border;\n }\n if (styles['border-image'] === 'none') {\n delete styles['border-image'];\n }\n }\n return styles;\n },\n serialize: (styles, elementName) => {\n let css = '';\n const serializeStyles = (elemName, validStyleList) => {\n const styleList = validStyleList[elemName];\n if (styleList) {\n for (let i = 0, l = styleList.length; i < l; i++) {\n const name = styleList[i];\n const value = styles[name];\n if (value) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n }\n }\n };\n const isValid = (name, elemName) => {\n if (!invalidStyles || !elemName) {\n return true;\n }\n let styleMap = invalidStyles['*'];\n if (styleMap && styleMap[name]) {\n return false;\n }\n styleMap = invalidStyles[elemName];\n return !(styleMap && styleMap[name]);\n };\n if (elementName && validStyles) {\n serializeStyles('*', validStyles);\n serializeStyles(elementName, validStyles);\n } else {\n each$d(styles, (value, name) => {\n if (value && isValid(name, elementName)) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n });\n }\n return css;\n }\n };\n return self;\n };\n\n const deprecated = {\n keyLocation: true,\n layerX: true,\n layerY: true,\n returnValue: true,\n webkitMovementX: true,\n webkitMovementY: true,\n keyIdentifier: true,\n mozPressure: true\n };\n const isNativeEvent = event => event instanceof Event || isFunction(event.initEvent);\n const hasIsDefaultPrevented = event => event.isDefaultPrevented === always || event.isDefaultPrevented === never;\n const needsNormalizing = event => isNullable(event.preventDefault) || isNativeEvent(event);\n const clone$3 = (originalEvent, data) => {\n const event = data !== null && data !== void 0 ? data : {};\n for (const name in originalEvent) {\n if (!has$2(deprecated, name)) {\n event[name] = originalEvent[name];\n }\n }\n if (isNonNullable(originalEvent.composedPath)) {\n event.composedPath = () => originalEvent.composedPath();\n }\n if (isNonNullable(originalEvent.getModifierState)) {\n event.getModifierState = keyArg => originalEvent.getModifierState(keyArg);\n }\n if (isNonNullable(originalEvent.getTargetRanges)) {\n event.getTargetRanges = () => originalEvent.getTargetRanges();\n }\n return event;\n };\n const normalize$3 = (type, originalEvent, fallbackTarget, data) => {\n var _a;\n const event = clone$3(originalEvent, data);\n event.type = type;\n if (isNullable(event.target)) {\n event.target = (_a = event.srcElement) !== null && _a !== void 0 ? _a : fallbackTarget;\n }\n if (needsNormalizing(originalEvent)) {\n event.preventDefault = () => {\n event.defaultPrevented = true;\n event.isDefaultPrevented = always;\n if (isFunction(originalEvent.preventDefault)) {\n originalEvent.preventDefault();\n }\n };\n event.stopPropagation = () => {\n event.cancelBubble = true;\n event.isPropagationStopped = always;\n if (isFunction(originalEvent.stopPropagation)) {\n originalEvent.stopPropagation();\n }\n };\n event.stopImmediatePropagation = () => {\n event.isImmediatePropagationStopped = always;\n event.stopPropagation();\n };\n if (!hasIsDefaultPrevented(event)) {\n event.isDefaultPrevented = event.defaultPrevented === true ? always : never;\n event.isPropagationStopped = event.cancelBubble === true ? always : never;\n event.isImmediatePropagationStopped = never;\n }\n }\n return event;\n };\n\n const eventExpandoPrefix = 'mce-data-';\n const mouseEventRe = /^(?:mouse|contextmenu)|click/;\n const addEvent = (target, name, callback, capture) => {\n target.addEventListener(name, callback, capture || false);\n };\n const removeEvent = (target, name, callback, capture) => {\n target.removeEventListener(name, callback, capture || false);\n };\n const isMouseEvent = event => isNonNullable(event) && mouseEventRe.test(event.type);\n const fix = (originalEvent, data) => {\n const event = normalize$3(originalEvent.type, originalEvent, document, data);\n if (isMouseEvent(originalEvent) && isUndefined(originalEvent.pageX) && !isUndefined(originalEvent.clientX)) {\n const eventDoc = event.target.ownerDocument || document;\n const doc = eventDoc.documentElement;\n const body = eventDoc.body;\n const mouseEvent = event;\n mouseEvent.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n mouseEvent.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n return event;\n };\n const bindOnReady = (win, callback, eventUtils) => {\n const doc = win.document, event = { type: 'ready' };\n if (eventUtils.domLoaded) {\n callback(event);\n return;\n }\n const isDocReady = () => {\n return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body;\n };\n const readyHandler = () => {\n removeEvent(win, 'DOMContentLoaded', readyHandler);\n removeEvent(win, 'load', readyHandler);\n if (!eventUtils.domLoaded) {\n eventUtils.domLoaded = true;\n callback(event);\n }\n win = null;\n };\n if (isDocReady()) {\n readyHandler();\n } else {\n addEvent(win, 'DOMContentLoaded', readyHandler);\n }\n if (!eventUtils.domLoaded) {\n addEvent(win, 'load', readyHandler);\n }\n };\n class EventUtils {\n constructor() {\n this.domLoaded = false;\n this.events = {};\n this.count = 1;\n this.expando = eventExpandoPrefix + (+new Date()).toString(32);\n this.hasFocusIn = 'onfocusin' in document.documentElement;\n this.count = 1;\n }\n bind(target, names, callback, scope) {\n const self = this;\n let callbackList;\n const win = window;\n const defaultNativeHandler = evt => {\n self.executeHandlers(fix(evt || win.event), id);\n };\n if (!target || isText$b(target) || isComment(target)) {\n return callback;\n }\n let id;\n if (!target[self.expando]) {\n id = self.count++;\n target[self.expando] = id;\n self.events[id] = {};\n } else {\n id = target[self.expando];\n }\n scope = scope || target;\n const namesList = names.split(' ');\n let i = namesList.length;\n while (i--) {\n let name = namesList[i];\n let nativeHandler = defaultNativeHandler;\n let capture = false;\n let fakeName = false;\n if (name === 'DOMContentLoaded') {\n name = 'ready';\n }\n if (self.domLoaded && name === 'ready' && target.readyState === 'complete') {\n callback.call(scope, fix({ type: name }));\n continue;\n }\n if (!self.hasFocusIn && (name === 'focusin' || name === 'focusout')) {\n capture = true;\n fakeName = name === 'focusin' ? 'focus' : 'blur';\n nativeHandler = evt => {\n const event = fix(evt || win.event);\n event.type = event.type === 'focus' ? 'focusin' : 'focusout';\n self.executeHandlers(event, id);\n };\n }\n callbackList = self.events[id][name];\n if (!callbackList) {\n self.events[id][name] = callbackList = [{\n func: callback,\n scope\n }];\n callbackList.fakeName = fakeName;\n callbackList.capture = capture;\n callbackList.nativeHandler = nativeHandler;\n if (name === 'ready') {\n bindOnReady(target, nativeHandler, self);\n } else {\n addEvent(target, fakeName || name, nativeHandler, capture);\n }\n } else {\n if (name === 'ready' && self.domLoaded) {\n callback(fix({ type: name }));\n } else {\n callbackList.push({\n func: callback,\n scope\n });\n }\n }\n }\n target = callbackList = null;\n return callback;\n }\n unbind(target, names, callback) {\n if (!target || isText$b(target) || isComment(target)) {\n return this;\n }\n const id = target[this.expando];\n if (id) {\n let eventMap = this.events[id];\n if (names) {\n const namesList = names.split(' ');\n let i = namesList.length;\n while (i--) {\n const name = namesList[i];\n const callbackList = eventMap[name];\n if (callbackList) {\n if (callback) {\n let ci = callbackList.length;\n while (ci--) {\n if (callbackList[ci].func === callback) {\n const nativeHandler = callbackList.nativeHandler;\n const fakeName = callbackList.fakeName, capture = callbackList.capture;\n const newCallbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1));\n newCallbackList.nativeHandler = nativeHandler;\n newCallbackList.fakeName = fakeName;\n newCallbackList.capture = capture;\n eventMap[name] = newCallbackList;\n }\n }\n }\n if (!callback || callbackList.length === 0) {\n delete eventMap[name];\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n }\n }\n }\n } else {\n each$d(eventMap, (callbackList, name) => {\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n });\n eventMap = {};\n }\n for (const name in eventMap) {\n if (has$2(eventMap, name)) {\n return this;\n }\n }\n delete this.events[id];\n try {\n delete target[this.expando];\n } catch (ex) {\n target[this.expando] = null;\n }\n }\n return this;\n }\n fire(target, name, args) {\n return this.dispatch(target, name, args);\n }\n dispatch(target, name, args) {\n if (!target || isText$b(target) || isComment(target)) {\n return this;\n }\n const event = fix({\n type: name,\n target\n }, args);\n do {\n const id = target[this.expando];\n if (id) {\n this.executeHandlers(event, id);\n }\n target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;\n } while (target && !event.isPropagationStopped());\n return this;\n }\n clean(target) {\n if (!target || isText$b(target) || isComment(target)) {\n return this;\n }\n if (target[this.expando]) {\n this.unbind(target);\n }\n if (!target.getElementsByTagName) {\n target = target.document;\n }\n if (target && target.getElementsByTagName) {\n this.unbind(target);\n const children = target.getElementsByTagName('*');\n let i = children.length;\n while (i--) {\n target = children[i];\n if (target[this.expando]) {\n this.unbind(target);\n }\n }\n }\n return this;\n }\n destroy() {\n this.events = {};\n }\n cancel(e) {\n if (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n return false;\n }\n executeHandlers(evt, id) {\n const container = this.events[id];\n const callbackList = container && container[evt.type];\n if (callbackList) {\n for (let i = 0, l = callbackList.length; i < l; i++) {\n const callback = callbackList[i];\n if (callback && callback.func.call(callback.scope, evt) === false) {\n evt.preventDefault();\n }\n if (evt.isImmediatePropagationStopped()) {\n return;\n }\n }\n }\n }\n }\n EventUtils.Event = new EventUtils();\n\n const each$a = Tools.each;\n const grep = Tools.grep;\n const internalStyleName = 'data-mce-style';\n const numericalCssMap = Tools.makeMap('fill-opacity font-weight line-height opacity orphans widows z-index zoom', ' ');\n const legacySetAttribute = (elm, name, value) => {\n if (isNullable(value) || value === '') {\n remove$9(elm, name);\n } else {\n set$3(elm, name, value);\n }\n };\n const camelCaseToHyphens = name => name.replace(/[A-Z]/g, v => '-' + v.toLowerCase());\n const findNodeIndex = (node, normalized) => {\n let idx = 0;\n if (node) {\n for (let lastNodeType = node.nodeType, tempNode = node.previousSibling; tempNode; tempNode = tempNode.previousSibling) {\n const nodeType = tempNode.nodeType;\n if (normalized && isText$b(tempNode)) {\n if (nodeType === lastNodeType || !tempNode.data.length) {\n continue;\n }\n }\n idx++;\n lastNodeType = nodeType;\n }\n }\n return idx;\n };\n const updateInternalStyleAttr = (styles, elm) => {\n const rawValue = get$9(elm, 'style');\n const value = styles.serialize(styles.parse(rawValue), name(elm));\n legacySetAttribute(elm, internalStyleName, value);\n };\n const convertStyleToString = (cssValue, cssName) => {\n if (isNumber(cssValue)) {\n return has$2(numericalCssMap, cssName) ? cssValue + '' : cssValue + 'px';\n } else {\n return cssValue;\n }\n };\n const applyStyle$1 = ($elm, cssName, cssValue) => {\n const normalizedName = camelCaseToHyphens(cssName);\n if (isNullable(cssValue) || cssValue === '') {\n remove$5($elm, normalizedName);\n } else {\n set$2($elm, normalizedName, convertStyleToString(cssValue, normalizedName));\n }\n };\n const setupAttrHooks = (styles, settings, getContext) => {\n const keepValues = settings.keep_values;\n const keepUrlHook = {\n set: (elm, value, name) => {\n const sugarElm = SugarElement.fromDom(elm);\n if (isFunction(settings.url_converter) && isNonNullable(value)) {\n value = settings.url_converter.call(settings.url_converter_scope || getContext(), String(value), name, elm);\n }\n const internalName = 'data-mce-' + name;\n legacySetAttribute(sugarElm, internalName, value);\n legacySetAttribute(sugarElm, name, value);\n },\n get: (elm, name) => {\n const sugarElm = SugarElement.fromDom(elm);\n return get$9(sugarElm, 'data-mce-' + name) || get$9(sugarElm, name);\n }\n };\n const attrHooks = {\n style: {\n set: (elm, value) => {\n const sugarElm = SugarElement.fromDom(elm);\n if (keepValues) {\n legacySetAttribute(sugarElm, internalStyleName, value);\n }\n remove$9(sugarElm, 'style');\n if (isString(value)) {\n setAll(sugarElm, styles.parse(value));\n }\n },\n get: elm => {\n const sugarElm = SugarElement.fromDom(elm);\n const value = get$9(sugarElm, internalStyleName) || get$9(sugarElm, 'style');\n return styles.serialize(styles.parse(value), name(sugarElm));\n }\n }\n };\n if (keepValues) {\n attrHooks.href = attrHooks.src = keepUrlHook;\n }\n return attrHooks;\n };\n const DOMUtils = (doc, settings = {}) => {\n const addedStyles = {};\n const win = window;\n const files = {};\n let counter = 0;\n const stdMode = true;\n const boxModel = true;\n const styleSheetLoader = instance.forElement(SugarElement.fromDom(doc), {\n contentCssCors: settings.contentCssCors,\n referrerPolicy: settings.referrerPolicy\n });\n const boundEvents = [];\n const schema = settings.schema ? settings.schema : Schema({});\n const styles = Styles({\n url_converter: settings.url_converter,\n url_converter_scope: settings.url_converter_scope\n }, settings.schema);\n const events = settings.ownEvents ? new EventUtils() : EventUtils.Event;\n const blockElementsMap = schema.getBlockElements();\n const isBlock = node => {\n if (isString(node)) {\n return has$2(blockElementsMap, node);\n } else {\n return isElement$6(node) && (has$2(blockElementsMap, node.nodeName) || isTransparentBlock(schema, node));\n }\n };\n const get = elm => elm && doc && isString(elm) ? doc.getElementById(elm) : elm;\n const _get = elm => {\n const value = get(elm);\n return isNonNullable(value) ? SugarElement.fromDom(value) : null;\n };\n const getAttrib = (elm, name, defaultVal = '') => {\n let value;\n const $elm = _get(elm);\n if (isNonNullable($elm) && isElement$7($elm)) {\n const hook = attrHooks[name];\n if (hook && hook.get) {\n value = hook.get($elm.dom, name);\n } else {\n value = get$9($elm, name);\n }\n }\n return isNonNullable(value) ? value : defaultVal;\n };\n const getAttribs = elm => {\n const node = get(elm);\n return isNullable(node) ? [] : node.attributes;\n };\n const setAttrib = (elm, name, value) => {\n run(elm, e => {\n if (isElement$6(e)) {\n const $elm = SugarElement.fromDom(e);\n const val = value === '' ? null : value;\n const originalValue = get$9($elm, name);\n const hook = attrHooks[name];\n if (hook && hook.set) {\n hook.set($elm.dom, val, name);\n } else {\n legacySetAttribute($elm, name, val);\n }\n if (originalValue !== val && settings.onSetAttrib) {\n settings.onSetAttrib({\n attrElm: $elm.dom,\n attrName: name,\n attrValue: val\n });\n }\n }\n });\n };\n const clone = (node, deep) => {\n return node.cloneNode(deep);\n };\n const getRoot = () => settings.root_element || doc.body;\n const getViewPort = argWin => {\n const vp = getBounds(argWin);\n return {\n x: vp.x,\n y: vp.y,\n w: vp.width,\n h: vp.height\n };\n };\n const getPos$1 = (elm, rootElm) => getPos(doc.body, get(elm), rootElm);\n const setStyle = (elm, name, value) => {\n run(elm, e => {\n const $elm = SugarElement.fromDom(e);\n applyStyle$1($elm, name, value);\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n });\n };\n const setStyles = (elm, stylesArg) => {\n run(elm, e => {\n const $elm = SugarElement.fromDom(e);\n each$d(stylesArg, (v, n) => {\n applyStyle$1($elm, n, v);\n });\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n });\n };\n const getStyle = (elm, name, computed) => {\n const $elm = get(elm);\n if (isNullable($elm) || !isHTMLElement($elm) && !isSVGElement($elm)) {\n return undefined;\n }\n if (computed) {\n return get$7(SugarElement.fromDom($elm), camelCaseToHyphens(name));\n } else {\n name = name.replace(/-(\\D)/g, (a, b) => b.toUpperCase());\n if (name === 'float') {\n name = 'cssFloat';\n }\n return $elm.style ? $elm.style[name] : undefined;\n }\n };\n const getSize = elm => {\n const $elm = get(elm);\n if (!$elm) {\n return {\n w: 0,\n h: 0\n };\n }\n let w = getStyle($elm, 'width');\n let h = getStyle($elm, 'height');\n if (!w || w.indexOf('px') === -1) {\n w = '0';\n }\n if (!h || h.indexOf('px') === -1) {\n h = '0';\n }\n return {\n w: parseInt(w, 10) || $elm.offsetWidth || $elm.clientWidth,\n h: parseInt(h, 10) || $elm.offsetHeight || $elm.clientHeight\n };\n };\n const getRect = elm => {\n const $elm = get(elm);\n const pos = getPos$1($elm);\n const size = getSize($elm);\n return {\n x: pos.x,\n y: pos.y,\n w: size.w,\n h: size.h\n };\n };\n const is = (elm, selector) => {\n if (!elm) {\n return false;\n }\n const elms = isArray$1(elm) ? elm : [elm];\n return exists(elms, e => {\n return is$1(SugarElement.fromDom(e), selector);\n });\n };\n const getParents = (elm, selector, root, collect) => {\n const result = [];\n let node = get(elm);\n collect = collect === undefined;\n const resolvedRoot = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);\n if (isString(selector)) {\n if (selector === '*') {\n selector = isElement$6;\n } else {\n const selectorVal = selector;\n selector = node => is(node, selectorVal);\n }\n }\n while (node) {\n if (node === resolvedRoot || isNullable(node.nodeType) || isDocument$1(node) || isDocumentFragment(node)) {\n break;\n }\n if (!selector || selector(node)) {\n if (collect) {\n result.push(node);\n } else {\n return [node];\n }\n }\n node = node.parentNode;\n }\n return collect ? result : null;\n };\n const getParent = (node, selector, root) => {\n const parents = getParents(node, selector, root, false);\n return parents && parents.length > 0 ? parents[0] : null;\n };\n const _findSib = (node, selector, name) => {\n let func = selector;\n if (node) {\n if (isString(selector)) {\n func = node => {\n return is(node, selector);\n };\n }\n for (let tempNode = node[name]; tempNode; tempNode = tempNode[name]) {\n if (isFunction(func) && func(tempNode)) {\n return tempNode;\n }\n }\n }\n return null;\n };\n const getNext = (node, selector) => _findSib(node, selector, 'nextSibling');\n const getPrev = (node, selector) => _findSib(node, selector, 'previousSibling');\n const isParentNode = node => isFunction(node.querySelectorAll);\n const select = (selector, scope) => {\n var _a, _b;\n const elm = (_b = (_a = get(scope)) !== null && _a !== void 0 ? _a : settings.root_element) !== null && _b !== void 0 ? _b : doc;\n return isParentNode(elm) ? from(elm.querySelectorAll(selector)) : [];\n };\n const run = function (elm, func, scope) {\n const context = scope !== null && scope !== void 0 ? scope : this;\n if (isArray$1(elm)) {\n const result = [];\n each$a(elm, (e, i) => {\n const node = get(e);\n if (node) {\n result.push(func.call(context, node, i));\n }\n });\n return result;\n } else {\n const node = get(elm);\n return !node ? false : func.call(context, node);\n }\n };\n const setAttribs = (elm, attrs) => {\n run(elm, $elm => {\n each$d(attrs, (value, name) => {\n setAttrib($elm, name, value);\n });\n });\n };\n const setHTML = (elm, html) => {\n run(elm, e => {\n const $elm = SugarElement.fromDom(e);\n set$1($elm, html);\n });\n };\n const add = (parentElm, name, attrs, html, create) => run(parentElm, parentElm => {\n const newElm = isString(name) ? doc.createElement(name) : name;\n if (isNonNullable(attrs)) {\n setAttribs(newElm, attrs);\n }\n if (html) {\n if (!isString(html) && html.nodeType) {\n newElm.appendChild(html);\n } else if (isString(html)) {\n setHTML(newElm, html);\n }\n }\n return !create ? parentElm.appendChild(newElm) : newElm;\n });\n const create = (name, attrs, html) => add(doc.createElement(name), name, attrs, html, true);\n const decode = Entities.decode;\n const encode = Entities.encodeAllRaw;\n const createHTML = (name, attrs, html = '') => {\n let outHtml = '<' + name;\n for (const key in attrs) {\n if (hasNonNullableKey(attrs, key)) {\n outHtml += ' ' + key + '=\"' + encode(attrs[key]) + '\"';\n }\n }\n if (isEmpty$3(html) && has$2(schema.getVoidElements(), name)) {\n return outHtml + ' />';\n } else {\n return outHtml + '>' + html + '';\n }\n };\n const createFragment = html => {\n const container = doc.createElement('div');\n const frag = doc.createDocumentFragment();\n frag.appendChild(container);\n if (html) {\n container.innerHTML = html;\n }\n let node;\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n frag.removeChild(container);\n return frag;\n };\n const remove = (node, keepChildren) => {\n return run(node, n => {\n const $node = SugarElement.fromDom(n);\n if (keepChildren) {\n each$e(children$1($node), child => {\n if (isText$c(child) && child.dom.length === 0) {\n remove$4(child);\n } else {\n before$3($node, child);\n }\n });\n }\n remove$4($node);\n return $node.dom;\n });\n };\n const removeAllAttribs = e => run(e, e => {\n const attrs = e.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n e.removeAttributeNode(attrs.item(i));\n }\n });\n const parseStyle = cssText => styles.parse(cssText);\n const serializeStyle = (stylesArg, name) => styles.serialize(stylesArg, name);\n const addStyle = cssText => {\n if (self !== DOMUtils.DOM && doc === document) {\n if (addedStyles[cssText]) {\n return;\n }\n addedStyles[cssText] = true;\n }\n let styleElm = doc.getElementById('mceDefaultStyles');\n if (!styleElm) {\n styleElm = doc.createElement('style');\n styleElm.id = 'mceDefaultStyles';\n styleElm.type = 'text/css';\n const head = doc.head;\n if (head.firstChild) {\n head.insertBefore(styleElm, head.firstChild);\n } else {\n head.appendChild(styleElm);\n }\n }\n if (styleElm.styleSheet) {\n styleElm.styleSheet.cssText += cssText;\n } else {\n styleElm.appendChild(doc.createTextNode(cssText));\n }\n };\n const loadCSS = urls => {\n if (!urls) {\n urls = '';\n }\n each$e(urls.split(','), url => {\n files[url] = true;\n styleSheetLoader.load(url).catch(noop);\n });\n };\n const toggleClass = (elm, cls, state) => {\n run(elm, e => {\n if (isElement$6(e)) {\n const $elm = SugarElement.fromDom(e);\n const classes = cls.split(' ');\n each$e(classes, c => {\n if (isNonNullable(state)) {\n const fn = state ? add$2 : remove$6;\n fn($elm, c);\n } else {\n toggle$1($elm, c);\n }\n });\n }\n });\n };\n const addClass = (elm, cls) => {\n toggleClass(elm, cls, true);\n };\n const removeClass = (elm, cls) => {\n toggleClass(elm, cls, false);\n };\n const hasClass = (elm, cls) => {\n const $elm = _get(elm);\n const classes = cls.split(' ');\n return isNonNullable($elm) && forall(classes, c => has($elm, c));\n };\n const show = elm => {\n run(elm, e => remove$5(SugarElement.fromDom(e), 'display'));\n };\n const hide = elm => {\n run(elm, e => set$2(SugarElement.fromDom(e), 'display', 'none'));\n };\n const isHidden = elm => {\n const $elm = _get(elm);\n return isNonNullable($elm) && is$2(getRaw($elm, 'display'), 'none');\n };\n const uniqueId = prefix => (!prefix ? 'mce_' : prefix) + counter++;\n const getOuterHTML = elm => {\n const $elm = _get(elm);\n if (isNonNullable($elm)) {\n return isElement$6($elm.dom) ? $elm.dom.outerHTML : getOuter($elm);\n } else {\n return '';\n }\n };\n const setOuterHTML = (elm, html) => {\n run(elm, $elm => {\n if (isElement$6($elm)) {\n $elm.outerHTML = html;\n }\n });\n };\n const insertAfter = (node, reference) => {\n const referenceNode = get(reference);\n return run(node, node => {\n const parent = referenceNode === null || referenceNode === void 0 ? void 0 : referenceNode.parentNode;\n const nextSibling = referenceNode === null || referenceNode === void 0 ? void 0 : referenceNode.nextSibling;\n if (parent) {\n if (nextSibling) {\n parent.insertBefore(node, nextSibling);\n } else {\n parent.appendChild(node);\n }\n }\n return node;\n });\n };\n const replace = (newElm, oldElm, keepChildren) => run(oldElm, elm => {\n var _a;\n const replacee = isArray$1(oldElm) ? newElm.cloneNode(true) : newElm;\n if (keepChildren) {\n each$a(grep(elm.childNodes), node => {\n replacee.appendChild(node);\n });\n }\n (_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(replacee, elm);\n return elm;\n });\n const rename = (elm, name) => {\n if (elm.nodeName !== name.toUpperCase()) {\n const newElm = create(name);\n each$a(getAttribs(elm), attrNode => {\n setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));\n });\n replace(newElm, elm, true);\n return newElm;\n } else {\n return elm;\n }\n };\n const findCommonAncestor = (a, b) => {\n let ps = a;\n while (ps) {\n let pe = b;\n while (pe && ps !== pe) {\n pe = pe.parentNode;\n }\n if (ps === pe) {\n break;\n }\n ps = ps.parentNode;\n }\n if (!ps && a.ownerDocument) {\n return a.ownerDocument.documentElement;\n } else {\n return ps;\n }\n };\n const isEmpty = (node, elements, options) => {\n if (isPlainObject(elements)) {\n const isContent = node => {\n const name = node.nodeName.toLowerCase();\n return Boolean(elements[name]);\n };\n return isEmptyNode(schema, node, {\n ...options,\n isContent\n });\n } else {\n return isEmptyNode(schema, node, options);\n }\n };\n const createRng = () => doc.createRange();\n const split = (parentElm, splitElm, replacementElm) => {\n let range = createRng();\n let beforeFragment;\n let afterFragment;\n if (parentElm && splitElm && parentElm.parentNode && splitElm.parentNode) {\n const parentNode = parentElm.parentNode;\n range.setStart(parentNode, findNodeIndex(parentElm));\n range.setEnd(splitElm.parentNode, findNodeIndex(splitElm));\n beforeFragment = range.extractContents();\n range = createRng();\n range.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1);\n range.setEnd(parentNode, findNodeIndex(parentElm) + 1);\n afterFragment = range.extractContents();\n parentNode.insertBefore(trimNode(self, beforeFragment, schema), parentElm);\n if (replacementElm) {\n parentNode.insertBefore(replacementElm, parentElm);\n } else {\n parentNode.insertBefore(splitElm, parentElm);\n }\n parentNode.insertBefore(trimNode(self, afterFragment, schema), parentElm);\n remove(parentElm);\n return replacementElm || splitElm;\n } else {\n return undefined;\n }\n };\n const bind = (target, name, func, scope) => {\n if (isArray$1(target)) {\n let i = target.length;\n const rv = [];\n while (i--) {\n rv[i] = bind(target[i], name, func, scope);\n }\n return rv;\n } else {\n if (settings.collect && (target === doc || target === win)) {\n boundEvents.push([\n target,\n name,\n func,\n scope\n ]);\n }\n return events.bind(target, name, func, scope || self);\n }\n };\n const unbind = (target, name, func) => {\n if (isArray$1(target)) {\n let i = target.length;\n const rv = [];\n while (i--) {\n rv[i] = unbind(target[i], name, func);\n }\n return rv;\n } else {\n if (boundEvents.length > 0 && (target === doc || target === win)) {\n let i = boundEvents.length;\n while (i--) {\n const [boundTarget, boundName, boundFunc] = boundEvents[i];\n if (target === boundTarget && (!name || name === boundName) && (!func || func === boundFunc)) {\n events.unbind(boundTarget, boundName, boundFunc);\n }\n }\n }\n return events.unbind(target, name, func);\n }\n };\n const dispatch = (target, name, evt) => events.dispatch(target, name, evt);\n const fire = (target, name, evt) => events.dispatch(target, name, evt);\n const getContentEditable = node => {\n if (node && isHTMLElement(node)) {\n const contentEditable = node.getAttribute('data-mce-contenteditable');\n if (contentEditable && contentEditable !== 'inherit') {\n return contentEditable;\n }\n return node.contentEditable !== 'inherit' ? node.contentEditable : null;\n } else {\n return null;\n }\n };\n const getContentEditableParent = node => {\n const root = getRoot();\n let state = null;\n for (let tempNode = node; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n state = getContentEditable(tempNode);\n if (state !== null) {\n break;\n }\n }\n return state;\n };\n const isEditable = node => {\n if (isNonNullable(node)) {\n const scope = isElement$6(node) ? node : node.parentElement;\n return isNonNullable(scope) && isHTMLElement(scope) && isEditable$2(SugarElement.fromDom(scope));\n } else {\n return false;\n }\n };\n const destroy = () => {\n if (boundEvents.length > 0) {\n let i = boundEvents.length;\n while (i--) {\n const [boundTarget, boundName, boundFunc] = boundEvents[i];\n events.unbind(boundTarget, boundName, boundFunc);\n }\n }\n each$d(files, (_, url) => {\n styleSheetLoader.unload(url);\n delete files[url];\n });\n };\n const isChildOf = (node, parent) => {\n return node === parent || parent.contains(node);\n };\n const dumpRng = r => 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;\n const self = {\n doc,\n settings,\n win,\n files,\n stdMode,\n boxModel,\n styleSheetLoader,\n boundEvents,\n styles,\n schema,\n events,\n isBlock: isBlock,\n root: null,\n clone,\n getRoot,\n getViewPort,\n getRect,\n getSize,\n getParent,\n getParents: getParents,\n get,\n getNext,\n getPrev,\n select,\n is,\n add,\n create,\n createHTML,\n createFragment,\n remove,\n setStyle,\n getStyle: getStyle,\n setStyles,\n removeAllAttribs,\n setAttrib,\n setAttribs,\n getAttrib,\n getPos: getPos$1,\n parseStyle,\n serializeStyle,\n addStyle,\n loadCSS,\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n show,\n hide,\n isHidden,\n uniqueId,\n setHTML,\n getOuterHTML,\n setOuterHTML,\n decode,\n encode,\n insertAfter,\n replace,\n rename,\n findCommonAncestor,\n run,\n getAttribs,\n isEmpty,\n createRng,\n nodeIndex: findNodeIndex,\n split,\n bind: bind,\n unbind: unbind,\n fire,\n dispatch,\n getContentEditable,\n getContentEditableParent,\n isEditable,\n destroy,\n isChildOf,\n dumpRng\n };\n const attrHooks = setupAttrHooks(styles, settings, constant(self));\n return self;\n };\n DOMUtils.DOM = DOMUtils(document);\n DOMUtils.nodeIndex = findNodeIndex;\n\n const DOM$b = DOMUtils.DOM;\n const QUEUED = 0;\n const LOADING = 1;\n const LOADED = 2;\n const FAILED = 3;\n class ScriptLoader {\n constructor(settings = {}) {\n this.states = {};\n this.queue = [];\n this.scriptLoadedCallbacks = {};\n this.queueLoadedCallbacks = [];\n this.loading = false;\n this.settings = settings;\n }\n _setReferrerPolicy(referrerPolicy) {\n this.settings.referrerPolicy = referrerPolicy;\n }\n loadScript(url) {\n return new Promise((resolve, reject) => {\n const dom = DOM$b;\n let elm;\n const cleanup = () => {\n dom.remove(id);\n if (elm) {\n elm.onerror = elm.onload = elm = null;\n }\n };\n const done = () => {\n cleanup();\n resolve();\n };\n const error = () => {\n cleanup();\n reject('Failed to load script: ' + url);\n };\n const id = dom.uniqueId();\n elm = document.createElement('script');\n elm.id = id;\n elm.type = 'text/javascript';\n elm.src = Tools._addCacheSuffix(url);\n if (this.settings.referrerPolicy) {\n dom.setAttrib(elm, 'referrerpolicy', this.settings.referrerPolicy);\n }\n elm.onload = done;\n elm.onerror = error;\n (document.getElementsByTagName('head')[0] || document.body).appendChild(elm);\n });\n }\n isDone(url) {\n return this.states[url] === LOADED;\n }\n markDone(url) {\n this.states[url] = LOADED;\n }\n add(url) {\n const self = this;\n self.queue.push(url);\n const state = self.states[url];\n if (state === undefined) {\n self.states[url] = QUEUED;\n }\n return new Promise((resolve, reject) => {\n if (!self.scriptLoadedCallbacks[url]) {\n self.scriptLoadedCallbacks[url] = [];\n }\n self.scriptLoadedCallbacks[url].push({\n resolve,\n reject\n });\n });\n }\n load(url) {\n return this.add(url);\n }\n remove(url) {\n delete this.states[url];\n delete this.scriptLoadedCallbacks[url];\n }\n loadQueue() {\n const queue = this.queue;\n this.queue = [];\n return this.loadScripts(queue);\n }\n loadScripts(scripts) {\n const self = this;\n const execCallbacks = (name, url) => {\n get$a(self.scriptLoadedCallbacks, url).each(callbacks => {\n each$e(callbacks, callback => callback[name](url));\n });\n delete self.scriptLoadedCallbacks[url];\n };\n const processResults = results => {\n const failures = filter$5(results, result => result.status === 'rejected');\n if (failures.length > 0) {\n return Promise.reject(bind$3(failures, ({reason}) => isArray$1(reason) ? reason : [reason]));\n } else {\n return Promise.resolve();\n }\n };\n const load = urls => Promise.allSettled(map$3(urls, url => {\n if (self.states[url] === LOADED) {\n execCallbacks('resolve', url);\n return Promise.resolve();\n } else if (self.states[url] === FAILED) {\n execCallbacks('reject', url);\n return Promise.reject(url);\n } else {\n self.states[url] = LOADING;\n return self.loadScript(url).then(() => {\n self.states[url] = LOADED;\n execCallbacks('resolve', url);\n const queue = self.queue;\n if (queue.length > 0) {\n self.queue = [];\n return load(queue).then(processResults);\n } else {\n return Promise.resolve();\n }\n }, () => {\n self.states[url] = FAILED;\n execCallbacks('reject', url);\n return Promise.reject(url);\n });\n }\n }));\n const processQueue = urls => {\n self.loading = true;\n return load(urls).then(results => {\n self.loading = false;\n const nextQueuedItem = self.queueLoadedCallbacks.shift();\n Optional.from(nextQueuedItem).each(call);\n return processResults(results);\n });\n };\n const uniqueScripts = stringArray(scripts);\n if (self.loading) {\n return new Promise((resolve, reject) => {\n self.queueLoadedCallbacks.push(() => {\n processQueue(uniqueScripts).then(resolve, reject);\n });\n });\n } else {\n return processQueue(uniqueScripts);\n }\n }\n }\n ScriptLoader.ScriptLoader = new ScriptLoader();\n\n const isDuplicated = (items, item) => {\n const firstIndex = items.indexOf(item);\n return firstIndex !== -1 && items.indexOf(item, firstIndex + 1) > firstIndex;\n };\n const isRaw = str => isObject(str) && has$2(str, 'raw');\n const isTokenised = str => isArray$1(str) && str.length > 1;\n const data = {};\n const currentCode = Cell('en');\n const getLanguageData = () => get$a(data, currentCode.get());\n const getData$1 = () => map$2(data, value => ({ ...value }));\n const setCode = newCode => {\n if (newCode) {\n currentCode.set(newCode);\n }\n };\n const getCode = () => currentCode.get();\n const add$1 = (code, items) => {\n let langData = data[code];\n if (!langData) {\n data[code] = langData = {};\n }\n const lcNames = map$3(keys(items), name => name.toLowerCase());\n each$d(items, (translation, name) => {\n const lcName = name.toLowerCase();\n if (lcName !== name && isDuplicated(lcNames, lcName)) {\n if (!has$2(items, lcName)) {\n langData[lcName] = translation;\n }\n langData[name] = translation;\n } else {\n langData[lcName] = translation;\n }\n });\n };\n const translate = text => {\n const langData = getLanguageData().getOr({});\n const toString = obj => {\n if (isFunction(obj)) {\n return Object.prototype.toString.call(obj);\n }\n return !isEmpty(obj) ? '' + obj : '';\n };\n const isEmpty = text => text === '' || text === null || text === undefined;\n const getLangData = text => {\n const textStr = toString(text);\n return has$2(langData, textStr) ? toString(langData[textStr]) : get$a(langData, textStr.toLowerCase()).map(toString).getOr(textStr);\n };\n const removeContext = str => str.replace(/{context:\\w+}$/, '');\n if (isEmpty(text)) {\n return '';\n }\n if (isRaw(text)) {\n return toString(text.raw);\n }\n if (isTokenised(text)) {\n const values = text.slice(1);\n const substitued = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, ($1, $2) => has$2(values, $2) ? toString(values[$2]) : $1);\n return removeContext(substitued);\n }\n return removeContext(getLangData(text));\n };\n const isRtl$1 = () => getLanguageData().bind(items => get$a(items, '_dir')).exists(dir => dir === 'rtl');\n const hasCode = code => has$2(data, code);\n const I18n = {\n getData: getData$1,\n setCode,\n getCode,\n add: add$1,\n translate,\n isRtl: isRtl$1,\n hasCode\n };\n\n const AddOnManager = () => {\n const items = [];\n const urls = {};\n const lookup = {};\n const _listeners = [];\n const runListeners = (name, state) => {\n const matchedListeners = filter$5(_listeners, listener => listener.name === name && listener.state === state);\n each$e(matchedListeners, listener => listener.resolve());\n };\n const isLoaded = name => has$2(urls, name);\n const isAdded = name => has$2(lookup, name);\n const get = name => {\n if (lookup[name]) {\n return lookup[name].instance;\n }\n return undefined;\n };\n const loadLanguagePack = (name, languages) => {\n const language = I18n.getCode();\n const wrappedLanguages = ',' + (languages || '') + ',';\n if (!language || languages && wrappedLanguages.indexOf(',' + language + ',') === -1) {\n return;\n }\n ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js');\n };\n const requireLangPack = (name, languages) => {\n if (AddOnManager.languageLoad !== false) {\n if (isLoaded(name)) {\n loadLanguagePack(name, languages);\n } else {\n waitFor(name, 'loaded').then(() => loadLanguagePack(name, languages));\n }\n }\n };\n const add = (id, addOn) => {\n items.push(addOn);\n lookup[id] = { instance: addOn };\n runListeners(id, 'added');\n return addOn;\n };\n const remove = name => {\n delete urls[name];\n delete lookup[name];\n };\n const createUrl = (baseUrl, dep) => {\n if (isString(dep)) {\n return isString(baseUrl) ? {\n prefix: '',\n resource: dep,\n suffix: ''\n } : {\n prefix: baseUrl.prefix,\n resource: dep,\n suffix: baseUrl.suffix\n };\n } else {\n return dep;\n }\n };\n const load = (name, addOnUrl) => {\n if (urls[name]) {\n return Promise.resolve();\n }\n let urlString = isString(addOnUrl) ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix;\n if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) {\n urlString = AddOnManager.baseURL + '/' + urlString;\n }\n urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));\n const done = () => {\n runListeners(name, 'loaded');\n return Promise.resolve();\n };\n if (lookup[name]) {\n return done();\n } else {\n return ScriptLoader.ScriptLoader.add(urlString).then(done);\n }\n };\n const waitFor = (name, state = 'added') => {\n if (state === 'added' && isAdded(name)) {\n return Promise.resolve();\n } else if (state === 'loaded' && isLoaded(name)) {\n return Promise.resolve();\n } else {\n return new Promise(resolve => {\n _listeners.push({\n name,\n state,\n resolve\n });\n });\n }\n };\n return {\n items,\n urls,\n lookup,\n get,\n requireLangPack,\n add,\n remove,\n createUrl,\n load,\n waitFor\n };\n };\n AddOnManager.languageLoad = true;\n AddOnManager.baseURL = '';\n AddOnManager.PluginManager = AddOnManager();\n AddOnManager.ThemeManager = AddOnManager();\n AddOnManager.ModelManager = AddOnManager();\n\n const first$1 = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const ancestor$1 = (scope, selector, isRoot) => ancestor$3(scope, selector, isRoot).isSome();\n\n const annotation = constant('mce-annotation');\n const dataAnnotation = constant('data-mce-annotation');\n const dataAnnotationId = constant('data-mce-annotation-uid');\n const dataAnnotationActive = constant('data-mce-annotation-active');\n const dataAnnotationClasses = constant('data-mce-annotation-classes');\n const dataAnnotationAttributes = constant('data-mce-annotation-attrs');\n\n const isRoot$1 = root => node => eq(node, root);\n const identify = (editor, annotationName) => {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const root = SugarElement.fromDom(editor.getBody());\n const selector = annotationName.fold(() => '.' + annotation(), an => `[${ dataAnnotation() }=\"${ an }\"]`);\n const newStart = child$1(start, rng.startOffset).getOr(start);\n const closest = closest$3(newStart, selector, isRoot$1(root));\n return closest.bind(c => getOpt(c, `${ dataAnnotationId() }`).bind(uid => getOpt(c, `${ dataAnnotation() }`).map(name => {\n const elements = findMarkers(editor, uid);\n return {\n uid,\n name,\n elements\n };\n })));\n };\n const isAnnotation = elem => isElement$7(elem) && has(elem, annotation());\n const isBogusElement = (elem, root) => has$1(elem, 'data-mce-bogus') || ancestor$1(elem, '[data-mce-bogus=\"all\"]', isRoot$1(root));\n const findMarkers = (editor, uid) => {\n const body = SugarElement.fromDom(editor.getBody());\n const descendants$1 = descendants(body, `[${ dataAnnotationId() }=\"${ uid }\"]`);\n return filter$5(descendants$1, descendant => !isBogusElement(descendant, body));\n };\n const findAll = (editor, name) => {\n const body = SugarElement.fromDom(editor.getBody());\n const markers = descendants(body, `[${ dataAnnotation() }=\"${ name }\"]`);\n const directory = {};\n each$e(markers, m => {\n if (!isBogusElement(m, body)) {\n const uid = get$9(m, dataAnnotationId());\n const nodesAlready = get$a(directory, uid).getOr([]);\n directory[uid] = nodesAlready.concat([m]);\n }\n });\n return directory;\n };\n\n const setup$y = (editor, registry) => {\n const changeCallbacks = Cell({});\n const initData = () => ({\n listeners: [],\n previous: value$2()\n });\n const withCallbacks = (name, f) => {\n updateCallbacks(name, data => {\n f(data);\n return data;\n });\n };\n const updateCallbacks = (name, f) => {\n const callbackMap = changeCallbacks.get();\n const data = get$a(callbackMap, name).getOrThunk(initData);\n const outputData = f(data);\n callbackMap[name] = outputData;\n changeCallbacks.set(callbackMap);\n };\n const fireCallbacks = (name, uid, elements) => {\n withCallbacks(name, data => {\n each$e(data.listeners, f => f(true, name, {\n uid,\n nodes: map$3(elements, elem => elem.dom)\n }));\n });\n };\n const fireNoAnnotation = name => {\n withCallbacks(name, data => {\n each$e(data.listeners, f => f(false, name));\n });\n };\n const toggleActiveAttr = (uid, state) => {\n each$e(findMarkers(editor, uid), elem => {\n if (state) {\n set$3(elem, dataAnnotationActive(), 'true');\n } else {\n remove$9(elem, dataAnnotationActive());\n }\n });\n };\n const onNodeChange = last(() => {\n const annotations = sort(registry.getNames());\n each$e(annotations, name => {\n updateCallbacks(name, data => {\n const prev = data.previous.get();\n identify(editor, Optional.some(name)).fold(() => {\n prev.each(uid => {\n fireNoAnnotation(name);\n data.previous.clear();\n toggleActiveAttr(uid, false);\n });\n }, ({uid, name, elements}) => {\n if (!is$2(prev, uid)) {\n prev.each(uid => toggleActiveAttr(uid, false));\n fireCallbacks(name, uid, elements);\n data.previous.set(uid);\n toggleActiveAttr(uid, true);\n }\n });\n return {\n previous: data.previous,\n listeners: data.listeners\n };\n });\n });\n }, 30);\n editor.on('remove', () => {\n onNodeChange.cancel();\n });\n editor.on('NodeChange', () => {\n onNodeChange.throttle();\n });\n const addListener = (name, f) => {\n updateCallbacks(name, data => ({\n previous: data.previous,\n listeners: data.listeners.concat([f])\n }));\n };\n return { addListener };\n };\n\n const setup$x = (editor, registry) => {\n const dataAnnotation$1 = dataAnnotation();\n const identifyParserNode = node => Optional.from(node.attr(dataAnnotation$1)).bind(registry.lookup);\n const removeDirectAnnotation = node => {\n var _a, _b;\n node.attr(dataAnnotationId(), null);\n node.attr(dataAnnotation(), null);\n node.attr(dataAnnotationActive(), null);\n const customAttrNames = Optional.from(node.attr(dataAnnotationAttributes())).map(names => names.split(',')).getOr([]);\n const customClasses = Optional.from(node.attr(dataAnnotationClasses())).map(names => names.split(',')).getOr([]);\n each$e(customAttrNames, name => node.attr(name, null));\n const classList = (_b = (_a = node.attr('class')) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];\n const newClassList = difference(classList, [annotation()].concat(customClasses));\n node.attr('class', newClassList.length > 0 ? newClassList.join(' ') : null);\n node.attr(dataAnnotationClasses(), null);\n node.attr(dataAnnotationAttributes(), null);\n };\n editor.serializer.addTempAttr(dataAnnotationActive());\n editor.serializer.addAttributeFilter(dataAnnotation$1, nodes => {\n for (const node of nodes) {\n identifyParserNode(node).each(settings => {\n if (settings.persistent === false) {\n if (node.name === 'span') {\n node.unwrap();\n } else {\n removeDirectAnnotation(node);\n }\n }\n });\n }\n });\n };\n\n const create$b = () => {\n const annotations = {};\n const register = (name, settings) => {\n annotations[name] = {\n name,\n settings\n };\n };\n const lookup = name => get$a(annotations, name).map(a => a.settings);\n const getNames = () => keys(annotations);\n return {\n register,\n lookup,\n getNames\n };\n };\n\n const clamp$2 = (value, min, max) => Math.min(Math.max(value, min), max);\n const random = () => window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295;\n\n let unique = 0;\n const generate$1 = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random$1 = Math.floor(random() * 1000000000);\n unique++;\n return prefix + '_' + random$1 + unique + String(time);\n };\n\n const add = (element, classes) => {\n each$e(classes, x => {\n add$2(element, x);\n });\n };\n const remove$3 = (element, classes) => {\n each$e(classes, x => {\n remove$6(element, x);\n });\n };\n\n const clone$2 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow$1 = original => clone$2(original, false);\n const deep$1 = original => clone$2(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$4(original);\n setAll$1(nu, attributes);\n return nu;\n };\n const mutate = (original, tag) => {\n const nu = shallowAs(original, tag);\n after$4(original, nu);\n const children = children$1(original);\n append(nu, children);\n remove$4(original);\n return nu;\n };\n\n const TextWalker = (startNode, rootNode, isBoundary = never) => {\n const walker = new DomTreeWalker(startNode, rootNode);\n const walk = direction => {\n let next;\n do {\n next = walker[direction]();\n } while (next && !isText$b(next) && !isBoundary(next));\n return Optional.from(next).filter(isText$b);\n };\n return {\n current: () => Optional.from(walker.current()).filter(isText$b),\n next: () => walk('next'),\n prev: () => walk('prev'),\n prev2: () => walk('prev2')\n };\n };\n\n const TextSeeker = (dom, isBoundary) => {\n const isBlockBoundary = isBoundary ? isBoundary : node => dom.isBlock(node) || isBr$6(node) || isContentEditableFalse$b(node);\n const walk = (node, offset, walker, process) => {\n if (isText$b(node)) {\n const newOffset = process(node, offset, node.data);\n if (newOffset !== -1) {\n return Optional.some({\n container: node,\n offset: newOffset\n });\n }\n }\n return walker().bind(next => walk(next.container, next.offset, walker, process));\n };\n const backwards = (node, offset, process, root) => {\n const walker = TextWalker(node, root !== null && root !== void 0 ? root : dom.getRoot(), isBlockBoundary);\n return walk(node, offset, () => walker.prev().map(prev => ({\n container: prev,\n offset: prev.length\n })), process).getOrNull();\n };\n const forwards = (node, offset, process, root) => {\n const walker = TextWalker(node, root !== null && root !== void 0 ? root : dom.getRoot(), isBlockBoundary);\n return walk(node, offset, () => walker.next().map(next => ({\n container: next,\n offset: 0\n })), process).getOrNull();\n };\n return {\n backwards,\n forwards\n };\n };\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api$1 = NodeValue(isText$c, 'text');\n const get$3 = element => api$1.get(element);\n const getOption = element => api$1.getOption(element);\n const set = (element, value) => api$1.set(element, value);\n\n const tableCells = [\n 'td',\n 'th'\n ];\n const tableSections = [\n 'thead',\n 'tbody',\n 'tfoot'\n ];\n const textBlocks = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div',\n 'address',\n 'pre',\n 'form',\n 'blockquote',\n 'center',\n 'dir',\n 'fieldset',\n 'header',\n 'footer',\n 'article',\n 'section',\n 'hgroup',\n 'aside',\n 'nav',\n 'figure'\n ];\n const listItems$1 = [\n 'li',\n 'dd',\n 'dt'\n ];\n const lists = [\n 'ul',\n 'ol',\n 'dl'\n ];\n const wsElements = [\n 'pre',\n 'script',\n 'textarea',\n 'style'\n ];\n const lazyLookup = items => {\n let lookup;\n return node => {\n lookup = lookup ? lookup : mapToObject(items, always);\n return has$2(lookup, name(node));\n };\n };\n const isTable$1 = node => name(node) === 'table';\n const isBr$5 = node => isElement$7(node) && name(node) === 'br';\n const isTextBlock$2 = lazyLookup(textBlocks);\n const isList = lazyLookup(lists);\n const isListItem$1 = lazyLookup(listItems$1);\n const isTableSection = lazyLookup(tableSections);\n const isTableCell$2 = lazyLookup(tableCells);\n const isWsPreserveElement = lazyLookup(wsElements);\n\n const getLastChildren$1 = elm => {\n const children = [];\n let rawNode = elm.dom;\n while (rawNode) {\n children.push(SugarElement.fromDom(rawNode));\n rawNode = rawNode.lastChild;\n }\n return children;\n };\n const removeTrailingBr = elm => {\n const allBrs = descendants(elm, 'br');\n const brs = filter$5(getLastChildren$1(elm).slice(-1), isBr$5);\n if (allBrs.length === brs.length) {\n each$e(brs, remove$4);\n }\n };\n const createPaddingBr = () => {\n const br = SugarElement.fromTag('br');\n set$3(br, 'data-mce-bogus', '1');\n return br;\n };\n const fillWithPaddingBr = elm => {\n empty(elm);\n append$1(elm, createPaddingBr());\n };\n const trimBlockTrailingBr = (elm, schema) => {\n lastChild(elm).each(lastChild => {\n prevSibling(lastChild).each(lastChildPrevSibling => {\n if (schema.isBlock(name(elm)) && isBr$5(lastChild) && schema.isBlock(name(lastChildPrevSibling))) {\n remove$4(lastChild);\n }\n });\n });\n };\n\n const ZWSP$1 = zeroWidth;\n const isZwsp = isZwsp$2;\n const trim$2 = removeZwsp;\n const insert$5 = editor => editor.insertContent(ZWSP$1, { preserve_zwsp: true });\n\n const isElement$5 = isElement$6;\n const isText$9 = isText$b;\n const isCaretContainerBlock$1 = node => {\n if (isText$9(node)) {\n node = node.parentNode;\n }\n return isElement$5(node) && node.hasAttribute('data-mce-caret');\n };\n const isCaretContainerInline = node => isText$9(node) && isZwsp(node.data);\n const isCaretContainer$2 = node => isCaretContainerBlock$1(node) || isCaretContainerInline(node);\n const hasContent = node => node.firstChild !== node.lastChild || !isBr$6(node.firstChild);\n const insertInline$1 = (node, before) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const textNode = doc.createTextNode(ZWSP$1);\n const parentNode = node.parentNode;\n if (!before) {\n const sibling = node.nextSibling;\n if (isText$9(sibling)) {\n if (isCaretContainer$2(sibling)) {\n return sibling;\n }\n if (startsWithCaretContainer$1(sibling)) {\n sibling.splitText(1);\n return sibling;\n }\n }\n if (node.nextSibling) {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(textNode, node.nextSibling);\n } else {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.appendChild(textNode);\n }\n } else {\n const sibling = node.previousSibling;\n if (isText$9(sibling)) {\n if (isCaretContainer$2(sibling)) {\n return sibling;\n }\n if (endsWithCaretContainer$1(sibling)) {\n return sibling.splitText(sibling.data.length - 1);\n }\n }\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(textNode, node);\n }\n return textNode;\n };\n const isBeforeInline = pos => {\n const container = pos.container();\n if (!isText$b(container)) {\n return false;\n }\n return container.data.charAt(pos.offset()) === ZWSP$1 || pos.isAtStart() && isCaretContainerInline(container.previousSibling);\n };\n const isAfterInline = pos => {\n const container = pos.container();\n if (!isText$b(container)) {\n return false;\n }\n return container.data.charAt(pos.offset() - 1) === ZWSP$1 || pos.isAtEnd() && isCaretContainerInline(container.nextSibling);\n };\n const insertBlock = (blockName, node, before) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const blockNode = doc.createElement(blockName);\n blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after');\n blockNode.setAttribute('data-mce-bogus', 'all');\n blockNode.appendChild(createPaddingBr().dom);\n const parentNode = node.parentNode;\n if (!before) {\n if (node.nextSibling) {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(blockNode, node.nextSibling);\n } else {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.appendChild(blockNode);\n }\n } else {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(blockNode, node);\n }\n return blockNode;\n };\n const startsWithCaretContainer$1 = node => isText$9(node) && node.data[0] === ZWSP$1;\n const endsWithCaretContainer$1 = node => isText$9(node) && node.data[node.data.length - 1] === ZWSP$1;\n const trimBogusBr = elm => {\n var _a;\n const brs = elm.getElementsByTagName('br');\n const lastBr = brs[brs.length - 1];\n if (isBogus$1(lastBr)) {\n (_a = lastBr.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(lastBr);\n }\n };\n const showCaretContainerBlock = caretContainer => {\n if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) {\n trimBogusBr(caretContainer);\n caretContainer.removeAttribute('data-mce-caret');\n caretContainer.removeAttribute('data-mce-bogus');\n caretContainer.removeAttribute('style');\n caretContainer.removeAttribute('data-mce-style');\n caretContainer.removeAttribute('_moz_abspos');\n return caretContainer;\n }\n return null;\n };\n const isRangeInCaretContainerBlock = range => isCaretContainerBlock$1(range.startContainer);\n\n const round$2 = Math.round;\n const clone$1 = rect => {\n if (!rect) {\n return {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n return {\n left: round$2(rect.left),\n top: round$2(rect.top),\n bottom: round$2(rect.bottom),\n right: round$2(rect.right),\n width: round$2(rect.width),\n height: round$2(rect.height)\n };\n };\n const collapse = (rect, toStart) => {\n rect = clone$1(rect);\n if (toStart) {\n rect.right = rect.left;\n } else {\n rect.left = rect.left + rect.width;\n rect.right = rect.left;\n }\n rect.width = 0;\n return rect;\n };\n const isEqual = (rect1, rect2) => rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right;\n const isValidOverflow = (overflowY, rect1, rect2) => overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;\n const isAbove$1 = (rect1, rect2) => {\n const halfHeight = Math.min(rect2.height / 2, rect1.height / 2);\n if (rect1.bottom - halfHeight < rect2.top) {\n return true;\n }\n if (rect1.top > rect2.bottom) {\n return false;\n }\n return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2);\n };\n const isBelow$1 = (rect1, rect2) => {\n if (rect1.top > rect2.bottom) {\n return true;\n }\n if (rect1.bottom < rect2.top) {\n return false;\n }\n return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2);\n };\n const containsXY = (rect, clientX, clientY) => clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n const boundingClientRectFromRects = rects => {\n return foldl(rects, (acc, rect) => {\n return acc.fold(() => Optional.some(rect), prevRect => {\n const left = Math.min(rect.left, prevRect.left);\n const top = Math.min(rect.top, prevRect.top);\n const right = Math.max(rect.right, prevRect.right);\n const bottom = Math.max(rect.bottom, prevRect.bottom);\n return Optional.some({\n top,\n right,\n bottom,\n left,\n width: right - left,\n height: bottom - top\n });\n });\n }, Optional.none());\n };\n const distanceToRectEdgeFromXY = (rect, x, y) => {\n const cx = Math.max(Math.min(x, rect.left + rect.width), rect.left);\n const cy = Math.max(Math.min(y, rect.top + rect.height), rect.top);\n return Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy));\n };\n const overlapY = (r1, r2) => Math.max(0, Math.min(r1.bottom, r2.bottom) - Math.max(r1.top, r2.top));\n\n const getSelectedNode = range => {\n const startContainer = range.startContainer, startOffset = range.startOffset;\n if (startContainer === range.endContainer && startContainer.hasChildNodes() && range.endOffset === startOffset + 1) {\n return startContainer.childNodes[startOffset];\n }\n return null;\n };\n const getNode$1 = (container, offset) => {\n if (isElement$6(container) && container.hasChildNodes()) {\n const childNodes = container.childNodes;\n const safeOffset = clamp$2(offset, 0, childNodes.length - 1);\n return childNodes[safeOffset];\n } else {\n return container;\n }\n };\n const getNodeUnsafe = (container, offset) => {\n if (offset < 0 && isElement$6(container) && container.hasChildNodes()) {\n return undefined;\n } else {\n return getNode$1(container, offset);\n }\n };\n\n const extendingChars = new RegExp('[\\u0300-\\u036f\\u0483-\\u0487\\u0488-\\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\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e3-\\u0902\\u093a\\u093c' + '\\u0941-\\u0948\\u094d\\u0951-\\u0957\\u0962-\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2-\\u09e3' + '\\u0a01-\\u0a02\\u0a3c\\u0a41-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70-\\u0a71\\u0a75\\u0a81-\\u0a82\\u0abc' + '\\u0ac1-\\u0ac5\\u0ac7-\\u0ac8\\u0acd\\u0ae2-\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57' + '\\u0b62-\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c00\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56' + '\\u0c62-\\u0c63\\u0c81\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc-\\u0ccd\\u0cd5-\\u0cd6\\u0ce2-\\u0ce3\\u0d01\\u0d3e\\u0d41-\\u0d44' + '\\u0d4d\\u0d57\\u0d62-\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9' + '\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86-\\u0f87\\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\\u18a9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193b\\u1a17-\\u1a18' + '\\u1a1b\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1ab0-\\u1abd\\u1ABE\\u1b00-\\u1b03\\u1b34' + '\\u1b36-\\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-\\u1df5\\u1dfc-\\u1dff\\u200c-\\u200d\\u20d0-\\u20dc\\u20DD-\\u20E0\\u20e1\\u20E2-\\u20E4\\u20e5-\\u20f0\\u2cef-\\u2cf1' + '\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302d\\u302e-\\u302f\\u3099-\\u309a\\ua66f\\uA670-\\uA672\\ua674-\\ua67d\\ua69e-\\ua69f\\ua6f0-\\ua6f1' + '\\ua802\\ua806\\ua80b\\ua825-\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc' + '\\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]');\n const isExtendingChar = ch => isString(ch) && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);\n\n const or = (...args) => {\n return x => {\n for (let i = 0; i < args.length; i++) {\n if (args[i](x)) {\n return true;\n }\n }\n return false;\n };\n };\n const and = (...args) => {\n return x => {\n for (let i = 0; i < args.length; i++) {\n if (!args[i](x)) {\n return false;\n }\n }\n return true;\n };\n };\n\n const isContentEditableTrue$2 = isContentEditableTrue$3;\n const isContentEditableFalse$a = isContentEditableFalse$b;\n const isBr$4 = isBr$6;\n const isText$8 = isText$b;\n const isInvalidTextElement = matchNodeNames([\n 'script',\n 'style',\n 'textarea'\n ]);\n const isAtomicInline = matchNodeNames([\n 'img',\n 'input',\n 'textarea',\n 'hr',\n 'iframe',\n 'video',\n 'audio',\n 'object',\n 'embed'\n ]);\n const isTable = matchNodeNames(['table']);\n const isCaretContainer$1 = isCaretContainer$2;\n const isCaretCandidate$3 = node => {\n if (isCaretContainer$1(node)) {\n return false;\n }\n if (isText$8(node)) {\n return !isInvalidTextElement(node.parentNode);\n }\n return isAtomicInline(node) || isBr$4(node) || isTable(node) || isNonUiContentEditableFalse(node);\n };\n const isUnselectable = node => isElement$6(node) && node.getAttribute('unselectable') === 'true';\n const isNonUiContentEditableFalse = node => !isUnselectable(node) && isContentEditableFalse$a(node);\n const isInEditable = (node, root) => {\n for (let tempNode = node.parentNode; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n if (isNonUiContentEditableFalse(tempNode)) {\n return false;\n }\n if (isContentEditableTrue$2(tempNode)) {\n return true;\n }\n }\n return true;\n };\n const isAtomicContentEditableFalse = node => {\n if (!isNonUiContentEditableFalse(node)) {\n return false;\n }\n return !foldl(from(node.getElementsByTagName('*')), (result, elm) => {\n return result || isContentEditableTrue$2(elm);\n }, false);\n };\n const isAtomic$1 = node => isAtomicInline(node) || isAtomicContentEditableFalse(node);\n const isEditableCaretCandidate$1 = (node, root) => isCaretCandidate$3(node) && isInEditable(node, root);\n\n const isElement$4 = isElement$6;\n const isCaretCandidate$2 = isCaretCandidate$3;\n const isBlock$2 = matchStyleValues('display', 'block table');\n const isFloated = matchStyleValues('float', 'left right');\n const isValidElementCaretCandidate = and(isElement$4, isCaretCandidate$2, not(isFloated));\n const isNotPre = not(matchStyleValues('white-space', 'pre pre-line pre-wrap'));\n const isText$7 = isText$b;\n const isBr$3 = isBr$6;\n const nodeIndex$1 = DOMUtils.nodeIndex;\n const resolveIndex$1 = getNodeUnsafe;\n const createRange$1 = doc => doc ? doc.createRange() : DOMUtils.DOM.createRng();\n const isWhiteSpace$1 = chr => isString(chr) && /[\\r\\n\\t ]/.test(chr);\n const isRange = rng => !!rng.setStart && !!rng.setEnd;\n const isHiddenWhiteSpaceRange = range => {\n const container = range.startContainer;\n const offset = range.startOffset;\n if (isWhiteSpace$1(range.toString()) && isNotPre(container.parentNode) && isText$b(container)) {\n const text = container.data;\n if (isWhiteSpace$1(text[offset - 1]) || isWhiteSpace$1(text[offset + 1])) {\n return true;\n }\n }\n return false;\n };\n const getBrClientRect = brNode => {\n const doc = brNode.ownerDocument;\n const rng = createRange$1(doc);\n const nbsp$1 = doc.createTextNode(nbsp);\n const parentNode = brNode.parentNode;\n parentNode.insertBefore(nbsp$1, brNode);\n rng.setStart(nbsp$1, 0);\n rng.setEnd(nbsp$1, 1);\n const clientRect = clone$1(rng.getBoundingClientRect());\n parentNode.removeChild(nbsp$1);\n return clientRect;\n };\n const getBoundingClientRectWebKitText = rng => {\n const sc = rng.startContainer;\n const ec = rng.endContainer;\n const so = rng.startOffset;\n const eo = rng.endOffset;\n if (sc === ec && isText$b(ec) && so === 0 && eo === 1) {\n const newRng = rng.cloneRange();\n newRng.setEndAfter(ec);\n return getBoundingClientRect$1(newRng);\n } else {\n return null;\n }\n };\n const isZeroRect = r => r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0;\n const getBoundingClientRect$1 = item => {\n var _a;\n let clientRect;\n const clientRects = item.getClientRects();\n if (clientRects.length > 0) {\n clientRect = clone$1(clientRects[0]);\n } else {\n clientRect = clone$1(item.getBoundingClientRect());\n }\n if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {\n return getBrClientRect(item);\n }\n if (isZeroRect(clientRect) && isRange(item)) {\n return (_a = getBoundingClientRectWebKitText(item)) !== null && _a !== void 0 ? _a : clientRect;\n }\n return clientRect;\n };\n const collapseAndInflateWidth = (clientRect, toStart) => {\n const newClientRect = collapse(clientRect, toStart);\n newClientRect.width = 1;\n newClientRect.right = newClientRect.left + 1;\n return newClientRect;\n };\n const getCaretPositionClientRects = caretPosition => {\n const clientRects = [];\n const addUniqueAndValidRect = clientRect => {\n if (clientRect.height === 0) {\n return;\n }\n if (clientRects.length > 0) {\n if (isEqual(clientRect, clientRects[clientRects.length - 1])) {\n return;\n }\n }\n clientRects.push(clientRect);\n };\n const addCharacterOffset = (container, offset) => {\n const range = createRange$1(container.ownerDocument);\n if (offset < container.data.length) {\n if (isExtendingChar(container.data[offset])) {\n return;\n }\n if (isExtendingChar(container.data[offset - 1])) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), false));\n return;\n }\n }\n }\n if (offset > 0) {\n range.setStart(container, offset - 1);\n range.setEnd(container, offset);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), false));\n }\n }\n if (offset < container.data.length) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), true));\n }\n }\n };\n const container = caretPosition.container();\n const offset = caretPosition.offset();\n if (isText$7(container)) {\n addCharacterOffset(container, offset);\n return clientRects;\n }\n if (isElement$4(container)) {\n if (caretPosition.isAtEnd()) {\n const node = resolveIndex$1(container, offset);\n if (isText$7(node)) {\n addCharacterOffset(node, node.data.length);\n }\n if (isValidElementCaretCandidate(node) && !isBr$3(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), false));\n }\n } else {\n const node = resolveIndex$1(container, offset);\n if (isText$7(node)) {\n addCharacterOffset(node, 0);\n }\n if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), false));\n return clientRects;\n }\n const beforeNode = resolveIndex$1(caretPosition.container(), caretPosition.offset() - 1);\n if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) {\n if (isBlock$2(beforeNode) || isBlock$2(node) || !isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(beforeNode), false));\n }\n }\n if (isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), true));\n }\n }\n }\n return clientRects;\n };\n const CaretPosition = (container, offset, clientRects) => {\n const isAtStart = () => {\n if (isText$7(container)) {\n return offset === 0;\n }\n return offset === 0;\n };\n const isAtEnd = () => {\n if (isText$7(container)) {\n return offset >= container.data.length;\n }\n return offset >= container.childNodes.length;\n };\n const toRange = () => {\n const range = createRange$1(container.ownerDocument);\n range.setStart(container, offset);\n range.setEnd(container, offset);\n return range;\n };\n const getClientRects = () => {\n if (!clientRects) {\n clientRects = getCaretPositionClientRects(CaretPosition(container, offset));\n }\n return clientRects;\n };\n const isVisible = () => getClientRects().length > 0;\n const isEqual = caretPosition => caretPosition && container === caretPosition.container() && offset === caretPosition.offset();\n const getNode = before => resolveIndex$1(container, before ? offset - 1 : offset);\n return {\n container: constant(container),\n offset: constant(offset),\n toRange,\n getClientRects,\n isVisible,\n isAtStart,\n isAtEnd,\n isEqual,\n getNode\n };\n };\n CaretPosition.fromRangeStart = range => CaretPosition(range.startContainer, range.startOffset);\n CaretPosition.fromRangeEnd = range => CaretPosition(range.endContainer, range.endOffset);\n CaretPosition.after = node => CaretPosition(node.parentNode, nodeIndex$1(node) + 1);\n CaretPosition.before = node => CaretPosition(node.parentNode, nodeIndex$1(node));\n CaretPosition.isAbove = (pos1, pos2) => lift2(head(pos2.getClientRects()), last$2(pos1.getClientRects()), isAbove$1).getOr(false);\n CaretPosition.isBelow = (pos1, pos2) => lift2(last$2(pos2.getClientRects()), head(pos1.getClientRects()), isBelow$1).getOr(false);\n CaretPosition.isAtStart = pos => pos ? pos.isAtStart() : false;\n CaretPosition.isAtEnd = pos => pos ? pos.isAtEnd() : false;\n CaretPosition.isTextPosition = pos => pos ? isText$b(pos.container()) : false;\n CaretPosition.isElementPosition = pos => !CaretPosition.isTextPosition(pos);\n\n const trimEmptyTextNode$1 = (dom, node) => {\n if (isText$b(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n const insertNode = (dom, rng, node) => {\n rng.insertNode(node);\n trimEmptyTextNode$1(dom, node.previousSibling);\n trimEmptyTextNode$1(dom, node.nextSibling);\n };\n const insertFragment = (dom, rng, frag) => {\n const firstChild = Optional.from(frag.firstChild);\n const lastChild = Optional.from(frag.lastChild);\n rng.insertNode(frag);\n firstChild.each(child => trimEmptyTextNode$1(dom, child.previousSibling));\n lastChild.each(child => trimEmptyTextNode$1(dom, child.nextSibling));\n };\n const rangeInsertNode = (dom, rng, node) => {\n if (isDocumentFragment(node)) {\n insertFragment(dom, rng, node);\n } else {\n insertNode(dom, rng, node);\n }\n };\n\n const isText$6 = isText$b;\n const isBogus = isBogus$1;\n const nodeIndex = DOMUtils.nodeIndex;\n const normalizedParent = node => {\n const parentNode = node.parentNode;\n if (isBogus(parentNode)) {\n return normalizedParent(parentNode);\n }\n return parentNode;\n };\n const getChildNodes = node => {\n if (!node) {\n return [];\n }\n return reduce(node.childNodes, (result, node) => {\n if (isBogus(node) && node.nodeName !== 'BR') {\n result = result.concat(getChildNodes(node));\n } else {\n result.push(node);\n }\n return result;\n }, []);\n };\n const normalizedTextOffset = (node, offset) => {\n let tempNode = node;\n while (tempNode = tempNode.previousSibling) {\n if (!isText$6(tempNode)) {\n break;\n }\n offset += tempNode.data.length;\n }\n return offset;\n };\n const equal = a => b => a === b;\n const normalizedNodeIndex = node => {\n let nodes, index;\n nodes = getChildNodes(normalizedParent(node));\n index = findIndex$1(nodes, equal(node), node);\n nodes = nodes.slice(0, index + 1);\n const numTextFragments = reduce(nodes, (result, node, i) => {\n if (isText$6(node) && isText$6(nodes[i - 1])) {\n result++;\n }\n return result;\n }, 0);\n nodes = filter$3(nodes, matchNodeNames([node.nodeName]));\n index = findIndex$1(nodes, equal(node), node);\n return index - numTextFragments;\n };\n const createPathItem = node => {\n const name = isText$6(node) ? 'text()' : node.nodeName.toLowerCase();\n return name + '[' + normalizedNodeIndex(node) + ']';\n };\n const parentsUntil$1 = (root, node, predicate) => {\n const parents = [];\n for (let tempNode = node.parentNode; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n if (predicate && predicate(tempNode)) {\n break;\n }\n parents.push(tempNode);\n }\n return parents;\n };\n const create$a = (root, caretPosition) => {\n let path = [];\n let container = caretPosition.container();\n let offset = caretPosition.offset();\n let outputOffset;\n if (isText$6(container)) {\n outputOffset = normalizedTextOffset(container, offset);\n } else {\n const childNodes = container.childNodes;\n if (offset >= childNodes.length) {\n outputOffset = 'after';\n offset = childNodes.length - 1;\n } else {\n outputOffset = 'before';\n }\n container = childNodes[offset];\n }\n path.push(createPathItem(container));\n let parents = parentsUntil$1(root, container);\n parents = filter$3(parents, not(isBogus$1));\n path = path.concat(map$1(parents, node => {\n return createPathItem(node);\n }));\n return path.reverse().join('/') + ',' + outputOffset;\n };\n const resolvePathItem = (node, name, index) => {\n let nodes = getChildNodes(node);\n nodes = filter$3(nodes, (node, index) => {\n return !isText$6(node) || !isText$6(nodes[index - 1]);\n });\n nodes = filter$3(nodes, matchNodeNames([name]));\n return nodes[index];\n };\n const findTextPosition = (container, offset) => {\n let node = container;\n let targetOffset = 0;\n while (isText$6(node)) {\n const dataLen = node.data.length;\n if (offset >= targetOffset && offset <= targetOffset + dataLen) {\n container = node;\n offset = offset - targetOffset;\n break;\n }\n if (!isText$6(node.nextSibling)) {\n container = node;\n offset = dataLen;\n break;\n }\n targetOffset += dataLen;\n node = node.nextSibling;\n }\n if (isText$6(container) && offset > container.data.length) {\n offset = container.data.length;\n }\n return CaretPosition(container, offset);\n };\n const resolve$1 = (root, path) => {\n if (!path) {\n return null;\n }\n const parts = path.split(',');\n const paths = parts[0].split('/');\n const offset = parts.length > 1 ? parts[1] : 'before';\n const container = reduce(paths, (result, value) => {\n const match = /([\\w\\-\\(\\)]+)\\[([0-9]+)\\]/.exec(value);\n if (!match) {\n return null;\n }\n if (match[1] === 'text()') {\n match[1] = '#text';\n }\n return resolvePathItem(result, match[1], parseInt(match[2], 10));\n }, root);\n if (!container) {\n return null;\n }\n if (!isText$6(container) && container.parentNode) {\n let nodeOffset;\n if (offset === 'after') {\n nodeOffset = nodeIndex(container) + 1;\n } else {\n nodeOffset = nodeIndex(container);\n }\n return CaretPosition(container.parentNode, nodeOffset);\n }\n return findTextPosition(container, parseInt(offset, 10));\n };\n\n const isContentEditableFalse$9 = isContentEditableFalse$b;\n const getNormalizedTextOffset$1 = (trim, container, offset) => {\n let trimmedOffset = trim(container.data.slice(0, offset)).length;\n for (let node = container.previousSibling; node && isText$b(node); node = node.previousSibling) {\n trimmedOffset += trim(node.data).length;\n }\n return trimmedOffset;\n };\n const getPoint = (dom, trim, normalized, rng, start) => {\n const container = start ? rng.startContainer : rng.endContainer;\n let offset = start ? rng.startOffset : rng.endOffset;\n const point = [];\n const root = dom.getRoot();\n if (isText$b(container)) {\n point.push(normalized ? getNormalizedTextOffset$1(trim, container, offset) : offset);\n } else {\n let after = 0;\n const childNodes = container.childNodes;\n if (offset >= childNodes.length && childNodes.length) {\n after = 1;\n offset = Math.max(0, childNodes.length - 1);\n }\n point.push(dom.nodeIndex(childNodes[offset], normalized) + after);\n }\n for (let node = container; node && node !== root; node = node.parentNode) {\n point.push(dom.nodeIndex(node, normalized));\n }\n return point;\n };\n const getLocation = (trim, selection, normalized, rng) => {\n const dom = selection.dom;\n const start = getPoint(dom, trim, normalized, rng, true);\n const forward = selection.isForward();\n const fakeCaret = isRangeInCaretContainerBlock(rng) ? { isFakeCaret: true } : {};\n if (!selection.isCollapsed()) {\n const end = getPoint(dom, trim, normalized, rng, false);\n return {\n start,\n end,\n forward,\n ...fakeCaret\n };\n } else {\n return {\n start,\n forward,\n ...fakeCaret\n };\n }\n };\n const findIndex = (dom, name, element) => {\n let count = 0;\n Tools.each(dom.select(name), node => {\n if (node.getAttribute('data-mce-bogus') === 'all') {\n return;\n } else if (node === element) {\n return false;\n } else {\n count++;\n return;\n }\n });\n return count;\n };\n const moveEndPoint$1 = (rng, start) => {\n let container = start ? rng.startContainer : rng.endContainer;\n let offset = start ? rng.startOffset : rng.endOffset;\n if (isElement$6(container) && container.nodeName === 'TR') {\n const childNodes = container.childNodes;\n container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];\n if (container) {\n offset = start ? 0 : container.childNodes.length;\n if (start) {\n rng.setStart(container, offset);\n } else {\n rng.setEnd(container, offset);\n }\n }\n }\n };\n const normalizeTableCellSelection = rng => {\n moveEndPoint$1(rng, true);\n moveEndPoint$1(rng, false);\n return rng;\n };\n const findSibling = (node, offset) => {\n if (isElement$6(node)) {\n node = getNode$1(node, offset);\n if (isContentEditableFalse$9(node)) {\n return node;\n }\n }\n if (isCaretContainer$2(node)) {\n if (isText$b(node) && isCaretContainerBlock$1(node)) {\n node = node.parentNode;\n }\n let sibling = node.previousSibling;\n if (isContentEditableFalse$9(sibling)) {\n return sibling;\n }\n sibling = node.nextSibling;\n if (isContentEditableFalse$9(sibling)) {\n return sibling;\n }\n }\n return undefined;\n };\n const findAdjacentContentEditableFalseElm = rng => {\n return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);\n };\n const getOffsetBookmark = (trim, normalized, selection) => {\n const element = selection.getNode();\n const rng = selection.getRng();\n if (element.nodeName === 'IMG' || isContentEditableFalse$9(element)) {\n const name = element.nodeName;\n return {\n name,\n index: findIndex(selection.dom, name, element)\n };\n }\n const sibling = findAdjacentContentEditableFalseElm(rng);\n if (sibling) {\n const name = sibling.tagName;\n return {\n name,\n index: findIndex(selection.dom, name, sibling)\n };\n }\n return getLocation(trim, selection, normalized, rng);\n };\n const getCaretBookmark = selection => {\n const rng = selection.getRng();\n return {\n start: create$a(selection.dom.getRoot(), CaretPosition.fromRangeStart(rng)),\n end: create$a(selection.dom.getRoot(), CaretPosition.fromRangeEnd(rng)),\n forward: selection.isForward()\n };\n };\n const getRangeBookmark = selection => {\n return {\n rng: selection.getRng(),\n forward: selection.isForward()\n };\n };\n const createBookmarkSpan = (dom, id, filled) => {\n const args = {\n 'data-mce-type': 'bookmark',\n id,\n 'style': 'overflow:hidden;line-height:0px'\n };\n return filled ? dom.create('span', args, '') : dom.create('span', args);\n };\n const getPersistentBookmark = (selection, filled) => {\n const dom = selection.dom;\n let rng = selection.getRng();\n const id = dom.uniqueId();\n const collapsed = selection.isCollapsed();\n const element = selection.getNode();\n const name = element.nodeName;\n const forward = selection.isForward();\n if (name === 'IMG') {\n return {\n name,\n index: findIndex(dom, name, element)\n };\n }\n const rng2 = normalizeTableCellSelection(rng.cloneRange());\n if (!collapsed) {\n rng2.collapse(false);\n const endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);\n rangeInsertNode(dom, rng2, endBookmarkNode);\n }\n rng = normalizeTableCellSelection(rng);\n rng.collapse(true);\n const startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);\n rangeInsertNode(dom, rng, startBookmarkNode);\n selection.moveToBookmark({\n id,\n keep: true,\n forward\n });\n return {\n id,\n forward\n };\n };\n const getBookmark$3 = (selection, type, normalized = false) => {\n if (type === 2) {\n return getOffsetBookmark(trim$2, normalized, selection);\n } else if (type === 3) {\n return getCaretBookmark(selection);\n } else if (type) {\n return getRangeBookmark(selection);\n } else {\n return getPersistentBookmark(selection, false);\n }\n };\n const getUndoBookmark = curry(getOffsetBookmark, identity, true);\n\n const value$1 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply$1,\n orThunk: apply$1,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error(err), value$1);\n const Result = {\n value: value$1,\n error,\n fromOption\n };\n\n const generate = cases => {\n if (!isArray$1(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$e(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray$1(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate };\n\n Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n const partition$1 = results => {\n const errors = [];\n const values = [];\n each$e(results, result => {\n result.fold(err => {\n errors.push(err);\n }, value => {\n values.push(value);\n });\n });\n return {\n errors,\n values\n };\n };\n\n const isInlinePattern = pattern => pattern.type === 'inline-command' || pattern.type === 'inline-format';\n const isBlockPattern = pattern => pattern.type === 'block-command' || pattern.type === 'block-format';\n const hasBlockTrigger = (pattern, trigger) => (pattern.type === 'block-command' || pattern.type === 'block-format') && pattern.trigger === trigger;\n const normalizePattern = pattern => {\n var _a;\n const err = message => Result.error({\n message,\n pattern\n });\n const formatOrCmd = (name, onFormat, onCommand) => {\n if (pattern.format !== undefined) {\n let formats;\n if (isArray$1(pattern.format)) {\n if (!forall(pattern.format, isString)) {\n return err(name + ' pattern has non-string items in the `format` array');\n }\n formats = pattern.format;\n } else if (isString(pattern.format)) {\n formats = [pattern.format];\n } else {\n return err(name + ' pattern has non-string `format` parameter');\n }\n return Result.value(onFormat(formats));\n } else if (pattern.cmd !== undefined) {\n if (!isString(pattern.cmd)) {\n return err(name + ' pattern has non-string `cmd` parameter');\n }\n return Result.value(onCommand(pattern.cmd, pattern.value));\n } else {\n return err(name + ' pattern is missing both `format` and `cmd` parameters');\n }\n };\n if (!isObject(pattern)) {\n return err('Raw pattern is not an object');\n }\n if (!isString(pattern.start)) {\n return err('Raw pattern is missing `start` parameter');\n }\n if (pattern.end !== undefined) {\n if (!isString(pattern.end)) {\n return err('Inline pattern has non-string `end` parameter');\n }\n if (pattern.start.length === 0 && pattern.end.length === 0) {\n return err('Inline pattern has empty `start` and `end` parameters');\n }\n let start = pattern.start;\n let end = pattern.end;\n if (end.length === 0) {\n end = start;\n start = '';\n }\n return formatOrCmd('Inline', format => ({\n type: 'inline-format',\n start,\n end,\n format\n }), (cmd, value) => ({\n type: 'inline-command',\n start,\n end,\n cmd,\n value\n }));\n } else if (pattern.replacement !== undefined) {\n if (!isString(pattern.replacement)) {\n return err('Replacement pattern has non-string `replacement` parameter');\n }\n if (pattern.start.length === 0) {\n return err('Replacement pattern has empty `start` parameter');\n }\n return Result.value({\n type: 'inline-command',\n start: '',\n end: pattern.start,\n cmd: 'mceInsertContent',\n value: pattern.replacement\n });\n } else {\n const trigger = (_a = pattern.trigger) !== null && _a !== void 0 ? _a : 'space';\n if (pattern.start.length === 0) {\n return err('Block pattern has empty `start` parameter');\n }\n return formatOrCmd('Block', formats => ({\n type: 'block-format',\n start: pattern.start,\n format: formats[0],\n trigger\n }), (command, commandValue) => ({\n type: 'block-command',\n start: pattern.start,\n cmd: command,\n value: commandValue,\n trigger\n }));\n }\n };\n const getBlockPatterns = patterns => filter$5(patterns, isBlockPattern);\n const getInlinePatterns = patterns => filter$5(patterns, isInlinePattern);\n const createPatternSet = (patterns, dynamicPatternsLookup) => ({\n inlinePatterns: getInlinePatterns(patterns),\n blockPatterns: getBlockPatterns(patterns),\n dynamicPatternsLookup\n });\n const filterByTrigger = (patterns, trigger) => {\n return {\n ...patterns,\n blockPatterns: filter$5(patterns.blockPatterns, pattern => hasBlockTrigger(pattern, trigger))\n };\n };\n const fromRawPatterns = patterns => {\n const normalized = partition$1(map$3(patterns, normalizePattern));\n each$e(normalized.errors, err => console.error(err.message, err.pattern));\n return normalized.values;\n };\n const fromRawPatternsLookup = lookupFn => {\n return ctx => {\n const rawPatterns = lookupFn(ctx);\n return fromRawPatterns(rawPatterns);\n };\n };\n\n const deviceDetection$1 = detect$1().deviceType;\n const isTouch = deviceDetection$1.isTouch();\n const DOM$a = DOMUtils.DOM;\n const getHash = value => {\n const items = value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(',');\n return foldl(items, (output, item) => {\n const arr = item.split('=');\n const key = arr[0];\n const val = arr.length > 1 ? arr[1] : key;\n output[trim$4(key)] = trim$4(val);\n return output;\n }, {});\n };\n const isRegExp = x => is$4(x, RegExp);\n const option = name => editor => editor.options.get(name);\n const stringOrObjectProcessor = value => isString(value) || isObject(value);\n const bodyOptionProcessor = (editor, defaultValue = '') => value => {\n const valid = isString(value);\n if (valid) {\n if (value.indexOf('=') !== -1) {\n const bodyObj = getHash(value);\n return {\n value: get$a(bodyObj, editor.id).getOr(defaultValue),\n valid\n };\n } else {\n return {\n value,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be a string.'\n };\n }\n };\n const register$7 = editor => {\n const registerOption = editor.options.register;\n registerOption('id', {\n processor: 'string',\n default: editor.id\n });\n registerOption('selector', { processor: 'string' });\n registerOption('target', { processor: 'object' });\n registerOption('suffix', { processor: 'string' });\n registerOption('cache_suffix', { processor: 'string' });\n registerOption('base_url', { processor: 'string' });\n registerOption('referrer_policy', {\n processor: 'string',\n default: ''\n });\n registerOption('language_load', {\n processor: 'boolean',\n default: true\n });\n registerOption('inline', {\n processor: 'boolean',\n default: false\n });\n registerOption('iframe_attrs', {\n processor: 'object',\n default: {}\n });\n registerOption('doctype', {\n processor: 'string',\n default: ''\n });\n registerOption('document_base_url', {\n processor: 'string',\n default: editor.documentBaseUrl\n });\n registerOption('body_id', {\n processor: bodyOptionProcessor(editor, 'tinymce'),\n default: 'tinymce'\n });\n registerOption('body_class', {\n processor: bodyOptionProcessor(editor),\n default: ''\n });\n registerOption('content_security_policy', {\n processor: 'string',\n default: ''\n });\n registerOption('br_in_pre', {\n processor: 'boolean',\n default: true\n });\n registerOption('forced_root_block', {\n processor: value => {\n const valid = isString(value) && isNotEmpty(value);\n if (valid) {\n return {\n value,\n valid\n };\n } else {\n return {\n valid: false,\n message: 'Must be a non-empty string.'\n };\n }\n },\n default: 'p'\n });\n registerOption('forced_root_block_attrs', {\n processor: 'object',\n default: {}\n });\n registerOption('newline_behavior', {\n processor: value => {\n const valid = contains$2([\n 'block',\n 'linebreak',\n 'invert',\n 'default'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: block, linebreak, invert or default.'\n };\n },\n default: 'default'\n });\n registerOption('br_newline_selector', {\n processor: 'string',\n default: '.mce-toc h2,figcaption,caption'\n });\n registerOption('no_newline_selector', {\n processor: 'string',\n default: ''\n });\n registerOption('keep_styles', {\n processor: 'boolean',\n default: true\n });\n registerOption('end_container_on_empty_block', {\n processor: value => {\n if (isBoolean(value)) {\n return {\n valid: true,\n value\n };\n } else if (isString(value)) {\n return {\n valid: true,\n value\n };\n } else {\n return {\n valid: false,\n message: 'Must be boolean or a string'\n };\n }\n },\n default: 'blockquote'\n });\n registerOption('font_size_style_values', {\n processor: 'string',\n default: 'xx-small,x-small,small,medium,large,x-large,xx-large'\n });\n registerOption('font_size_legacy_values', {\n processor: 'string',\n default: 'xx-small,small,medium,large,x-large,xx-large,300%'\n });\n registerOption('font_size_classes', {\n processor: 'string',\n default: ''\n });\n registerOption('automatic_uploads', {\n processor: 'boolean',\n default: true\n });\n registerOption('images_reuse_filename', {\n processor: 'boolean',\n default: false\n });\n registerOption('images_replace_blob_uris', {\n processor: 'boolean',\n default: true\n });\n registerOption('icons', {\n processor: 'string',\n default: ''\n });\n registerOption('icons_url', {\n processor: 'string',\n default: ''\n });\n registerOption('images_upload_url', {\n processor: 'string',\n default: ''\n });\n registerOption('images_upload_base_path', {\n processor: 'string',\n default: ''\n });\n registerOption('images_upload_credentials', {\n processor: 'boolean',\n default: false\n });\n registerOption('images_upload_handler', { processor: 'function' });\n registerOption('language', {\n processor: 'string',\n default: 'en'\n });\n registerOption('language_url', {\n processor: 'string',\n default: ''\n });\n registerOption('entity_encoding', {\n processor: 'string',\n default: 'named'\n });\n registerOption('indent', {\n processor: 'boolean',\n default: true\n });\n registerOption('indent_before', {\n processor: 'string',\n default: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,details,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist'\n });\n registerOption('indent_after', {\n processor: 'string',\n default: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,details,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist'\n });\n registerOption('indent_use_margin', {\n processor: 'boolean',\n default: false\n });\n registerOption('indentation', {\n processor: 'string',\n default: '40px'\n });\n registerOption('content_css', {\n processor: value => {\n const valid = value === false || isString(value) || isArrayOf(value, isString);\n if (valid) {\n if (isString(value)) {\n return {\n value: map$3(value.split(','), trim$4),\n valid\n };\n } else if (isArray$1(value)) {\n return {\n value,\n valid\n };\n } else if (value === false) {\n return {\n value: [],\n valid\n };\n } else {\n return {\n value,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be false, a string or an array of strings.'\n };\n }\n },\n default: isInline$1(editor) ? [] : ['default']\n });\n registerOption('content_style', { processor: 'string' });\n registerOption('content_css_cors', {\n processor: 'boolean',\n default: false\n });\n registerOption('font_css', {\n processor: value => {\n const valid = isString(value) || isArrayOf(value, isString);\n if (valid) {\n const newValue = isArray$1(value) ? value : map$3(value.split(','), trim$4);\n return {\n value: newValue,\n valid\n };\n } else {\n return {\n valid: false,\n message: 'Must be a string or an array of strings.'\n };\n }\n },\n default: []\n });\n registerOption('inline_boundaries', {\n processor: 'boolean',\n default: true\n });\n registerOption('inline_boundaries_selector', {\n processor: 'string',\n default: 'a[href],code,span.mce-annotation'\n });\n registerOption('object_resizing', {\n processor: value => {\n const valid = isBoolean(value) || isString(value);\n if (valid) {\n if (value === false || deviceDetection$1.isiPhone() || deviceDetection$1.isiPad()) {\n return {\n value: '',\n valid\n };\n } else {\n return {\n value: value === true ? 'table,img,figure.image,div,video,iframe' : value,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be boolean or a string'\n };\n }\n },\n default: !isTouch\n });\n registerOption('resize_img_proportional', {\n processor: 'boolean',\n default: true\n });\n registerOption('event_root', { processor: 'string' });\n registerOption('service_message', { processor: 'string' });\n registerOption('theme', {\n processor: value => value === false || isString(value) || isFunction(value),\n default: 'silver'\n });\n registerOption('theme_url', { processor: 'string' });\n registerOption('formats', { processor: 'object' });\n registerOption('format_empty_lines', {\n processor: 'boolean',\n default: false\n });\n registerOption('format_noneditable_selector', {\n processor: 'string',\n default: ''\n });\n registerOption('preview_styles', {\n processor: value => {\n const valid = value === false || isString(value);\n if (valid) {\n return {\n value: value === false ? '' : value,\n valid\n };\n } else {\n return {\n valid: false,\n message: 'Must be false or a string'\n };\n }\n },\n default: 'font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow'\n });\n registerOption('custom_ui_selector', {\n processor: 'string',\n default: ''\n });\n registerOption('hidden_input', {\n processor: 'boolean',\n default: true\n });\n registerOption('submit_patch', {\n processor: 'boolean',\n default: true\n });\n registerOption('encoding', { processor: 'string' });\n registerOption('add_form_submit_trigger', {\n processor: 'boolean',\n default: true\n });\n registerOption('add_unload_trigger', {\n processor: 'boolean',\n default: true\n });\n registerOption('custom_undo_redo_levels', {\n processor: 'number',\n default: 0\n });\n registerOption('disable_nodechange', {\n processor: 'boolean',\n default: false\n });\n registerOption('readonly', {\n processor: 'boolean',\n default: false\n });\n registerOption('editable_root', {\n processor: 'boolean',\n default: true\n });\n registerOption('plugins', {\n processor: 'string[]',\n default: []\n });\n registerOption('external_plugins', { processor: 'object' });\n registerOption('forced_plugins', { processor: 'string[]' });\n registerOption('model', {\n processor: 'string',\n default: editor.hasPlugin('rtc') ? 'plugin' : 'dom'\n });\n registerOption('model_url', { processor: 'string' });\n registerOption('block_unsupported_drop', {\n processor: 'boolean',\n default: true\n });\n registerOption('visual', {\n processor: 'boolean',\n default: true\n });\n registerOption('visual_table_class', {\n processor: 'string',\n default: 'mce-item-table'\n });\n registerOption('visual_anchor_class', {\n processor: 'string',\n default: 'mce-item-anchor'\n });\n registerOption('iframe_aria_text', {\n processor: 'string',\n default: 'Rich Text Area. Press ALT-0 for help.'\n });\n registerOption('setup', { processor: 'function' });\n registerOption('init_instance_callback', { processor: 'function' });\n registerOption('url_converter', {\n processor: 'function',\n default: editor.convertURL\n });\n registerOption('url_converter_scope', {\n processor: 'object',\n default: editor\n });\n registerOption('urlconverter_callback', { processor: 'function' });\n registerOption('allow_conditional_comments', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_html_data_urls', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_svg_data_urls', { processor: 'boolean' });\n registerOption('allow_html_in_named_anchor', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_script_urls', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_unsafe_link_target', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_mathml_annotation_encodings', {\n processor: value => {\n const valid = isArrayOf(value, isString);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be an array of strings.'\n };\n },\n default: []\n });\n registerOption('convert_fonts_to_spans', {\n processor: 'boolean',\n default: true,\n deprecated: true\n });\n registerOption('fix_list_elements', {\n processor: 'boolean',\n default: false\n });\n registerOption('preserve_cdata', {\n processor: 'boolean',\n default: false\n });\n registerOption('remove_trailing_brs', {\n processor: 'boolean',\n default: true\n });\n registerOption('pad_empty_with_br', {\n processor: 'boolean',\n default: false\n });\n registerOption('inline_styles', {\n processor: 'boolean',\n default: true,\n deprecated: true\n });\n registerOption('element_format', {\n processor: 'string',\n default: 'html'\n });\n registerOption('entities', { processor: 'string' });\n registerOption('schema', {\n processor: 'string',\n default: 'html5'\n });\n registerOption('convert_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('relative_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('remove_script_host', {\n processor: 'boolean',\n default: true\n });\n registerOption('custom_elements', { processor: stringOrObjectProcessor });\n registerOption('extended_valid_elements', { processor: 'string' });\n registerOption('invalid_elements', { processor: 'string' });\n registerOption('invalid_styles', { processor: stringOrObjectProcessor });\n registerOption('valid_children', { processor: 'string' });\n registerOption('valid_classes', { processor: stringOrObjectProcessor });\n registerOption('valid_elements', { processor: 'string' });\n registerOption('valid_styles', { processor: stringOrObjectProcessor });\n registerOption('verify_html', {\n processor: 'boolean',\n default: true\n });\n registerOption('auto_focus', { processor: value => isString(value) || value === true });\n registerOption('browser_spellcheck', {\n processor: 'boolean',\n default: false\n });\n registerOption('protect', { processor: 'array' });\n registerOption('images_file_types', {\n processor: 'string',\n default: 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp'\n });\n registerOption('deprecation_warnings', {\n processor: 'boolean',\n default: true\n });\n registerOption('a11y_advanced_options', {\n processor: 'boolean',\n default: false\n });\n registerOption('api_key', { processor: 'string' });\n registerOption('license_key', { processor: 'string' });\n registerOption('paste_block_drop', {\n processor: 'boolean',\n default: false\n });\n registerOption('paste_data_images', {\n processor: 'boolean',\n default: true\n });\n registerOption('paste_preprocess', { processor: 'function' });\n registerOption('paste_postprocess', { processor: 'function' });\n registerOption('paste_webkit_styles', {\n processor: 'string',\n default: 'none'\n });\n registerOption('paste_remove_styles_if_webkit', {\n processor: 'boolean',\n default: true\n });\n registerOption('paste_merge_formats', {\n processor: 'boolean',\n default: true\n });\n registerOption('smart_paste', {\n processor: 'boolean',\n default: true\n });\n registerOption('paste_as_text', {\n processor: 'boolean',\n default: false\n });\n registerOption('paste_tab_spaces', {\n processor: 'number',\n default: 4\n });\n registerOption('text_patterns', {\n processor: value => {\n if (isArrayOf(value, isObject) || value === false) {\n const patterns = value === false ? [] : value;\n return {\n value: fromRawPatterns(patterns),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of objects or false.'\n };\n }\n },\n default: [\n {\n start: '*',\n end: '*',\n format: 'italic'\n },\n {\n start: '**',\n end: '**',\n format: 'bold'\n },\n {\n start: '#',\n format: 'h1',\n trigger: 'space'\n },\n {\n start: '##',\n format: 'h2',\n trigger: 'space'\n },\n {\n start: '###',\n format: 'h3',\n trigger: 'space'\n },\n {\n start: '####',\n format: 'h4',\n trigger: 'space'\n },\n {\n start: '#####',\n format: 'h5',\n trigger: 'space'\n },\n {\n start: '######',\n format: 'h6',\n trigger: 'space'\n },\n {\n start: '1.',\n cmd: 'InsertOrderedList',\n trigger: 'space'\n },\n {\n start: '*',\n cmd: 'InsertUnorderedList',\n trigger: 'space'\n },\n {\n start: '-',\n cmd: 'InsertUnorderedList',\n trigger: 'space'\n },\n {\n start: '>',\n cmd: 'mceBlockQuote',\n trigger: 'space'\n },\n {\n start: '---',\n cmd: 'InsertHorizontalRule',\n trigger: 'space'\n }\n ]\n });\n registerOption('text_patterns_lookup', {\n processor: value => {\n if (isFunction(value)) {\n return {\n value: fromRawPatternsLookup(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a single function'\n };\n }\n },\n default: _ctx => []\n });\n registerOption('noneditable_class', {\n processor: 'string',\n default: 'mceNonEditable'\n });\n registerOption('editable_class', {\n processor: 'string',\n default: 'mceEditable'\n });\n registerOption('noneditable_regexp', {\n processor: value => {\n if (isArrayOf(value, isRegExp)) {\n return {\n value,\n valid: true\n };\n } else if (isRegExp(value)) {\n return {\n value: [value],\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a RegExp or an array of RegExp.'\n };\n }\n },\n default: []\n });\n registerOption('table_tab_navigation', {\n processor: 'boolean',\n default: true\n });\n registerOption('highlight_on_focus', {\n processor: 'boolean',\n default: true\n });\n registerOption('xss_sanitization', {\n processor: 'boolean',\n default: true\n });\n registerOption('details_initial_state', {\n processor: value => {\n const valid = contains$2([\n 'inherited',\n 'collapsed',\n 'expanded'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: inherited, collapsed, or expanded.'\n };\n },\n default: 'inherited'\n });\n registerOption('details_serialized_state', {\n processor: value => {\n const valid = contains$2([\n 'inherited',\n 'collapsed',\n 'expanded'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: inherited, collapsed, or expanded.'\n };\n },\n default: 'inherited'\n });\n registerOption('init_content_sync', {\n processor: 'boolean',\n default: false\n });\n registerOption('newdocument_content', {\n processor: 'string',\n default: ''\n });\n registerOption('sandbox_iframes', {\n processor: 'boolean',\n default: true\n });\n registerOption('sandbox_iframes_exclusions', {\n processor: 'string[]',\n default: [\n 'youtube.com',\n 'youtu.be',\n 'vimeo.com',\n 'player.vimeo.com',\n 'dailymotion.com',\n 'embed.music.apple.com',\n 'open.spotify.com',\n 'giphy.com',\n 'dai.ly',\n 'codepen.io'\n ]\n });\n registerOption('convert_unsafe_embeds', {\n processor: 'boolean',\n default: true\n });\n editor.on('ScriptsLoaded', () => {\n registerOption('directionality', {\n processor: 'string',\n default: I18n.isRtl() ? 'rtl' : undefined\n });\n registerOption('placeholder', {\n processor: 'string',\n default: DOM$a.getAttrib(editor.getElement(), 'placeholder')\n });\n });\n };\n const getIframeAttrs = option('iframe_attrs');\n const getDocType = option('doctype');\n const getDocumentBaseUrl = option('document_base_url');\n const getBodyId = option('body_id');\n const getBodyClass = option('body_class');\n const getContentSecurityPolicy = option('content_security_policy');\n const shouldPutBrInPre$1 = option('br_in_pre');\n const getForcedRootBlock = option('forced_root_block');\n const getForcedRootBlockAttrs = option('forced_root_block_attrs');\n const getNewlineBehavior = option('newline_behavior');\n const getBrNewLineSelector = option('br_newline_selector');\n const getNoNewLineSelector = option('no_newline_selector');\n const shouldKeepStyles = option('keep_styles');\n const shouldEndContainerOnEmptyBlock = option('end_container_on_empty_block');\n const isAutomaticUploadsEnabled = option('automatic_uploads');\n const shouldReuseFileName = option('images_reuse_filename');\n const shouldReplaceBlobUris = option('images_replace_blob_uris');\n const getIconPackName = option('icons');\n const getIconsUrl = option('icons_url');\n const getImageUploadUrl = option('images_upload_url');\n const getImageUploadBasePath = option('images_upload_base_path');\n const getImagesUploadCredentials = option('images_upload_credentials');\n const getImagesUploadHandler = option('images_upload_handler');\n const shouldUseContentCssCors = option('content_css_cors');\n const getReferrerPolicy = option('referrer_policy');\n const getLanguageCode = option('language');\n const getLanguageUrl = option('language_url');\n const shouldIndentUseMargin = option('indent_use_margin');\n const getIndentation = option('indentation');\n const getContentCss = option('content_css');\n const getContentStyle = option('content_style');\n const getFontCss = option('font_css');\n const getDirectionality = option('directionality');\n const getInlineBoundarySelector = option('inline_boundaries_selector');\n const getObjectResizing = option('object_resizing');\n const getResizeImgProportional = option('resize_img_proportional');\n const getPlaceholder = option('placeholder');\n const getEventRoot = option('event_root');\n const getServiceMessage = option('service_message');\n const getTheme = option('theme');\n const getThemeUrl = option('theme_url');\n const getModel = option('model');\n const getModelUrl = option('model_url');\n const isInlineBoundariesEnabled = option('inline_boundaries');\n const getFormats = option('formats');\n const getPreviewStyles = option('preview_styles');\n const canFormatEmptyLines = option('format_empty_lines');\n const getFormatNoneditableSelector = option('format_noneditable_selector');\n const getCustomUiSelector = option('custom_ui_selector');\n const isInline$1 = option('inline');\n const hasHiddenInput = option('hidden_input');\n const shouldPatchSubmit = option('submit_patch');\n const shouldAddFormSubmitTrigger = option('add_form_submit_trigger');\n const shouldAddUnloadTrigger = option('add_unload_trigger');\n const getCustomUndoRedoLevels = option('custom_undo_redo_levels');\n const shouldDisableNodeChange = option('disable_nodechange');\n const isReadOnly$1 = option('readonly');\n const hasEditableRoot$1 = option('editable_root');\n const hasContentCssCors = option('content_css_cors');\n const getPlugins = option('plugins');\n const getExternalPlugins$1 = option('external_plugins');\n const shouldBlockUnsupportedDrop = option('block_unsupported_drop');\n const isVisualAidsEnabled = option('visual');\n const getVisualAidsTableClass = option('visual_table_class');\n const getVisualAidsAnchorClass = option('visual_anchor_class');\n const getIframeAriaText = option('iframe_aria_text');\n const getSetupCallback = option('setup');\n const getInitInstanceCallback = option('init_instance_callback');\n const getUrlConverterCallback = option('urlconverter_callback');\n const getAutoFocus = option('auto_focus');\n const shouldBrowserSpellcheck = option('browser_spellcheck');\n const getProtect = option('protect');\n const shouldPasteBlockDrop = option('paste_block_drop');\n const shouldPasteDataImages = option('paste_data_images');\n const getPastePreProcess = option('paste_preprocess');\n const getPastePostProcess = option('paste_postprocess');\n const getNewDocumentContent = option('newdocument_content');\n const getPasteWebkitStyles = option('paste_webkit_styles');\n const shouldPasteRemoveWebKitStyles = option('paste_remove_styles_if_webkit');\n const shouldPasteMergeFormats = option('paste_merge_formats');\n const isSmartPasteEnabled = option('smart_paste');\n const isPasteAsTextEnabled = option('paste_as_text');\n const getPasteTabSpaces = option('paste_tab_spaces');\n const shouldAllowHtmlDataUrls = option('allow_html_data_urls');\n const getTextPatterns = option('text_patterns');\n const getTextPatternsLookup = option('text_patterns_lookup');\n const getNonEditableClass = option('noneditable_class');\n const getEditableClass = option('editable_class');\n const getNonEditableRegExps = option('noneditable_regexp');\n const shouldPreserveCData = option('preserve_cdata');\n const shouldHighlightOnFocus = option('highlight_on_focus');\n const shouldSanitizeXss = option('xss_sanitization');\n const shouldUseDocumentWrite = option('init_content_sync');\n const hasTextPatternsLookup = editor => editor.options.isSet('text_patterns_lookup');\n const getFontStyleValues = editor => Tools.explode(editor.options.get('font_size_style_values'));\n const getFontSizeClasses = editor => Tools.explode(editor.options.get('font_size_classes'));\n const isEncodingXml = editor => editor.options.get('encoding') === 'xml';\n const getAllowedImageFileTypes = editor => Tools.explode(editor.options.get('images_file_types'));\n const hasTableTabNavigation = option('table_tab_navigation');\n const getDetailsInitialState = option('details_initial_state');\n const getDetailsSerializedState = option('details_serialized_state');\n const shouldSandboxIframes = option('sandbox_iframes');\n const getSandboxIframesExclusions = editor => editor.options.get('sandbox_iframes_exclusions');\n const shouldConvertUnsafeEmbeds = option('convert_unsafe_embeds');\n const getLicenseKey = option('license_key');\n const getApiKey = option('api_key');\n\n const isElement$3 = isElement$6;\n const isText$5 = isText$b;\n const removeNode$1 = node => {\n const parentNode = node.parentNode;\n if (parentNode) {\n parentNode.removeChild(node);\n }\n };\n const trimCount = text => {\n const trimmedText = trim$2(text);\n return {\n count: text.length - trimmedText.length,\n text: trimmedText\n };\n };\n const deleteZwspChars = caretContainer => {\n let idx;\n while ((idx = caretContainer.data.lastIndexOf(ZWSP$1)) !== -1) {\n caretContainer.deleteData(idx, 1);\n }\n };\n const removeUnchanged = (caretContainer, pos) => {\n remove$2(caretContainer);\n return pos;\n };\n const removeTextAndReposition = (caretContainer, pos) => {\n const before = trimCount(caretContainer.data.substr(0, pos.offset()));\n const after = trimCount(caretContainer.data.substr(pos.offset()));\n const text = before.text + after.text;\n if (text.length > 0) {\n deleteZwspChars(caretContainer);\n return CaretPosition(caretContainer, pos.offset() - before.count);\n } else {\n return pos;\n }\n };\n const removeElementAndReposition = (caretContainer, pos) => {\n const parentNode = pos.container();\n const newPosition = indexOf$1(from(parentNode.childNodes), caretContainer).map(index => {\n return index < pos.offset() ? CaretPosition(parentNode, pos.offset() - 1) : pos;\n }).getOr(pos);\n remove$2(caretContainer);\n return newPosition;\n };\n const removeTextCaretContainer = (caretContainer, pos) => isText$5(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n const removeElementCaretContainer = (caretContainer, pos) => pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n const removeAndReposition = (container, pos) => CaretPosition.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);\n const remove$2 = caretContainerNode => {\n if (isElement$3(caretContainerNode) && isCaretContainer$2(caretContainerNode)) {\n if (hasContent(caretContainerNode)) {\n caretContainerNode.removeAttribute('data-mce-caret');\n } else {\n removeNode$1(caretContainerNode);\n }\n }\n if (isText$5(caretContainerNode)) {\n deleteZwspChars(caretContainerNode);\n if (caretContainerNode.data.length === 0) {\n removeNode$1(caretContainerNode);\n }\n }\n };\n\n const isContentEditableFalse$8 = isContentEditableFalse$b;\n const isMedia$1 = isMedia$2;\n const isTableCell$1 = isTableCell$3;\n const inlineFakeCaretSelector = '*[contentEditable=false],video,audio,embed,object';\n const getAbsoluteClientRect = (root, element, before) => {\n const clientRect = collapse(element.getBoundingClientRect(), before);\n let scrollX;\n let scrollY;\n if (root.tagName === 'BODY') {\n const docElm = root.ownerDocument.documentElement;\n scrollX = root.scrollLeft || docElm.scrollLeft;\n scrollY = root.scrollTop || docElm.scrollTop;\n } else {\n const rootRect = root.getBoundingClientRect();\n scrollX = root.scrollLeft - rootRect.left;\n scrollY = root.scrollTop - rootRect.top;\n }\n clientRect.left += scrollX;\n clientRect.right += scrollX;\n clientRect.top += scrollY;\n clientRect.bottom += scrollY;\n clientRect.width = 1;\n let margin = element.offsetWidth - element.clientWidth;\n if (margin > 0) {\n if (before) {\n margin *= -1;\n }\n clientRect.left += margin;\n clientRect.right += margin;\n }\n return clientRect;\n };\n const trimInlineCaretContainers = root => {\n var _a, _b;\n const fakeCaretTargetNodes = descendants(SugarElement.fromDom(root), inlineFakeCaretSelector);\n for (let i = 0; i < fakeCaretTargetNodes.length; i++) {\n const node = fakeCaretTargetNodes[i].dom;\n let sibling = node.previousSibling;\n if (endsWithCaretContainer$1(sibling)) {\n const data = sibling.data;\n if (data.length === 1) {\n (_a = sibling.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(sibling);\n } else {\n sibling.deleteData(data.length - 1, 1);\n }\n }\n sibling = node.nextSibling;\n if (startsWithCaretContainer$1(sibling)) {\n const data = sibling.data;\n if (data.length === 1) {\n (_b = sibling.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(sibling);\n } else {\n sibling.deleteData(0, 1);\n }\n }\n }\n };\n const FakeCaret = (editor, root, isBlock, hasFocus) => {\n const lastVisualCaret = value$2();\n let cursorInterval;\n let caretContainerNode;\n const caretBlock = getForcedRootBlock(editor);\n const dom = editor.dom;\n const show = (before, element) => {\n let rng;\n hide();\n if (isTableCell$1(element)) {\n return null;\n }\n if (isBlock(element)) {\n const caretContainer = insertBlock(caretBlock, element, before);\n const clientRect = getAbsoluteClientRect(root, element, before);\n dom.setStyle(caretContainer, 'top', clientRect.top);\n dom.setStyle(caretContainer, 'caret-color', 'transparent');\n caretContainerNode = caretContainer;\n const caret = dom.create('div', {\n 'class': 'mce-visual-caret',\n 'data-mce-bogus': 'all'\n });\n dom.setStyles(caret, { ...clientRect });\n dom.add(root, caret);\n lastVisualCaret.set({\n caret,\n element,\n before\n });\n if (before) {\n dom.addClass(caret, 'mce-visual-caret-before');\n }\n startBlink();\n rng = element.ownerDocument.createRange();\n rng.setStart(caretContainer, 0);\n rng.setEnd(caretContainer, 0);\n } else {\n caretContainerNode = insertInline$1(element, before);\n rng = element.ownerDocument.createRange();\n if (isInlineFakeCaretTarget(caretContainerNode.nextSibling)) {\n rng.setStart(caretContainerNode, 0);\n rng.setEnd(caretContainerNode, 0);\n } else {\n rng.setStart(caretContainerNode, 1);\n rng.setEnd(caretContainerNode, 1);\n }\n return rng;\n }\n return rng;\n };\n const hide = () => {\n trimInlineCaretContainers(root);\n if (caretContainerNode) {\n remove$2(caretContainerNode);\n caretContainerNode = null;\n }\n lastVisualCaret.on(caretState => {\n dom.remove(caretState.caret);\n lastVisualCaret.clear();\n });\n if (cursorInterval) {\n clearInterval(cursorInterval);\n cursorInterval = undefined;\n }\n };\n const startBlink = () => {\n cursorInterval = setInterval(() => {\n lastVisualCaret.on(caretState => {\n if (hasFocus()) {\n dom.toggleClass(caretState.caret, 'mce-visual-caret-hidden');\n } else {\n dom.addClass(caretState.caret, 'mce-visual-caret-hidden');\n }\n });\n }, 500);\n };\n const reposition = () => {\n lastVisualCaret.on(caretState => {\n const clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before);\n dom.setStyles(caretState.caret, { ...clientRect });\n });\n };\n const destroy = () => clearInterval(cursorInterval);\n const getCss = () => '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';\n return {\n show,\n hide,\n getCss,\n reposition,\n destroy\n };\n };\n const isFakeCaretTableBrowser = () => Env.browser.isFirefox();\n const isInlineFakeCaretTarget = node => isContentEditableFalse$8(node) || isMedia$1(node);\n const isFakeCaretTarget = node => {\n const isTarget = isInlineFakeCaretTarget(node) || isTable$2(node) && isFakeCaretTableBrowser();\n return isTarget && parentElement(SugarElement.fromDom(node)).exists(isEditable$2);\n };\n\n const isContentEditableTrue$1 = isContentEditableTrue$3;\n const isContentEditableFalse$7 = isContentEditableFalse$b;\n const isMedia = isMedia$2;\n const isBlockLike = matchStyleValues('display', 'block table table-cell table-row table-caption list-item');\n const isCaretContainer = isCaretContainer$2;\n const isCaretContainerBlock = isCaretContainerBlock$1;\n const isElement$2 = isElement$6;\n const isText$4 = isText$b;\n const isCaretCandidate$1 = isCaretCandidate$3;\n const isForwards = direction => direction > 0;\n const isBackwards = direction => direction < 0;\n const skipCaretContainers = (walk, shallow) => {\n let node;\n while (node = walk(shallow)) {\n if (!isCaretContainerBlock(node)) {\n return node;\n }\n }\n return null;\n };\n const findNode = (node, direction, predicateFn, rootNode, shallow) => {\n const walker = new DomTreeWalker(node, rootNode);\n const isCefOrCaretContainer = isContentEditableFalse$7(node) || isCaretContainerBlock(node);\n let tempNode;\n if (isBackwards(direction)) {\n if (isCefOrCaretContainer) {\n tempNode = skipCaretContainers(walker.prev.bind(walker), true);\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n while (tempNode = skipCaretContainers(walker.prev.bind(walker), shallow)) {\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n }\n if (isForwards(direction)) {\n if (isCefOrCaretContainer) {\n tempNode = skipCaretContainers(walker.next.bind(walker), true);\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n while (tempNode = skipCaretContainers(walker.next.bind(walker), shallow)) {\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n }\n return null;\n };\n const getEditingHost = (node, rootNode) => {\n const isCETrue = node => isContentEditableTrue$1(node.dom);\n const isRoot = node => node.dom === rootNode;\n return ancestor$4(SugarElement.fromDom(node), isCETrue, isRoot).map(elm => elm.dom).getOr(rootNode);\n };\n const getParentBlock$3 = (node, rootNode) => {\n while (node && node !== rootNode) {\n if (isBlockLike(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n const isInSameBlock = (caretPosition1, caretPosition2, rootNode) => getParentBlock$3(caretPosition1.container(), rootNode) === getParentBlock$3(caretPosition2.container(), rootNode);\n const getChildNodeAtRelativeOffset = (relativeOffset, caretPosition) => {\n if (!caretPosition) {\n return Optional.none();\n }\n const container = caretPosition.container();\n const offset = caretPosition.offset();\n if (!isElement$2(container)) {\n return Optional.none();\n }\n return Optional.from(container.childNodes[offset + relativeOffset]);\n };\n const beforeAfter = (before, node) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const range = doc.createRange();\n if (before) {\n range.setStartBefore(node);\n range.setEndBefore(node);\n } else {\n range.setStartAfter(node);\n range.setEndAfter(node);\n }\n return range;\n };\n const isNodesInSameBlock = (root, node1, node2) => getParentBlock$3(node1, root) === getParentBlock$3(node2, root);\n const lean = (left, root, node) => {\n const siblingName = left ? 'previousSibling' : 'nextSibling';\n let tempNode = node;\n while (tempNode && tempNode !== root) {\n let sibling = tempNode[siblingName];\n if (sibling && isCaretContainer(sibling)) {\n sibling = sibling[siblingName];\n }\n if (isContentEditableFalse$7(sibling) || isMedia(sibling)) {\n if (isNodesInSameBlock(root, sibling, tempNode)) {\n return sibling;\n }\n break;\n }\n if (isCaretCandidate$1(sibling)) {\n break;\n }\n tempNode = tempNode.parentNode;\n }\n return null;\n };\n const before$2 = curry(beforeAfter, true);\n const after$2 = curry(beforeAfter, false);\n const normalizeRange = (direction, root, range) => {\n let node;\n const leanLeft = curry(lean, true, root);\n const leanRight = curry(lean, false, root);\n const container = range.startContainer;\n const offset = range.startOffset;\n if (isCaretContainerBlock$1(container)) {\n const block = isText$4(container) ? container.parentNode : container;\n const location = block.getAttribute('data-mce-caret');\n if (location === 'before') {\n node = block.nextSibling;\n if (isFakeCaretTarget(node)) {\n return before$2(node);\n }\n }\n if (location === 'after') {\n node = block.previousSibling;\n if (isFakeCaretTarget(node)) {\n return after$2(node);\n }\n }\n }\n if (!range.collapsed) {\n return range;\n }\n if (isText$b(container)) {\n if (isCaretContainer(container)) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n }\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (endsWithCaretContainer$1(container) && offset >= container.data.length - 1) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (startsWithCaretContainer$1(container) && offset <= 1) {\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n }\n return range;\n }\n if (offset === container.data.length) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n return range;\n }\n if (offset === 0) {\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n return range;\n }\n }\n return range;\n };\n const getRelativeCefElm = (forward, caretPosition) => getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition).filter(isContentEditableFalse$7);\n const getNormalizedRangeEndPoint = (direction, root, range) => {\n const normalizedRange = normalizeRange(direction, root, range);\n return direction === -1 ? CaretPosition.fromRangeStart(normalizedRange) : CaretPosition.fromRangeEnd(normalizedRange);\n };\n const getElementFromPosition = pos => Optional.from(pos.getNode()).map(SugarElement.fromDom);\n const getElementFromPrevPosition = pos => Optional.from(pos.getNode(true)).map(SugarElement.fromDom);\n const getVisualCaretPosition = (walkFn, caretPosition) => {\n let pos = caretPosition;\n while (pos = walkFn(pos)) {\n if (pos.isVisible()) {\n return pos;\n }\n }\n return pos;\n };\n const isMoveInsideSameBlock = (from, to) => {\n const inSameBlock = isInSameBlock(from, to);\n if (!inSameBlock && isBr$6(from.getNode())) {\n return true;\n }\n return inSameBlock;\n };\n\n var HDirection;\n (function (HDirection) {\n HDirection[HDirection['Backwards'] = -1] = 'Backwards';\n HDirection[HDirection['Forwards'] = 1] = 'Forwards';\n }(HDirection || (HDirection = {})));\n const isContentEditableFalse$6 = isContentEditableFalse$b;\n const isText$3 = isText$b;\n const isElement$1 = isElement$6;\n const isBr$2 = isBr$6;\n const isCaretCandidate = isCaretCandidate$3;\n const isAtomic = isAtomic$1;\n const isEditableCaretCandidate = isEditableCaretCandidate$1;\n const getParents$3 = (node, root) => {\n const parents = [];\n let tempNode = node;\n while (tempNode && tempNode !== root) {\n parents.push(tempNode);\n tempNode = tempNode.parentNode;\n }\n return parents;\n };\n const nodeAtIndex = (container, offset) => {\n if (container.hasChildNodes() && offset < container.childNodes.length) {\n return container.childNodes[offset];\n }\n return null;\n };\n const getCaretCandidatePosition = (direction, node) => {\n if (isForwards(direction)) {\n if (isCaretCandidate(node.previousSibling) && !isText$3(node.previousSibling)) {\n return CaretPosition.before(node);\n }\n if (isText$3(node)) {\n return CaretPosition(node, 0);\n }\n }\n if (isBackwards(direction)) {\n if (isCaretCandidate(node.nextSibling) && !isText$3(node.nextSibling)) {\n return CaretPosition.after(node);\n }\n if (isText$3(node)) {\n return CaretPosition(node, node.data.length);\n }\n }\n if (isBackwards(direction)) {\n if (isBr$2(node)) {\n return CaretPosition.before(node);\n }\n return CaretPosition.after(node);\n }\n return CaretPosition.before(node);\n };\n const moveForwardFromBr = (root, nextNode) => {\n const nextSibling = nextNode.nextSibling;\n if (nextSibling && isCaretCandidate(nextSibling)) {\n if (isText$3(nextSibling)) {\n return CaretPosition(nextSibling, 0);\n } else {\n return CaretPosition.before(nextSibling);\n }\n } else {\n return findCaretPosition$1(HDirection.Forwards, CaretPosition.after(nextNode), root);\n }\n };\n const findCaretPosition$1 = (direction, startPos, root) => {\n let node;\n let nextNode;\n let innerNode;\n let caretPosition;\n if (!isElement$1(root) || !startPos) {\n return null;\n }\n if (startPos.isEqual(CaretPosition.after(root)) && root.lastChild) {\n caretPosition = CaretPosition.after(root.lastChild);\n if (isBackwards(direction) && isCaretCandidate(root.lastChild) && isElement$1(root.lastChild)) {\n return isBr$2(root.lastChild) ? CaretPosition.before(root.lastChild) : caretPosition;\n }\n } else {\n caretPosition = startPos;\n }\n const container = caretPosition.container();\n let offset = caretPosition.offset();\n if (isText$3(container)) {\n if (isBackwards(direction) && offset > 0) {\n return CaretPosition(container, --offset);\n }\n if (isForwards(direction) && offset < container.length) {\n return CaretPosition(container, ++offset);\n }\n node = container;\n } else {\n if (isBackwards(direction) && offset > 0) {\n nextNode = nodeAtIndex(container, offset - 1);\n if (isCaretCandidate(nextNode)) {\n if (!isAtomic(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n if (innerNode) {\n if (isText$3(innerNode)) {\n return CaretPosition(innerNode, innerNode.data.length);\n }\n return CaretPosition.after(innerNode);\n }\n }\n if (isText$3(nextNode)) {\n return CaretPosition(nextNode, nextNode.data.length);\n }\n return CaretPosition.before(nextNode);\n }\n }\n if (isForwards(direction) && offset < container.childNodes.length) {\n nextNode = nodeAtIndex(container, offset);\n if (isCaretCandidate(nextNode)) {\n if (isBr$2(nextNode)) {\n return moveForwardFromBr(root, nextNode);\n }\n if (!isAtomic(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n if (innerNode) {\n if (isText$3(innerNode)) {\n return CaretPosition(innerNode, 0);\n }\n return CaretPosition.before(innerNode);\n }\n }\n if (isText$3(nextNode)) {\n return CaretPosition(nextNode, 0);\n }\n return CaretPosition.after(nextNode);\n }\n }\n node = nextNode ? nextNode : caretPosition.getNode();\n }\n if (node && (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart())) {\n node = findNode(node, direction, always, root, true);\n if (isEditableCaretCandidate(node, root)) {\n return getCaretCandidatePosition(direction, node);\n }\n }\n nextNode = node ? findNode(node, direction, isEditableCaretCandidate, root) : node;\n const rootContentEditableFalseElm = last$1(filter$5(getParents$3(container, root), isContentEditableFalse$6));\n if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\n if (isForwards(direction)) {\n caretPosition = CaretPosition.after(rootContentEditableFalseElm);\n } else {\n caretPosition = CaretPosition.before(rootContentEditableFalseElm);\n }\n return caretPosition;\n }\n if (nextNode) {\n return getCaretCandidatePosition(direction, nextNode);\n }\n return null;\n };\n const CaretWalker = root => ({\n next: caretPosition => {\n return findCaretPosition$1(HDirection.Forwards, caretPosition, root);\n },\n prev: caretPosition => {\n return findCaretPosition$1(HDirection.Backwards, caretPosition, root);\n }\n });\n\n const walkToPositionIn = (forward, root, start) => {\n const position = forward ? CaretPosition.before(start) : CaretPosition.after(start);\n return fromPosition(forward, root, position);\n };\n const afterElement = node => isBr$6(node) ? CaretPosition.before(node) : CaretPosition.after(node);\n const isBeforeOrStart = position => {\n if (CaretPosition.isTextPosition(position)) {\n return position.offset() === 0;\n } else {\n return isCaretCandidate$3(position.getNode());\n }\n };\n const isAfterOrEnd = position => {\n if (CaretPosition.isTextPosition(position)) {\n const container = position.container();\n return position.offset() === container.data.length;\n } else {\n return isCaretCandidate$3(position.getNode(true));\n }\n };\n const isBeforeAfterSameElement = (from, to) => !CaretPosition.isTextPosition(from) && !CaretPosition.isTextPosition(to) && from.getNode() === to.getNode(true);\n const isAtBr = position => !CaretPosition.isTextPosition(position) && isBr$6(position.getNode());\n const shouldSkipPosition = (forward, from, to) => {\n if (forward) {\n return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);\n } else {\n return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);\n }\n };\n const fromPosition = (forward, root, pos) => {\n const walker = CaretWalker(root);\n return Optional.from(forward ? walker.next(pos) : walker.prev(pos));\n };\n const navigate = (forward, root, from) => fromPosition(forward, root, from).bind(to => {\n if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {\n return fromPosition(forward, root, to);\n } else {\n return Optional.some(to);\n }\n });\n const navigateIgnore = (forward, root, from, ignoreFilter) => navigate(forward, root, from).bind(pos => ignoreFilter(pos) ? navigateIgnore(forward, root, pos, ignoreFilter) : Optional.some(pos));\n const positionIn = (forward, element) => {\n const startNode = forward ? element.firstChild : element.lastChild;\n if (isText$b(startNode)) {\n return Optional.some(CaretPosition(startNode, forward ? 0 : startNode.data.length));\n } else if (startNode) {\n if (isCaretCandidate$3(startNode)) {\n return Optional.some(forward ? CaretPosition.before(startNode) : afterElement(startNode));\n } else {\n return walkToPositionIn(forward, element, startNode);\n }\n } else {\n return Optional.none();\n }\n };\n const nextPosition = curry(fromPosition, true);\n const prevPosition = curry(fromPosition, false);\n const firstPositionIn = curry(positionIn, true);\n const lastPositionIn = curry(positionIn, false);\n\n const CARET_ID = '_mce_caret';\n const isCaretNode = node => isElement$6(node) && node.id === CARET_ID;\n const getParentCaretContainer = (body, node) => {\n let currentNode = node;\n while (currentNode && currentNode !== body) {\n if (isCaretNode(currentNode)) {\n return currentNode;\n }\n currentNode = currentNode.parentNode;\n }\n return null;\n };\n\n const isStringPathBookmark = bookmark => isString(bookmark.start);\n const isRangeBookmark = bookmark => has$2(bookmark, 'rng');\n const isIdBookmark = bookmark => has$2(bookmark, 'id');\n const isIndexBookmark = bookmark => has$2(bookmark, 'name');\n const isPathBookmark = bookmark => Tools.isArray(bookmark.start);\n\n const isForwardBookmark = bookmark => !isIndexBookmark(bookmark) && isBoolean(bookmark.forward) ? bookmark.forward : true;\n const addBogus = (dom, node) => {\n if (isElement$6(node) && dom.isBlock(node) && !node.innerHTML) {\n node.innerHTML = '
';\n }\n return node;\n };\n const resolveCaretPositionBookmark = (dom, bookmark) => {\n const startPos = Optional.from(resolve$1(dom.getRoot(), bookmark.start));\n const endPos = Optional.from(resolve$1(dom.getRoot(), bookmark.end));\n return lift2(startPos, endPos, (start, end) => {\n const range = dom.createRng();\n range.setStart(start.container(), start.offset());\n range.setEnd(end.container(), end.offset());\n return {\n range,\n forward: isForwardBookmark(bookmark)\n };\n });\n };\n const insertZwsp = (node, rng) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const textNode = doc.createTextNode(ZWSP$1);\n node.appendChild(textNode);\n rng.setStart(textNode, 0);\n rng.setEnd(textNode, 0);\n };\n const isEmpty$1 = node => !node.hasChildNodes();\n const tryFindRangePosition = (node, rng) => lastPositionIn(node).fold(never, pos => {\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n return true;\n });\n const padEmptyCaretContainer = (root, node, rng) => {\n if (isEmpty$1(node) && getParentCaretContainer(root, node)) {\n insertZwsp(node, rng);\n return true;\n } else {\n return false;\n }\n };\n const setEndPoint = (dom, start, bookmark, rng) => {\n const point = bookmark[start ? 'start' : 'end'];\n const root = dom.getRoot();\n if (point) {\n let node = root;\n let offset = point[0];\n for (let i = point.length - 1; node && i >= 1; i--) {\n const children = node.childNodes;\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n if (point[i] > children.length - 1) {\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n return tryFindRangePosition(node, rng);\n }\n node = children[point[i]];\n }\n if (isText$b(node)) {\n offset = Math.min(point[0], node.data.length);\n }\n if (isElement$6(node)) {\n offset = Math.min(point[0], node.childNodes.length);\n }\n if (start) {\n rng.setStart(node, offset);\n } else {\n rng.setEnd(node, offset);\n }\n }\n return true;\n };\n const isValidTextNode = node => isText$b(node) && node.data.length > 0;\n const restoreEndPoint = (dom, suffix, bookmark) => {\n const marker = dom.get(bookmark.id + '_' + suffix);\n const markerParent = marker === null || marker === void 0 ? void 0 : marker.parentNode;\n const keep = bookmark.keep;\n if (marker && markerParent) {\n let container;\n let offset;\n if (suffix === 'start') {\n if (!keep) {\n container = markerParent;\n offset = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n container = marker.firstChild;\n offset = 1;\n } else if (isValidTextNode(marker.nextSibling)) {\n container = marker.nextSibling;\n offset = 0;\n } else if (isValidTextNode(marker.previousSibling)) {\n container = marker.previousSibling;\n offset = marker.previousSibling.data.length;\n } else {\n container = markerParent;\n offset = dom.nodeIndex(marker) + 1;\n }\n }\n } else {\n if (!keep) {\n container = markerParent;\n offset = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n container = marker.firstChild;\n offset = 1;\n } else if (isValidTextNode(marker.previousSibling)) {\n container = marker.previousSibling;\n offset = marker.previousSibling.data.length;\n } else {\n container = markerParent;\n offset = dom.nodeIndex(marker);\n }\n }\n }\n if (!keep) {\n const prev = marker.previousSibling;\n const next = marker.nextSibling;\n Tools.each(Tools.grep(marker.childNodes), node => {\n if (isText$b(node)) {\n node.data = node.data.replace(/\\uFEFF/g, '');\n }\n });\n let otherMarker;\n while (otherMarker = dom.get(bookmark.id + '_' + suffix)) {\n dom.remove(otherMarker, true);\n }\n if (isText$b(next) && isText$b(prev) && !Env.browser.isOpera()) {\n const idx = prev.data.length;\n prev.appendData(next.data);\n dom.remove(next);\n container = prev;\n offset = idx;\n }\n }\n return Optional.some(CaretPosition(container, offset));\n } else {\n return Optional.none();\n }\n };\n const resolvePaths = (dom, bookmark) => {\n const range = dom.createRng();\n if (setEndPoint(dom, true, bookmark, range) && setEndPoint(dom, false, bookmark, range)) {\n return Optional.some({\n range,\n forward: isForwardBookmark(bookmark)\n });\n } else {\n return Optional.none();\n }\n };\n const resolveId = (dom, bookmark) => {\n const startPos = restoreEndPoint(dom, 'start', bookmark);\n const endPos = restoreEndPoint(dom, 'end', bookmark);\n return lift2(startPos, endPos.or(startPos), (spos, epos) => {\n const range = dom.createRng();\n range.setStart(addBogus(dom, spos.container()), spos.offset());\n range.setEnd(addBogus(dom, epos.container()), epos.offset());\n return {\n range,\n forward: isForwardBookmark(bookmark)\n };\n });\n };\n const resolveIndex = (dom, bookmark) => Optional.from(dom.select(bookmark.name)[bookmark.index]).map(elm => {\n const range = dom.createRng();\n range.selectNode(elm);\n return {\n range,\n forward: true\n };\n });\n const resolve = (selection, bookmark) => {\n const dom = selection.dom;\n if (bookmark) {\n if (isPathBookmark(bookmark)) {\n return resolvePaths(dom, bookmark);\n } else if (isStringPathBookmark(bookmark)) {\n return resolveCaretPositionBookmark(dom, bookmark);\n } else if (isIdBookmark(bookmark)) {\n return resolveId(dom, bookmark);\n } else if (isIndexBookmark(bookmark)) {\n return resolveIndex(dom, bookmark);\n } else if (isRangeBookmark(bookmark)) {\n return Optional.some({\n range: bookmark.rng,\n forward: isForwardBookmark(bookmark)\n });\n }\n }\n return Optional.none();\n };\n\n const getBookmark$2 = (selection, type, normalized) => {\n return getBookmark$3(selection, type, normalized);\n };\n const moveToBookmark = (selection, bookmark) => {\n resolve(selection, bookmark).each(({range, forward}) => {\n selection.setRng(range, forward);\n });\n };\n const isBookmarkNode$1 = node => {\n return isElement$6(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n };\n\n const is = expected => actual => expected === actual;\n const isNbsp = is(nbsp);\n const isWhiteSpace = chr => chr !== '' && ' \\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n const isContent = chr => !isWhiteSpace(chr) && !isNbsp(chr) && !isZwsp$2(chr);\n\n const getRanges$1 = selection => {\n const ranges = [];\n if (selection) {\n for (let i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n }\n return ranges;\n };\n const getSelectedNodes = ranges => {\n return bind$3(ranges, range => {\n const node = getSelectedNode(range);\n return node ? [SugarElement.fromDom(node)] : [];\n });\n };\n const hasMultipleRanges = selection => {\n return getRanges$1(selection).length > 1;\n };\n\n const getCellsFromRanges = ranges => filter$5(getSelectedNodes(ranges), isTableCell$2);\n const getCellsFromElement = elm => descendants(elm, 'td[data-mce-selected],th[data-mce-selected]');\n const getCellsFromElementOrRanges = (ranges, element) => {\n const selectedCells = getCellsFromElement(element);\n return selectedCells.length > 0 ? selectedCells : getCellsFromRanges(ranges);\n };\n const getCellsFromEditor = editor => getCellsFromElementOrRanges(getRanges$1(editor.selection.getSel()), SugarElement.fromDom(editor.getBody()));\n const getClosestTable = (cell, isRoot) => ancestor$3(cell, 'table', isRoot);\n\n const getStartNode = rng => {\n const sc = rng.startContainer, so = rng.startOffset;\n if (isText$b(sc)) {\n return so === 0 ? Optional.some(SugarElement.fromDom(sc)) : Optional.none();\n } else {\n return Optional.from(sc.childNodes[so]).map(SugarElement.fromDom);\n }\n };\n const getEndNode = rng => {\n const ec = rng.endContainer, eo = rng.endOffset;\n if (isText$b(ec)) {\n return eo === ec.data.length ? Optional.some(SugarElement.fromDom(ec)) : Optional.none();\n } else {\n return Optional.from(ec.childNodes[eo - 1]).map(SugarElement.fromDom);\n }\n };\n const getFirstChildren = node => {\n return firstChild(node).fold(constant([node]), child => {\n return [node].concat(getFirstChildren(child));\n });\n };\n const getLastChildren = node => {\n return lastChild(node).fold(constant([node]), child => {\n if (name(child) === 'br') {\n return prevSibling(child).map(sibling => {\n return [node].concat(getLastChildren(sibling));\n }).getOr([]);\n } else {\n return [node].concat(getLastChildren(child));\n }\n });\n };\n const hasAllContentsSelected = (elm, rng) => {\n return lift2(getStartNode(rng), getEndNode(rng), (startNode, endNode) => {\n const start = find$2(getFirstChildren(elm), curry(eq, startNode));\n const end = find$2(getLastChildren(elm), curry(eq, endNode));\n return start.isSome() && end.isSome();\n }).getOr(false);\n };\n const moveEndPoint = (dom, rng, node, start) => {\n const root = node;\n const walker = new DomTreeWalker(node, root);\n const moveCaretBeforeOnEnterElementsMap = filter$4(dom.schema.getMoveCaretBeforeOnEnterElements(), (_, name) => !contains$2([\n 'td',\n 'th',\n 'table'\n ], name.toLowerCase()));\n let currentNode = node;\n do {\n if (isText$b(currentNode) && Tools.trim(currentNode.data).length !== 0) {\n if (start) {\n rng.setStart(currentNode, 0);\n } else {\n rng.setEnd(currentNode, currentNode.data.length);\n }\n return;\n }\n if (moveCaretBeforeOnEnterElementsMap[currentNode.nodeName]) {\n if (start) {\n rng.setStartBefore(currentNode);\n } else {\n if (currentNode.nodeName === 'BR') {\n rng.setEndBefore(currentNode);\n } else {\n rng.setEndAfter(currentNode);\n }\n }\n return;\n }\n } while (currentNode = start ? walker.next() : walker.prev());\n if (root.nodeName === 'BODY') {\n if (start) {\n rng.setStart(root, 0);\n } else {\n rng.setEnd(root, root.childNodes.length);\n }\n }\n };\n const hasAnyRanges = editor => {\n const sel = editor.selection.getSel();\n return isNonNullable(sel) && sel.rangeCount > 0;\n };\n const runOnRanges = (editor, executor) => {\n const fakeSelectionNodes = getCellsFromEditor(editor);\n if (fakeSelectionNodes.length > 0) {\n each$e(fakeSelectionNodes, elem => {\n const node = elem.dom;\n const fakeNodeRng = editor.dom.createRng();\n fakeNodeRng.setStartBefore(node);\n fakeNodeRng.setEndAfter(node);\n executor(fakeNodeRng, true);\n });\n } else {\n executor(editor.selection.getRng(), false);\n }\n };\n const preserve = (selection, fillBookmark, executor) => {\n const bookmark = getPersistentBookmark(selection, fillBookmark);\n executor(bookmark);\n selection.moveToBookmark(bookmark);\n };\n\n const isNode = node => isNumber(node === null || node === void 0 ? void 0 : node.nodeType);\n const isElementNode$1 = node => isElement$6(node) && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus$1(node);\n const isElementDirectlySelected = (dom, node) => {\n if (isElementNode$1(node) && !/^(TD|TH)$/.test(node.nodeName)) {\n const selectedAttr = dom.getAttrib(node, 'data-mce-selected');\n const value = parseInt(selectedAttr, 10);\n return !isNaN(value) && value > 0;\n } else {\n return false;\n }\n };\n const preserveSelection = (editor, action, shouldMoveStart) => {\n const {selection, dom} = editor;\n const selectedNodeBeforeAction = selection.getNode();\n const isSelectedBeforeNodeNoneditable = isContentEditableFalse$b(selectedNodeBeforeAction);\n preserve(selection, true, () => {\n action();\n });\n const isBeforeNodeStillNoneditable = isSelectedBeforeNodeNoneditable && isContentEditableFalse$b(selectedNodeBeforeAction);\n if (isBeforeNodeStillNoneditable && dom.isChildOf(selectedNodeBeforeAction, editor.getBody())) {\n editor.selection.select(selectedNodeBeforeAction);\n } else if (shouldMoveStart(selection.getStart())) {\n moveStartToNearestText(dom, selection);\n }\n };\n const moveStartToNearestText = (dom, selection) => {\n var _a, _b;\n const rng = selection.getRng();\n const {startContainer, startOffset} = rng;\n const selectedNode = selection.getNode();\n if (isElementDirectlySelected(dom, selectedNode)) {\n return;\n }\n if (isElement$6(startContainer)) {\n const nodes = startContainer.childNodes;\n const root = dom.getRoot();\n let walker;\n if (startOffset < nodes.length) {\n const startNode = nodes[startOffset];\n walker = new DomTreeWalker(startNode, (_a = dom.getParent(startNode, dom.isBlock)) !== null && _a !== void 0 ? _a : root);\n } else {\n const startNode = nodes[nodes.length - 1];\n walker = new DomTreeWalker(startNode, (_b = dom.getParent(startNode, dom.isBlock)) !== null && _b !== void 0 ? _b : root);\n walker.next(true);\n }\n for (let node = walker.current(); node; node = walker.next()) {\n if (dom.getContentEditable(node) === 'false') {\n return;\n } else if (isText$b(node) && !isWhiteSpaceNode$1(node)) {\n rng.setStart(node, 0);\n selection.setRng(rng);\n return;\n }\n }\n }\n };\n const getNonWhiteSpaceSibling = (node, next, inc) => {\n if (node) {\n const nextName = next ? 'nextSibling' : 'previousSibling';\n for (node = inc ? node : node[nextName]; node; node = node[nextName]) {\n if (isElement$6(node) || !isWhiteSpaceNode$1(node)) {\n return node;\n }\n }\n }\n return undefined;\n };\n const isTextBlock$1 = (schema, node) => !!schema.getTextBlockElements()[node.nodeName.toLowerCase()] || isTransparentBlock(schema, node);\n const isValid = (ed, parent, child) => {\n return ed.schema.isValidChild(parent, child);\n };\n const isWhiteSpaceNode$1 = (node, allowSpaces = false) => {\n if (isNonNullable(node) && isText$b(node)) {\n const data = allowSpaces ? node.data.replace(/ /g, '\\xA0') : node.data;\n return isWhitespaceText(data);\n } else {\n return false;\n }\n };\n const isEmptyTextNode$1 = node => {\n return isNonNullable(node) && isText$b(node) && node.length === 0;\n };\n const isWrapNoneditableTarget = (editor, node) => {\n const baseDataSelector = '[data-mce-cef-wrappable]';\n const formatNoneditableSelector = getFormatNoneditableSelector(editor);\n const selector = isEmpty$3(formatNoneditableSelector) ? baseDataSelector : `${ baseDataSelector },${ formatNoneditableSelector }`;\n return is$1(SugarElement.fromDom(node), selector);\n };\n const isWrappableNoneditable = (editor, node) => {\n const dom = editor.dom;\n return isElementNode$1(node) && dom.getContentEditable(node) === 'false' && isWrapNoneditableTarget(editor, node) && dom.select('[contenteditable=\"true\"]', node).length === 0;\n };\n const replaceVars = (value, vars) => {\n if (isFunction(value)) {\n return value(vars);\n } else if (isNonNullable(vars)) {\n value = value.replace(/%(\\w+)/g, (str, name) => {\n return vars[name] || str;\n });\n }\n return value;\n };\n const isEq$5 = (str1, str2) => {\n str1 = str1 || '';\n str2 = str2 || '';\n str1 = '' + (str1.nodeName || str1);\n str2 = '' + (str2.nodeName || str2);\n return str1.toLowerCase() === str2.toLowerCase();\n };\n const normalizeStyleValue = (value, name) => {\n if (isNullable(value)) {\n return null;\n } else {\n let strValue = String(value);\n if (name === 'color' || name === 'backgroundColor') {\n strValue = rgbaToHexString(strValue);\n }\n if (name === 'fontWeight' && value === 700) {\n strValue = 'bold';\n }\n if (name === 'fontFamily') {\n strValue = strValue.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\n }\n return strValue;\n }\n };\n const getStyle = (dom, node, name) => {\n const style = dom.getStyle(node, name);\n return normalizeStyleValue(style, name);\n };\n const getTextDecoration = (dom, node) => {\n let decoration;\n dom.getParent(node, n => {\n if (isElement$6(n)) {\n decoration = dom.getStyle(n, 'text-decoration');\n return !!decoration && decoration !== 'none';\n } else {\n return false;\n }\n });\n return decoration;\n };\n const getParents$2 = (dom, node, selector) => {\n return dom.getParents(node, selector, dom.getRoot());\n };\n const isFormatPredicate = (editor, formatName, predicate) => {\n const formats = editor.formatter.get(formatName);\n return isNonNullable(formats) && exists(formats, predicate);\n };\n const isVariableFormatName = (editor, formatName) => {\n const hasVariableValues = format => {\n const isVariableValue = val => isFunction(val) || val.length > 1 && val.charAt(0) === '%';\n return exists([\n 'styles',\n 'attributes'\n ], key => get$a(format, key).exists(field => {\n const fieldValues = isArray$1(field) ? field : values(field);\n return exists(fieldValues, isVariableValue);\n }));\n };\n return isFormatPredicate(editor, formatName, hasVariableValues);\n };\n const areSimilarFormats = (editor, formatName, otherFormatName) => {\n const validKeys = [\n 'inline',\n 'block',\n 'selector',\n 'attributes',\n 'styles',\n 'classes'\n ];\n const filterObj = format => filter$4(format, (_, key) => exists(validKeys, validKey => validKey === key));\n return isFormatPredicate(editor, formatName, fmt1 => {\n const filteredFmt1 = filterObj(fmt1);\n return isFormatPredicate(editor, otherFormatName, fmt2 => {\n const filteredFmt2 = filterObj(fmt2);\n return equal$1(filteredFmt1, filteredFmt2);\n });\n });\n };\n const isBlockFormat = format => hasNonNullableKey(format, 'block');\n const isWrappingBlockFormat = format => isBlockFormat(format) && format.wrapper === true;\n const isNonWrappingBlockFormat = format => isBlockFormat(format) && format.wrapper !== true;\n const isSelectorFormat = format => hasNonNullableKey(format, 'selector');\n const isInlineFormat = format => hasNonNullableKey(format, 'inline');\n const isMixedFormat = format => isSelectorFormat(format) && isInlineFormat(format) && is$2(get$a(format, 'mixed'), true);\n const shouldExpandToSelector = format => isSelectorFormat(format) && format.expand !== false && !isInlineFormat(format);\n const getEmptyCaretContainers = node => {\n const nodes = [];\n let tempNode = node;\n while (tempNode) {\n if (isText$b(tempNode) && tempNode.data !== ZWSP$1 || tempNode.childNodes.length > 1) {\n return [];\n }\n if (isElement$6(tempNode)) {\n nodes.push(tempNode);\n }\n tempNode = tempNode.firstChild;\n }\n return nodes;\n };\n const isCaretContainerEmpty = node => {\n return getEmptyCaretContainers(node).length > 0;\n };\n const isEmptyCaretFormatElement = element => {\n return isCaretNode(element.dom) && isCaretContainerEmpty(element.dom);\n };\n\n const isBookmarkNode = isBookmarkNode$1;\n const getParents$1 = getParents$2;\n const isWhiteSpaceNode = isWhiteSpaceNode$1;\n const isTextBlock = isTextBlock$1;\n const isBogusBr = node => {\n return isBr$6(node) && node.getAttribute('data-mce-bogus') && !node.nextSibling;\n };\n const findParentContentEditable = (dom, node) => {\n let parent = node;\n while (parent) {\n if (isElement$6(parent) && dom.getContentEditable(parent)) {\n return dom.getContentEditable(parent) === 'false' ? parent : node;\n }\n parent = parent.parentNode;\n }\n return node;\n };\n const walkText = (start, node, offset, predicate) => {\n const str = node.data;\n if (start) {\n for (let i = offset; i > 0; i--) {\n if (predicate(str.charAt(i - 1))) {\n return i;\n }\n }\n } else {\n for (let i = offset; i < str.length; i++) {\n if (predicate(str.charAt(i))) {\n return i;\n }\n }\n }\n return -1;\n };\n const findSpace = (start, node, offset) => walkText(start, node, offset, c => isNbsp(c) || isWhiteSpace(c));\n const findContent = (start, node, offset) => walkText(start, node, offset, isContent);\n const findWordEndPoint = (dom, body, container, offset, start, includeTrailingSpaces) => {\n let lastTextNode;\n const rootNode = dom.getParent(container, dom.isBlock) || body;\n const walk = (container, offset, pred) => {\n const textSeeker = TextSeeker(dom);\n const walker = start ? textSeeker.backwards : textSeeker.forwards;\n return Optional.from(walker(container, offset, (text, textOffset) => {\n if (isBookmarkNode(text.parentNode)) {\n return -1;\n } else {\n lastTextNode = text;\n return pred(start, text, textOffset);\n }\n }, rootNode));\n };\n const spaceResult = walk(container, offset, findSpace);\n return spaceResult.bind(result => includeTrailingSpaces ? walk(result.container, result.offset + (start ? -1 : 0), findContent) : Optional.some(result)).orThunk(() => lastTextNode ? Optional.some({\n container: lastTextNode,\n offset: start ? 0 : lastTextNode.length\n }) : Optional.none());\n };\n const findSelectorEndPoint = (dom, formatList, rng, container, siblingName) => {\n const sibling = container[siblingName];\n if (isText$b(container) && isEmpty$3(container.data) && sibling) {\n container = sibling;\n }\n const parents = getParents$1(dom, container);\n for (let i = 0; i < parents.length; i++) {\n for (let y = 0; y < formatList.length; y++) {\n const curFormat = formatList[y];\n if (isNonNullable(curFormat.collapsed) && curFormat.collapsed !== rng.collapsed) {\n continue;\n }\n if (isSelectorFormat(curFormat) && dom.is(parents[i], curFormat.selector)) {\n return parents[i];\n }\n }\n }\n return container;\n };\n const findBlockEndPoint = (dom, formatList, container, siblingName) => {\n var _a;\n let node = container;\n const root = dom.getRoot();\n const format = formatList[0];\n if (isBlockFormat(format)) {\n node = format.wrapper ? null : dom.getParent(container, format.block, root);\n }\n if (!node) {\n const scopeRoot = (_a = dom.getParent(container, 'LI,TD,TH,SUMMARY')) !== null && _a !== void 0 ? _a : root;\n node = dom.getParent(isText$b(container) ? container.parentNode : container, node => node !== root && isTextBlock(dom.schema, node), scopeRoot);\n }\n if (node && isBlockFormat(format) && format.wrapper) {\n node = getParents$1(dom, node, 'ul,ol').reverse()[0] || node;\n }\n if (!node) {\n node = container;\n while (node && node[siblingName] && !dom.isBlock(node[siblingName])) {\n node = node[siblingName];\n if (isEq$5(node, 'br')) {\n break;\n }\n }\n }\n return node || container;\n };\n const isAtBlockBoundary$1 = (dom, root, container, siblingName) => {\n const parent = container.parentNode;\n if (isNonNullable(container[siblingName])) {\n return false;\n } else if (parent === root || isNullable(parent) || dom.isBlock(parent)) {\n return true;\n } else {\n return isAtBlockBoundary$1(dom, root, parent, siblingName);\n }\n };\n const findParentContainer = (dom, formatList, container, offset, start) => {\n let parent = container;\n const siblingName = start ? 'previousSibling' : 'nextSibling';\n const root = dom.getRoot();\n if (isText$b(container) && !isWhiteSpaceNode(container)) {\n if (start ? offset > 0 : offset < container.data.length) {\n return container;\n }\n }\n while (parent) {\n if (!formatList[0].block_expand && dom.isBlock(parent)) {\n return parent;\n }\n for (let sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {\n const allowSpaces = isText$b(sibling) && !isAtBlockBoundary$1(dom, root, sibling, siblingName);\n if (!isBookmarkNode(sibling) && !isBogusBr(sibling) && !isWhiteSpaceNode(sibling, allowSpaces)) {\n return parent;\n }\n }\n if (parent === root || parent.parentNode === root) {\n container = parent;\n break;\n }\n parent = parent.parentNode;\n }\n return container;\n };\n const isSelfOrParentBookmark = container => isBookmarkNode(container.parentNode) || isBookmarkNode(container);\n const expandRng = (dom, rng, formatList, includeTrailingSpace = false) => {\n let {startContainer, startOffset, endContainer, endOffset} = rng;\n const format = formatList[0];\n if (isElement$6(startContainer) && startContainer.hasChildNodes()) {\n startContainer = getNode$1(startContainer, startOffset);\n if (isText$b(startContainer)) {\n startOffset = 0;\n }\n }\n if (isElement$6(endContainer) && endContainer.hasChildNodes()) {\n endContainer = getNode$1(endContainer, rng.collapsed ? endOffset : endOffset - 1);\n if (isText$b(endContainer)) {\n endOffset = endContainer.data.length;\n }\n }\n startContainer = findParentContentEditable(dom, startContainer);\n endContainer = findParentContentEditable(dom, endContainer);\n if (isSelfOrParentBookmark(startContainer)) {\n startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode;\n if (rng.collapsed) {\n startContainer = startContainer.previousSibling || startContainer;\n } else {\n startContainer = startContainer.nextSibling || startContainer;\n }\n if (isText$b(startContainer)) {\n startOffset = rng.collapsed ? startContainer.length : 0;\n }\n }\n if (isSelfOrParentBookmark(endContainer)) {\n endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode;\n if (rng.collapsed) {\n endContainer = endContainer.nextSibling || endContainer;\n } else {\n endContainer = endContainer.previousSibling || endContainer;\n }\n if (isText$b(endContainer)) {\n endOffset = rng.collapsed ? 0 : endContainer.length;\n }\n }\n if (rng.collapsed) {\n const startPoint = findWordEndPoint(dom, dom.getRoot(), startContainer, startOffset, true, includeTrailingSpace);\n startPoint.each(({container, offset}) => {\n startContainer = container;\n startOffset = offset;\n });\n const endPoint = findWordEndPoint(dom, dom.getRoot(), endContainer, endOffset, false, includeTrailingSpace);\n endPoint.each(({container, offset}) => {\n endContainer = container;\n endOffset = offset;\n });\n }\n if (isInlineFormat(format) || format.block_expand) {\n if (!isInlineFormat(format) || (!isText$b(startContainer) || startOffset === 0)) {\n startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true);\n }\n if (!isInlineFormat(format) || (!isText$b(endContainer) || endOffset === endContainer.data.length)) {\n endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false);\n }\n }\n if (shouldExpandToSelector(format)) {\n startContainer = findSelectorEndPoint(dom, formatList, rng, startContainer, 'previousSibling');\n endContainer = findSelectorEndPoint(dom, formatList, rng, endContainer, 'nextSibling');\n }\n if (isBlockFormat(format) || isSelectorFormat(format)) {\n startContainer = findBlockEndPoint(dom, formatList, startContainer, 'previousSibling');\n endContainer = findBlockEndPoint(dom, formatList, endContainer, 'nextSibling');\n if (isBlockFormat(format)) {\n if (!dom.isBlock(startContainer)) {\n startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true);\n if (isText$b(startContainer)) {\n startOffset = 0;\n }\n }\n if (!dom.isBlock(endContainer)) {\n endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false);\n if (isText$b(endContainer)) {\n endOffset = endContainer.data.length;\n }\n }\n }\n }\n if (isElement$6(startContainer) && startContainer.parentNode) {\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (isElement$6(endContainer) && endContainer.parentNode) {\n endOffset = dom.nodeIndex(endContainer) + 1;\n endContainer = endContainer.parentNode;\n }\n return {\n startContainer,\n startOffset,\n endContainer,\n endOffset\n };\n };\n\n const walk$3 = (dom, rng, callback) => {\n var _a;\n const startOffset = rng.startOffset;\n const startContainer = getNode$1(rng.startContainer, startOffset);\n const endOffset = rng.endOffset;\n const endContainer = getNode$1(rng.endContainer, endOffset - 1);\n const exclude = nodes => {\n const firstNode = nodes[0];\n if (isText$b(firstNode) && firstNode === startContainer && startOffset >= firstNode.data.length) {\n nodes.splice(0, 1);\n }\n const lastNode = nodes[nodes.length - 1];\n if (endOffset === 0 && nodes.length > 0 && lastNode === endContainer && isText$b(lastNode)) {\n nodes.splice(nodes.length - 1, 1);\n }\n return nodes;\n };\n const collectSiblings = (node, name, endNode) => {\n const siblings = [];\n for (; node && node !== endNode; node = node[name]) {\n siblings.push(node);\n }\n return siblings;\n };\n const findEndPoint = (node, root) => dom.getParent(node, node => node.parentNode === root, root);\n const walkBoundary = (startNode, endNode, next) => {\n const siblingName = next ? 'nextSibling' : 'previousSibling';\n for (let node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {\n parent = node.parentNode;\n const siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);\n if (siblings.length) {\n if (!next) {\n siblings.reverse();\n }\n callback(exclude(siblings));\n }\n }\n };\n if (startContainer === endContainer) {\n return callback(exclude([startContainer]));\n }\n const ancestor = (_a = dom.findCommonAncestor(startContainer, endContainer)) !== null && _a !== void 0 ? _a : dom.getRoot();\n if (dom.isChildOf(startContainer, endContainer)) {\n return walkBoundary(startContainer, ancestor, true);\n }\n if (dom.isChildOf(endContainer, startContainer)) {\n return walkBoundary(endContainer, ancestor);\n }\n const startPoint = findEndPoint(startContainer, ancestor) || startContainer;\n const endPoint = findEndPoint(endContainer, ancestor) || endContainer;\n walkBoundary(startContainer, startPoint, true);\n const siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);\n if (siblings.length) {\n callback(exclude(siblings));\n }\n walkBoundary(endContainer, endPoint);\n };\n\n const validBlocks = [\n 'pre[class*=language-][contenteditable=\"false\"]',\n 'figure.image',\n 'div[data-ephox-embed-iri]',\n 'div.tiny-pageembed',\n 'div.mce-toc',\n 'div[data-mce-toc]'\n ];\n const isZeroWidth = elem => isText$c(elem) && get$3(elem) === ZWSP$1;\n const context = (editor, elem, wrapName, nodeName) => parent(elem).fold(() => 'skipping', parent => {\n if (nodeName === 'br' || isZeroWidth(elem)) {\n return 'valid';\n } else if (isAnnotation(elem)) {\n return 'existing';\n } else if (isCaretNode(elem.dom)) {\n return 'caret';\n } else if (exists(validBlocks, selector => is$1(elem, selector))) {\n return 'valid-block';\n } else if (!isValid(editor, wrapName, nodeName) || !isValid(editor, name(parent), wrapName)) {\n return 'invalid-child';\n } else {\n return 'valid';\n }\n });\n\n const applyWordGrab = (editor, rng) => {\n const r = expandRng(editor.dom, rng, [{ inline: 'span' }]);\n rng.setStart(r.startContainer, r.startOffset);\n rng.setEnd(r.endContainer, r.endOffset);\n editor.selection.setRng(rng);\n };\n const applyAnnotation = (elem, masterUId, data, annotationName, decorate, directAnnotation) => {\n const {uid = masterUId, ...otherData} = data;\n add$2(elem, annotation());\n set$3(elem, `${ dataAnnotationId() }`, uid);\n set$3(elem, `${ dataAnnotation() }`, annotationName);\n const {attributes = {}, classes = []} = decorate(uid, otherData);\n setAll$1(elem, attributes);\n add(elem, classes);\n if (directAnnotation) {\n if (classes.length > 0) {\n set$3(elem, `${ dataAnnotationClasses() }`, classes.join(','));\n }\n const attributeNames = keys(attributes);\n if (attributeNames.length > 0) {\n set$3(elem, `${ dataAnnotationAttributes() }`, attributeNames.join(','));\n }\n }\n };\n const removeDirectAnnotation = elem => {\n remove$6(elem, annotation());\n remove$9(elem, `${ dataAnnotationId() }`);\n remove$9(elem, `${ dataAnnotation() }`);\n remove$9(elem, `${ dataAnnotationActive() }`);\n const customAttrNames = getOpt(elem, `${ dataAnnotationAttributes() }`).map(names => names.split(',')).getOr([]);\n const customClasses = getOpt(elem, `${ dataAnnotationClasses() }`).map(names => names.split(',')).getOr([]);\n each$e(customAttrNames, name => remove$9(elem, name));\n remove$3(elem, customClasses);\n remove$9(elem, `${ dataAnnotationClasses() }`);\n remove$9(elem, `${ dataAnnotationAttributes() }`);\n };\n const makeAnnotation = (eDoc, uid, data, annotationName, decorate) => {\n const master = SugarElement.fromTag('span', eDoc);\n applyAnnotation(master, uid, data, annotationName, decorate, false);\n return master;\n };\n const annotate = (editor, rng, uid, annotationName, decorate, data) => {\n const newWrappers = [];\n const master = makeAnnotation(editor.getDoc(), uid, data, annotationName, decorate);\n const wrapper = value$2();\n const finishWrapper = () => {\n wrapper.clear();\n };\n const getOrOpenWrapper = () => wrapper.get().getOrThunk(() => {\n const nu = shallow$1(master);\n newWrappers.push(nu);\n wrapper.set(nu);\n return nu;\n });\n const processElements = elems => {\n each$e(elems, processElement);\n };\n const processElement = elem => {\n const ctx = context(editor, elem, 'span', name(elem));\n switch (ctx) {\n case 'invalid-child': {\n finishWrapper();\n const children = children$1(elem);\n processElements(children);\n finishWrapper();\n break;\n }\n case 'valid-block': {\n finishWrapper();\n applyAnnotation(elem, uid, data, annotationName, decorate, true);\n break;\n }\n case 'valid': {\n const w = getOrOpenWrapper();\n wrap$2(elem, w);\n break;\n }\n }\n };\n const processNodes = nodes => {\n const elems = map$3(nodes, SugarElement.fromDom);\n processElements(elems);\n };\n walk$3(editor.dom, rng, nodes => {\n finishWrapper();\n processNodes(nodes);\n });\n return newWrappers;\n };\n const annotateWithBookmark = (editor, name, settings, data) => {\n editor.undoManager.transact(() => {\n const selection = editor.selection;\n const initialRng = selection.getRng();\n const hasFakeSelection = getCellsFromEditor(editor).length > 0;\n const masterUid = generate$1('mce-annotation');\n if (initialRng.collapsed && !hasFakeSelection) {\n applyWordGrab(editor, initialRng);\n }\n if (selection.getRng().collapsed && !hasFakeSelection) {\n const wrapper = makeAnnotation(editor.getDoc(), masterUid, data, name, settings.decorate);\n set$1(wrapper, nbsp);\n selection.getRng().insertNode(wrapper.dom);\n selection.select(wrapper.dom);\n } else {\n preserve(selection, false, () => {\n runOnRanges(editor, selectionRng => {\n annotate(editor, selectionRng, masterUid, name, settings.decorate, data);\n });\n });\n }\n });\n };\n\n const Annotator = editor => {\n const registry = create$b();\n setup$x(editor, registry);\n const changes = setup$y(editor, registry);\n const isSpan = isTag('span');\n const removeAnnotations = elements => {\n each$e(elements, element => {\n if (isSpan(element)) {\n unwrap(element);\n } else {\n removeDirectAnnotation(element);\n }\n });\n };\n return {\n register: (name, settings) => {\n registry.register(name, settings);\n },\n annotate: (name, data) => {\n registry.lookup(name).each(settings => {\n annotateWithBookmark(editor, name, settings, data);\n });\n },\n annotationChanged: (name, callback) => {\n changes.addListener(name, callback);\n },\n remove: name => {\n identify(editor, Optional.some(name)).each(({elements}) => {\n const bookmark = editor.selection.getBookmark();\n removeAnnotations(elements);\n editor.selection.moveToBookmark(bookmark);\n });\n },\n removeAll: name => {\n const bookmark = editor.selection.getBookmark();\n each$d(findAll(editor, name), (elements, _) => {\n removeAnnotations(elements);\n });\n editor.selection.moveToBookmark(bookmark);\n },\n getAll: name => {\n const directory = findAll(editor, name);\n return map$2(directory, elems => map$3(elems, elem => elem.dom));\n }\n };\n };\n\n const BookmarkManager = selection => {\n return {\n getBookmark: curry(getBookmark$2, selection),\n moveToBookmark: curry(moveToBookmark, selection)\n };\n };\n BookmarkManager.isBookmarkNode = isBookmarkNode$1;\n\n const isXYWithinRange = (clientX, clientY, range) => {\n if (range.collapsed) {\n return false;\n } else {\n return exists(range.getClientRects(), rect => containsXY(rect, clientX, clientY));\n }\n };\n\n const firePreProcess = (editor, args) => editor.dispatch('PreProcess', args);\n const firePostProcess = (editor, args) => editor.dispatch('PostProcess', args);\n const fireRemove = editor => {\n editor.dispatch('remove');\n };\n const fireDetach = editor => {\n editor.dispatch('detach');\n };\n const fireSwitchMode = (editor, mode) => {\n editor.dispatch('SwitchMode', { mode });\n };\n const fireObjectResizeStart = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResizeStart', {\n target,\n width,\n height,\n origin\n });\n };\n const fireObjectResized = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResized', {\n target,\n width,\n height,\n origin\n });\n };\n const firePreInit = editor => {\n editor.dispatch('PreInit');\n };\n const firePostRender = editor => {\n editor.dispatch('PostRender');\n };\n const fireInit = editor => {\n editor.dispatch('Init');\n };\n const firePlaceholderToggle = (editor, state) => {\n editor.dispatch('PlaceholderToggle', { state });\n };\n const fireError = (editor, errorType, error) => {\n editor.dispatch(errorType, error);\n };\n const fireFormatApply = (editor, format, node, vars) => {\n editor.dispatch('FormatApply', {\n format,\n node,\n vars\n });\n };\n const fireFormatRemove = (editor, format, node, vars) => {\n editor.dispatch('FormatRemove', {\n format,\n node,\n vars\n });\n };\n const fireBeforeSetContent = (editor, args) => editor.dispatch('BeforeSetContent', args);\n const fireSetContent = (editor, args) => editor.dispatch('SetContent', args);\n const fireBeforeGetContent = (editor, args) => editor.dispatch('BeforeGetContent', args);\n const fireGetContent = (editor, args) => editor.dispatch('GetContent', args);\n const fireAutocompleterStart = (editor, args) => {\n editor.dispatch('AutocompleterStart', args);\n };\n const fireAutocompleterUpdate = (editor, args) => {\n editor.dispatch('AutocompleterUpdate', args);\n };\n const fireAutocompleterUpdateActiveRange = (editor, args) => {\n editor.dispatch('AutocompleterUpdateActiveRange', args);\n };\n const fireAutocompleterEnd = editor => {\n editor.dispatch('AutocompleterEnd');\n };\n const firePastePreProcess = (editor, html, internal) => editor.dispatch('PastePreProcess', {\n content: html,\n internal\n });\n const firePastePostProcess = (editor, node, internal) => editor.dispatch('PastePostProcess', {\n node,\n internal\n });\n const firePastePlainTextToggle = (editor, state) => editor.dispatch('PastePlainTextToggle', { state });\n const fireEditableRootStateChange = (editor, state) => editor.dispatch('EditableRootStateChange', { state });\n\n const VK = {\n BACKSPACE: 8,\n DELETE: 46,\n DOWN: 40,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n RIGHT: 39,\n SPACEBAR: 32,\n TAB: 9,\n UP: 38,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n modifierPressed: e => {\n return e.shiftKey || e.ctrlKey || e.altKey || VK.metaKeyPressed(e);\n },\n metaKeyPressed: e => {\n return Env.os.isMacOS() || Env.os.isiOS() ? e.metaKey : e.ctrlKey && !e.altKey;\n }\n };\n\n const elementSelectionAttr = 'data-mce-selected';\n const controlElmSelector = 'table,img,figure.image,hr,video,span.mce-preview-object,details';\n const abs = Math.abs;\n const round$1 = Math.round;\n const resizeHandles = {\n nw: [\n 0,\n 0,\n -1,\n -1\n ],\n ne: [\n 1,\n 0,\n 1,\n -1\n ],\n se: [\n 1,\n 1,\n 1,\n 1\n ],\n sw: [\n 0,\n 1,\n -1,\n 1\n ]\n };\n const isTouchEvent = evt => evt.type === 'longpress' || evt.type.indexOf('touch') === 0;\n const ControlSelection = (selection, editor) => {\n const dom = editor.dom;\n const editableDoc = editor.getDoc();\n const rootDocument = document;\n const rootElement = editor.getBody();\n let selectedElm, selectedElmGhost, resizeHelper, selectedHandle, resizeBackdrop;\n let startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;\n let width;\n let height;\n let startScrollWidth;\n let startScrollHeight;\n const isImage = elm => isNonNullable(elm) && (isImg(elm) || dom.is(elm, 'figure.image'));\n const isMedia = elm => isMedia$2(elm) || dom.hasClass(elm, 'mce-preview-object');\n const isEventOnImageOutsideRange = (evt, range) => {\n if (isTouchEvent(evt)) {\n const touch = evt.touches[0];\n return isImage(evt.target) && !isXYWithinRange(touch.clientX, touch.clientY, range);\n } else {\n return isImage(evt.target) && !isXYWithinRange(evt.clientX, evt.clientY, range);\n }\n };\n const contextMenuSelectImage = evt => {\n const target = evt.target;\n if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {\n editor.selection.select(target);\n }\n };\n const getResizeTargets = elm => {\n if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {\n return [\n elm,\n elm.firstElementChild\n ];\n } else if (dom.is(elm, 'figure.image')) {\n return [elm.querySelector('img')];\n } else {\n return [elm];\n }\n };\n const isResizable = elm => {\n const selector = getObjectResizing(editor);\n if (!selector || editor.mode.isReadOnly()) {\n return false;\n }\n if (elm.getAttribute('data-mce-resize') === 'false') {\n return false;\n }\n if (elm === editor.getBody()) {\n return false;\n }\n if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {\n return is$1(SugarElement.fromDom(elm.firstElementChild), selector);\n } else {\n return is$1(SugarElement.fromDom(elm), selector);\n }\n };\n const createGhostElement = (dom, elm) => {\n if (isMedia(elm)) {\n return dom.create('img', { src: Env.transparentSrc });\n } else if (isTable$2(elm)) {\n const isNorth = startsWith(selectedHandle.name, 'n');\n const rowSelect = isNorth ? head : last$2;\n const tableElm = elm.cloneNode(true);\n rowSelect(dom.select('tr', tableElm)).each(tr => {\n const cells = dom.select('td,th', tr);\n dom.setStyle(tr, 'height', null);\n each$e(cells, cell => dom.setStyle(cell, 'height', null));\n });\n return tableElm;\n } else {\n return elm.cloneNode(true);\n }\n };\n const setSizeProp = (element, name, value) => {\n if (isNonNullable(value)) {\n const targets = getResizeTargets(element);\n each$e(targets, target => {\n if (target.style[name] || !editor.schema.isValid(target.nodeName.toLowerCase(), name)) {\n dom.setStyle(target, name, value);\n } else {\n dom.setAttrib(target, name, '' + value);\n }\n });\n }\n };\n const setGhostElmSize = (ghostElm, width, height) => {\n setSizeProp(ghostElm, 'width', width);\n setSizeProp(ghostElm, 'height', height);\n };\n const resizeGhostElement = e => {\n let deltaX, deltaY, proportional;\n let resizeHelperX, resizeHelperY;\n deltaX = e.screenX - startX;\n deltaY = e.screenY - startY;\n width = deltaX * selectedHandle[2] + startW;\n height = deltaY * selectedHandle[3] + startH;\n width = width < 5 ? 5 : width;\n height = height < 5 ? 5 : height;\n if ((isImage(selectedElm) || isMedia(selectedElm)) && getResizeImgProportional(editor) !== false) {\n proportional = !VK.modifierPressed(e);\n } else {\n proportional = VK.modifierPressed(e);\n }\n if (proportional) {\n if (abs(deltaX) > abs(deltaY)) {\n height = round$1(width * ratio);\n width = round$1(height / ratio);\n } else {\n width = round$1(height / ratio);\n height = round$1(width * ratio);\n }\n }\n setGhostElmSize(selectedElmGhost, width, height);\n resizeHelperX = selectedHandle.startPos.x + deltaX;\n resizeHelperY = selectedHandle.startPos.y + deltaY;\n resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0;\n resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0;\n dom.setStyles(resizeHelper, {\n left: resizeHelperX,\n top: resizeHelperY,\n display: 'block'\n });\n resizeHelper.innerHTML = width + ' × ' + height;\n if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) {\n dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width));\n }\n if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) {\n dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height));\n }\n deltaX = rootElement.scrollWidth - startScrollWidth;\n deltaY = rootElement.scrollHeight - startScrollHeight;\n if (deltaX + deltaY !== 0) {\n dom.setStyles(resizeHelper, {\n left: resizeHelperX - deltaX,\n top: resizeHelperY - deltaY\n });\n }\n if (!resizeStarted) {\n fireObjectResizeStart(editor, selectedElm, startW, startH, 'corner-' + selectedHandle.name);\n resizeStarted = true;\n }\n };\n const endGhostResize = () => {\n const wasResizeStarted = resizeStarted;\n resizeStarted = false;\n if (wasResizeStarted) {\n setSizeProp(selectedElm, 'width', width);\n setSizeProp(selectedElm, 'height', height);\n }\n dom.unbind(editableDoc, 'mousemove', resizeGhostElement);\n dom.unbind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.unbind(rootDocument, 'mousemove', resizeGhostElement);\n dom.unbind(rootDocument, 'mouseup', endGhostResize);\n }\n dom.remove(selectedElmGhost);\n dom.remove(resizeHelper);\n dom.remove(resizeBackdrop);\n showResizeRect(selectedElm);\n if (wasResizeStarted) {\n fireObjectResized(editor, selectedElm, width, height, 'corner-' + selectedHandle.name);\n dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));\n }\n editor.nodeChanged();\n };\n const showResizeRect = targetElm => {\n unbindResizeHandleEvents();\n const position = dom.getPos(targetElm, rootElement);\n const selectedElmX = position.x;\n const selectedElmY = position.y;\n const rect = targetElm.getBoundingClientRect();\n const targetWidth = rect.width || rect.right - rect.left;\n const targetHeight = rect.height || rect.bottom - rect.top;\n if (selectedElm !== targetElm) {\n hideResizeRect();\n selectedElm = targetElm;\n width = height = 0;\n }\n const e = editor.dispatch('ObjectSelected', { target: targetElm });\n if (isResizable(targetElm) && !e.isDefaultPrevented()) {\n each$d(resizeHandles, (handle, name) => {\n const startDrag = e => {\n const target = getResizeTargets(selectedElm)[0];\n startX = e.screenX;\n startY = e.screenY;\n startW = target.clientWidth;\n startH = target.clientHeight;\n ratio = startH / startW;\n selectedHandle = handle;\n selectedHandle.name = name;\n selectedHandle.startPos = {\n x: targetWidth * handle[0] + selectedElmX,\n y: targetHeight * handle[1] + selectedElmY\n };\n startScrollWidth = rootElement.scrollWidth;\n startScrollHeight = rootElement.scrollHeight;\n resizeBackdrop = dom.add(rootElement, 'div', {\n 'class': 'mce-resize-backdrop',\n 'data-mce-bogus': 'all'\n });\n dom.setStyles(resizeBackdrop, {\n position: 'fixed',\n left: '0',\n top: '0',\n width: '100%',\n height: '100%'\n });\n selectedElmGhost = createGhostElement(dom, selectedElm);\n dom.addClass(selectedElmGhost, 'mce-clonedresizable');\n dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');\n selectedElmGhost.contentEditable = 'false';\n dom.setStyles(selectedElmGhost, {\n left: selectedElmX,\n top: selectedElmY,\n margin: 0\n });\n setGhostElmSize(selectedElmGhost, targetWidth, targetHeight);\n selectedElmGhost.removeAttribute(elementSelectionAttr);\n rootElement.appendChild(selectedElmGhost);\n dom.bind(editableDoc, 'mousemove', resizeGhostElement);\n dom.bind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.bind(rootDocument, 'mousemove', resizeGhostElement);\n dom.bind(rootDocument, 'mouseup', endGhostResize);\n }\n resizeHelper = dom.add(rootElement, 'div', {\n 'class': 'mce-resize-helper',\n 'data-mce-bogus': 'all'\n }, startW + ' × ' + startH);\n };\n let handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.remove(handleElm);\n }\n handleElm = dom.add(rootElement, 'div', {\n 'id': 'mceResizeHandle' + name,\n 'data-mce-bogus': 'all',\n 'class': 'mce-resizehandle',\n 'unselectable': true,\n 'style': 'cursor:' + name + '-resize; margin:0; padding:0'\n });\n dom.bind(handleElm, 'mousedown', e => {\n e.stopImmediatePropagation();\n e.preventDefault();\n startDrag(e);\n });\n handle.elm = handleElm;\n dom.setStyles(handleElm, {\n left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2,\n top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2\n });\n });\n } else {\n hideResizeRect(false);\n }\n };\n const throttledShowResizeRect = first$1(showResizeRect, 0);\n const hideResizeRect = (removeSelected = true) => {\n throttledShowResizeRect.cancel();\n unbindResizeHandleEvents();\n if (selectedElm && removeSelected) {\n selectedElm.removeAttribute(elementSelectionAttr);\n }\n each$d(resizeHandles, (value, name) => {\n const handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.unbind(handleElm);\n dom.remove(handleElm);\n }\n });\n };\n const isChildOrEqual = (node, parent) => dom.isChildOf(node, parent);\n const updateResizeRect = e => {\n if (resizeStarted || editor.removed || editor.composing) {\n return;\n }\n const targetElm = e.type === 'mousedown' ? e.target : selection.getNode();\n const controlElm = closest$3(SugarElement.fromDom(targetElm), controlElmSelector).map(e => e.dom).filter(e => dom.isEditable(e.parentElement) || e.nodeName === 'IMG' && dom.isEditable(e)).getOrUndefined();\n const selectedValue = isNonNullable(controlElm) ? dom.getAttrib(controlElm, elementSelectionAttr, '1') : '1';\n each$e(dom.select(`img[${ elementSelectionAttr }],hr[${ elementSelectionAttr }]`), img => {\n img.removeAttribute(elementSelectionAttr);\n });\n if (isNonNullable(controlElm) && isChildOrEqual(controlElm, rootElement) && editor.hasFocus()) {\n disableGeckoResize();\n const startElm = selection.getStart(true);\n if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) {\n dom.setAttrib(controlElm, elementSelectionAttr, selectedValue);\n throttledShowResizeRect.throttle(controlElm);\n return;\n }\n }\n hideResizeRect();\n };\n const unbindResizeHandleEvents = () => {\n each$d(resizeHandles, handle => {\n if (handle.elm) {\n dom.unbind(handle.elm);\n delete handle.elm;\n }\n });\n };\n const disableGeckoResize = () => {\n try {\n editor.getDoc().execCommand('enableObjectResizing', false, 'false');\n } catch (ex) {\n }\n };\n editor.on('init', () => {\n disableGeckoResize();\n editor.on('NodeChange ResizeEditor ResizeWindow ResizeContent drop', updateResizeRect);\n editor.on('keyup compositionend', e => {\n if (selectedElm && selectedElm.nodeName === 'TABLE') {\n updateResizeRect(e);\n }\n });\n editor.on('hide blur', hideResizeRect);\n editor.on('contextmenu longpress', contextMenuSelectImage, true);\n });\n editor.on('remove', unbindResizeHandleEvents);\n const destroy = () => {\n throttledShowResizeRect.cancel();\n selectedElm = selectedElmGhost = resizeBackdrop = null;\n };\n return {\n isResizable,\n showResizeRect,\n hideResizeRect,\n updateResizeRect,\n destroy\n };\n };\n\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n\n const adt$3 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$3.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$3.ltr, rng));\n } else {\n return fromRange(win, adt$3.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n adt$3.ltr;\n adt$3.rtl;\n\n const create$9 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$9 };\n\n const caretPositionFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretPositionFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y)).bind(pos => {\n if (pos.offsetNode === null) {\n return Optional.none();\n }\n const r = doc.createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Optional.some(r);\n });\n };\n const caretRangeFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretRangeFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y));\n };\n const availableSearch = (doc, x, y) => {\n if (doc.caretPositionFromPoint) {\n return caretPositionFromPoint(doc, x, y);\n } else if (doc.caretRangeFromPoint) {\n return caretRangeFromPoint(doc, x, y);\n } else {\n return Optional.none();\n }\n };\n const fromPoint$1 = (win, x, y) => {\n const doc = win.document;\n return availableSearch(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n };\n\n const adt$2 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$2 = situ => situ.fold(identity, identity, identity);\n const before$1 = adt$2.before;\n const on = adt$2.on;\n const after$1 = adt$2.after;\n const Situ = {\n before: before$1,\n on,\n after: after$1,\n cata,\n getStart: getStart$2\n };\n\n const adt$1 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt$1.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart$1 = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt$1.domRange;\n const relative = adt$1.relative;\n const exact = adt$1.exact;\n const getWin = selection => {\n const start = getStart$1(selection);\n return defaultView(start);\n };\n const range = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range\n };\n\n const beforeSpecial = (element, offset) => {\n const name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains$2([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n const preprocessRelative = (startSitu, finishSitu) => {\n const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return SimSelection.relative(start, finish);\n };\n const preprocessExact = (start, soffset, finish, foffset) => {\n const startSitu = beforeSpecial(start, soffset);\n const finishSitu = beforeSpecial(finish, foffset);\n return SimSelection.relative(startSitu, finishSitu);\n };\n const preprocess = selection => selection.match({\n domRange: rng => {\n const start = SugarElement.fromDom(rng.startContainer);\n const finish = SugarElement.fromDom(rng.endContainer);\n return preprocessExact(start, rng.startOffset, finish, rng.endOffset);\n },\n relative: preprocessRelative,\n exact: preprocessExact\n });\n\n const fromElements = (elements, scope) => {\n const doc = scope || document;\n const fragment = doc.createDocumentFragment();\n each$e(elements, element => {\n fragment.appendChild(element.dom);\n });\n return SugarElement.fromDom(fragment);\n };\n\n const toNative = selection => {\n const win = SimSelection.getWin(selection).dom;\n const getDomRange = (start, soffset, finish, foffset) => exactToNative(win, start, soffset, finish, foffset);\n const filtered = preprocess(selection);\n return diagnose(win, filtered).match({\n ltr: getDomRange,\n rtl: getDomRange\n });\n };\n const getAtPoint = (win, x, y) => fromPoint$1(win, x, y);\n\n const fromPoint = (clientX, clientY, doc) => {\n const win = defaultView(SugarElement.fromDom(doc));\n return getAtPoint(win.dom, clientX, clientY).map(simRange => {\n const rng = doc.createRange();\n rng.setStart(simRange.start.dom, simRange.soffset);\n rng.setEnd(simRange.finish.dom, simRange.foffset);\n return rng;\n }).getOrUndefined();\n };\n\n const isEq$4 = (rng1, rng2) => {\n return isNonNullable(rng1) && isNonNullable(rng2) && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);\n };\n\n const findParent = (node, rootNode, predicate) => {\n let currentNode = node;\n while (currentNode && currentNode !== rootNode) {\n if (predicate(currentNode)) {\n return currentNode;\n }\n currentNode = currentNode.parentNode;\n }\n return null;\n };\n const hasParent$1 = (node, rootNode, predicate) => findParent(node, rootNode, predicate) !== null;\n const hasParentWithName = (node, rootNode, name) => hasParent$1(node, rootNode, node => node.nodeName === name);\n const isCeFalseCaretContainer = (node, rootNode) => isCaretContainer$2(node) && !hasParent$1(node, rootNode, isCaretNode);\n const hasBrBeforeAfter = (dom, node, left) => {\n const parentNode = node.parentNode;\n if (parentNode) {\n const walker = new DomTreeWalker(node, dom.getParent(parentNode, dom.isBlock) || dom.getRoot());\n let currentNode;\n while (currentNode = walker[left ? 'prev' : 'next']()) {\n if (isBr$6(currentNode)) {\n return true;\n }\n }\n }\n return false;\n };\n const isPrevNode = (node, name) => {\n var _a;\n return ((_a = node.previousSibling) === null || _a === void 0 ? void 0 : _a.nodeName) === name;\n };\n const hasContentEditableFalseParent$1 = (root, node) => {\n let currentNode = node;\n while (currentNode && currentNode !== root) {\n if (isContentEditableFalse$b(currentNode)) {\n return true;\n }\n currentNode = currentNode.parentNode;\n }\n return false;\n };\n const findTextNodeRelative = (dom, isAfterNode, collapsed, left, startNode) => {\n const body = dom.getRoot();\n const nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n const parentNode = startNode.parentNode;\n let lastInlineElement;\n let node;\n if (!parentNode) {\n return Optional.none();\n }\n const parentBlockContainer = dom.getParent(parentNode, dom.isBlock) || body;\n if (left && isBr$6(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {\n return Optional.some(CaretPosition(parentNode, dom.nodeIndex(startNode)));\n }\n const walker = new DomTreeWalker(startNode, parentBlockContainer);\n while (node = walker[left ? 'prev' : 'next']()) {\n if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {\n return Optional.none();\n }\n if (isText$b(node) && node.data.length > 0) {\n if (!hasParentWithName(node, body, 'A')) {\n return Optional.some(CaretPosition(node, left ? node.data.length : 0));\n }\n return Optional.none();\n }\n if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n return Optional.none();\n }\n lastInlineElement = node;\n }\n if (isComment(lastInlineElement)) {\n return Optional.none();\n }\n if (collapsed && lastInlineElement) {\n return Optional.some(CaretPosition(lastInlineElement, 0));\n }\n return Optional.none();\n };\n const normalizeEndPoint = (dom, collapsed, start, rng) => {\n const body = dom.getRoot();\n let node;\n let normalized = false;\n let container = start ? rng.startContainer : rng.endContainer;\n let offset = start ? rng.startOffset : rng.endOffset;\n const isAfterNode = isElement$6(container) && offset === container.childNodes.length;\n const nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n let directionLeft = start;\n if (isCaretContainer$2(container)) {\n return Optional.none();\n }\n if (isElement$6(container) && offset > container.childNodes.length - 1) {\n directionLeft = false;\n }\n if (isDocument$1(container)) {\n container = body;\n offset = 0;\n }\n if (container === body) {\n if (directionLeft) {\n node = container.childNodes[offset > 0 ? offset - 1 : 0];\n if (node) {\n if (isCaretContainer$2(node)) {\n return Optional.none();\n }\n if (nonEmptyElementsMap[node.nodeName] || isTable$2(node)) {\n return Optional.none();\n }\n }\n }\n if (container.hasChildNodes()) {\n offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);\n container = container.childNodes[offset];\n offset = isText$b(container) && isAfterNode ? container.data.length : 0;\n if (!collapsed && container === body.lastChild && isTable$2(container)) {\n return Optional.none();\n }\n if (hasContentEditableFalseParent$1(body, container) || isCaretContainer$2(container)) {\n return Optional.none();\n }\n if (isDetails(container)) {\n return Optional.none();\n }\n if (container.hasChildNodes() && !isTable$2(container)) {\n node = container;\n const walker = new DomTreeWalker(container, body);\n do {\n if (isContentEditableFalse$b(node) || isCaretContainer$2(node)) {\n normalized = false;\n break;\n }\n if (isText$b(node) && node.data.length > 0) {\n offset = directionLeft ? 0 : node.data.length;\n container = node;\n normalized = true;\n break;\n }\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCellOrCaption(node)) {\n offset = dom.nodeIndex(node);\n container = node.parentNode;\n if (!directionLeft) {\n offset++;\n }\n normalized = true;\n break;\n }\n } while (node = directionLeft ? walker.next() : walker.prev());\n }\n }\n }\n if (collapsed) {\n if (isText$b(container) && offset === 0) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(pos => {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n if (isElement$6(container)) {\n node = container.childNodes[offset];\n if (!node) {\n node = container.childNodes[offset - 1];\n }\n if (node && isBr$6(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(pos => {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n }\n }\n if (directionLeft && !collapsed && isText$b(container) && offset === container.data.length) {\n findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(pos => {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n return normalized && container ? Optional.some(CaretPosition(container, offset)) : Optional.none();\n };\n const normalize$2 = (dom, rng) => {\n const collapsed = rng.collapsed, normRng = rng.cloneRange();\n const startPos = CaretPosition.fromRangeStart(rng);\n normalizeEndPoint(dom, collapsed, true, normRng).each(pos => {\n if (!collapsed || !CaretPosition.isAbove(startPos, pos)) {\n normRng.setStart(pos.container(), pos.offset());\n }\n });\n if (!collapsed) {\n normalizeEndPoint(dom, collapsed, false, normRng).each(pos => {\n normRng.setEnd(pos.container(), pos.offset());\n });\n }\n if (collapsed) {\n normRng.collapse(true);\n }\n return isEq$4(rng, normRng) ? Optional.none() : Optional.some(normRng);\n };\n\n const splitText = (node, offset) => {\n return node.splitText(offset);\n };\n const split = rng => {\n let startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n if (startContainer === endContainer && isText$b(startContainer)) {\n if (startOffset > 0 && startOffset < startContainer.data.length) {\n endContainer = splitText(startContainer, startOffset);\n startContainer = endContainer.previousSibling;\n if (endOffset > startOffset) {\n endOffset = endOffset - startOffset;\n const newContainer = splitText(endContainer, endOffset).previousSibling;\n startContainer = endContainer = newContainer;\n endOffset = newContainer.data.length;\n startOffset = 0;\n } else {\n endOffset = 0;\n }\n }\n } else {\n if (isText$b(startContainer) && startOffset > 0 && startOffset < startContainer.data.length) {\n startContainer = splitText(startContainer, startOffset);\n startOffset = 0;\n }\n if (isText$b(endContainer) && endOffset > 0 && endOffset < endContainer.data.length) {\n const newContainer = splitText(endContainer, endOffset).previousSibling;\n endContainer = newContainer;\n endOffset = newContainer.data.length;\n }\n }\n return {\n startContainer,\n startOffset,\n endContainer,\n endOffset\n };\n };\n\n const RangeUtils = dom => {\n const walk = (rng, callback) => {\n return walk$3(dom, rng, callback);\n };\n const split$1 = split;\n const normalize = rng => {\n return normalize$2(dom, rng).fold(never, normalizedRng => {\n rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);\n rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);\n return true;\n });\n };\n const expand = (rng, options = { type: 'word' }) => {\n if (options.type === 'word') {\n const rangeLike = expandRng(dom, rng, [{ inline: 'span' }]);\n const newRange = dom.createRng();\n newRange.setStart(rangeLike.startContainer, rangeLike.startOffset);\n newRange.setEnd(rangeLike.endContainer, rangeLike.endOffset);\n return newRange;\n }\n return rng;\n };\n return {\n walk,\n split: split$1,\n expand,\n normalize\n };\n };\n RangeUtils.compareRanges = isEq$4;\n RangeUtils.getCaretRangeFromPoint = fromPoint;\n RangeUtils.getSelectedNode = getSelectedNode;\n RangeUtils.getNode = getNode$1;\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$7(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$7(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const api = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$2 = element => api.get(element);\n\n const getDocument = () => SugarElement.fromDom(document);\n\n const walkUp = (navigation, doc) => {\n const frame = navigation.view(doc);\n return frame.fold(constant([]), f => {\n const parent = navigation.owner(f);\n const rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n const pathTo = (element, navigation) => {\n const d = navigation.owner(element);\n return walkUp(navigation, d);\n };\n\n const view = doc => {\n var _a;\n const element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n const owner = element => documentOrOwner(element);\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner\n });\n\n const find = element => {\n const doc = getDocument();\n const scroll = get$5(doc);\n const frames = pathTo(element, Navigation);\n const offset = viewport(element);\n const r = foldr(frames, (b, a) => {\n const loc = viewport(a);\n return {\n left: b.left + loc.left,\n top: b.top + loc.top\n };\n }, {\n left: 0,\n top: 0\n });\n return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n };\n\n const excludeFromDescend = element => name(element) === 'textarea';\n const fireScrollIntoViewEvent = (editor, data) => {\n const scrollEvent = editor.dispatch('ScrollIntoView', data);\n return scrollEvent.isDefaultPrevented();\n };\n const fireAfterScrollIntoViewEvent = (editor, data) => {\n editor.dispatch('AfterScrollIntoView', data);\n };\n const descend = (element, offset) => {\n const children = children$1(element);\n if (children.length === 0 || excludeFromDescend(element)) {\n return {\n element,\n offset\n };\n } else if (offset < children.length && !excludeFromDescend(children[offset])) {\n return {\n element: children[offset],\n offset: 0\n };\n } else {\n const last = children[children.length - 1];\n if (excludeFromDescend(last)) {\n return {\n element,\n offset\n };\n } else {\n if (name(last) === 'img') {\n return {\n element: last,\n offset: 1\n };\n } else if (isText$c(last)) {\n return {\n element: last,\n offset: get$3(last).length\n };\n } else {\n return {\n element: last,\n offset: children$1(last).length\n };\n }\n }\n }\n };\n const markerInfo = (element, cleanupFun) => {\n const pos = absolute(element);\n const height = get$2(element);\n return {\n element,\n bottom: pos.top + height,\n height,\n pos,\n cleanup: cleanupFun\n };\n };\n const createMarker$1 = (element, offset) => {\n const startPoint = descend(element, offset);\n const span = SugarElement.fromHtml('' + ZWSP$1 + '');\n before$3(startPoint.element, span);\n return markerInfo(span, () => remove$4(span));\n };\n const elementMarker = element => markerInfo(SugarElement.fromDom(element), noop);\n const withMarker = (editor, f, rng, alignToTop) => {\n preserveWith(editor, (_s, _e) => applyWithMarker(editor, f, rng, alignToTop), rng);\n };\n const withScrollEvents = (editor, doc, f, marker, alignToTop) => {\n const data = {\n elm: marker.element.dom,\n alignToTop\n };\n if (fireScrollIntoViewEvent(editor, data)) {\n return;\n }\n const scrollTop = get$5(doc).top;\n f(editor, doc, scrollTop, marker, alignToTop);\n fireAfterScrollIntoViewEvent(editor, data);\n };\n const applyWithMarker = (editor, f, rng, alignToTop) => {\n const body = SugarElement.fromDom(editor.getBody());\n const doc = SugarElement.fromDom(editor.getDoc());\n reflow(body);\n const marker = createMarker$1(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n withScrollEvents(editor, doc, f, marker, alignToTop);\n marker.cleanup();\n };\n const withElement = (editor, element, f, alignToTop) => {\n const doc = SugarElement.fromDom(editor.getDoc());\n withScrollEvents(editor, doc, f, elementMarker(element), alignToTop);\n };\n const preserveWith = (editor, f, rng) => {\n const startElement = rng.startContainer;\n const startOffset = rng.startOffset;\n const endElement = rng.endContainer;\n const endOffset = rng.endOffset;\n f(SugarElement.fromDom(startElement), SugarElement.fromDom(endElement));\n const newRng = editor.dom.createRng();\n newRng.setStart(startElement, startOffset);\n newRng.setEnd(endElement, endOffset);\n editor.selection.setRng(rng);\n };\n const scrollToMarker = (editor, marker, viewHeight, alignToTop, doc) => {\n const pos = marker.pos;\n if (alignToTop) {\n to(pos.left, pos.top, doc);\n } else {\n const y = pos.top - viewHeight + marker.height;\n to(-editor.getBody().getBoundingClientRect().left, y, doc);\n }\n };\n const intoWindowIfNeeded = (editor, doc, scrollTop, viewHeight, marker, alignToTop) => {\n const viewportBottom = viewHeight + scrollTop;\n const markerTop = marker.pos.top;\n const markerBottom = marker.bottom;\n const largerThanViewport = markerBottom - markerTop >= viewHeight;\n if (markerTop < scrollTop) {\n scrollToMarker(editor, marker, viewHeight, alignToTop !== false, doc);\n } else if (markerTop > viewportBottom) {\n const align = largerThanViewport ? alignToTop !== false : alignToTop === true;\n scrollToMarker(editor, marker, viewHeight, align, doc);\n } else if (markerBottom > viewportBottom && !largerThanViewport) {\n scrollToMarker(editor, marker, viewHeight, alignToTop === true, doc);\n }\n };\n const intoWindow = (editor, doc, scrollTop, marker, alignToTop) => {\n const viewHeight = defaultView(doc).dom.innerHeight;\n intoWindowIfNeeded(editor, doc, scrollTop, viewHeight, marker, alignToTop);\n };\n const intoFrame = (editor, doc, scrollTop, marker, alignToTop) => {\n const frameViewHeight = defaultView(doc).dom.innerHeight;\n intoWindowIfNeeded(editor, doc, scrollTop, frameViewHeight, marker, alignToTop);\n const op = find(marker.element);\n const viewportBounds = getBounds(window);\n if (op.top < viewportBounds.y) {\n intoView(marker.element, alignToTop !== false);\n } else if (op.top > viewportBounds.bottom) {\n intoView(marker.element, alignToTop === true);\n }\n };\n const rangeIntoWindow = (editor, rng, alignToTop) => withMarker(editor, intoWindow, rng, alignToTop);\n const elementIntoWindow = (editor, element, alignToTop) => withElement(editor, element, intoWindow, alignToTop);\n const rangeIntoFrame = (editor, rng, alignToTop) => withMarker(editor, intoFrame, rng, alignToTop);\n const elementIntoFrame = (editor, element, alignToTop) => withElement(editor, element, intoFrame, alignToTop);\n const scrollElementIntoView = (editor, element, alignToTop) => {\n const scroller = editor.inline ? elementIntoWindow : elementIntoFrame;\n scroller(editor, element, alignToTop);\n };\n const scrollRangeIntoView = (editor, rng, alignToTop) => {\n const scroller = editor.inline ? rangeIntoWindow : rangeIntoFrame;\n scroller(editor, rng, alignToTop);\n };\n\n const focus$1 = (element, preventScroll = false) => element.dom.focus({ preventScroll });\n const hasFocus$1 = element => {\n const root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n const active$1 = (root = getDocument()) => Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n const search = element => active$1(getRootNode(element)).filter(e => element.dom.contains(e.dom));\n\n const clamp$1 = (offset, element) => {\n const max = isText$c(element) ? get$3(element).length : children$1(element).length + 1;\n if (offset > max) {\n return max;\n } else if (offset < 0) {\n return 0;\n }\n return offset;\n };\n const normalizeRng = rng => SimSelection.range(rng.start, clamp$1(rng.soffset, rng.start), rng.finish, clamp$1(rng.foffset, rng.finish));\n const isOrContains = (root, elm) => !isRestrictedNode(elm.dom) && (contains(root, elm) || eq(root, elm));\n const isRngInRoot = root => rng => isOrContains(root, rng.start) && isOrContains(root, rng.finish);\n const shouldStore = editor => editor.inline || Env.browser.isFirefox();\n const nativeRangeToSelectionRange = r => SimSelection.range(SugarElement.fromDom(r.startContainer), r.startOffset, SugarElement.fromDom(r.endContainer), r.endOffset);\n const readRange = win => {\n const selection = win.getSelection();\n const rng = !selection || selection.rangeCount === 0 ? Optional.none() : Optional.from(selection.getRangeAt(0));\n return rng.map(nativeRangeToSelectionRange);\n };\n const getBookmark$1 = root => {\n const win = defaultView(root);\n return readRange(win.dom).filter(isRngInRoot(root));\n };\n const validate = (root, bookmark) => Optional.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng);\n const bookmarkToNativeRng = bookmark => {\n const rng = document.createRange();\n try {\n rng.setStart(bookmark.start.dom, bookmark.soffset);\n rng.setEnd(bookmark.finish.dom, bookmark.foffset);\n return Optional.some(rng);\n } catch (_) {\n return Optional.none();\n }\n };\n const store = editor => {\n const newBookmark = shouldStore(editor) ? getBookmark$1(SugarElement.fromDom(editor.getBody())) : Optional.none();\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n };\n const getRng = editor => {\n const bookmark = editor.bookmark ? editor.bookmark : Optional.none();\n return bookmark.bind(x => validate(SugarElement.fromDom(editor.getBody()), x)).bind(bookmarkToNativeRng);\n };\n const restore = editor => {\n getRng(editor).each(rng => editor.selection.setRng(rng));\n };\n\n const isEditorUIElement$1 = elm => {\n const className = elm.className.toString();\n return className.indexOf('tox-') !== -1 || className.indexOf('mce-') !== -1;\n };\n const FocusManager = { isEditorUIElement: isEditorUIElement$1 };\n\n const wrappedSetTimeout = (callback, time) => {\n if (!isNumber(time)) {\n time = 0;\n }\n return setTimeout(callback, time);\n };\n const wrappedSetInterval = (callback, time) => {\n if (!isNumber(time)) {\n time = 0;\n }\n return setInterval(callback, time);\n };\n const Delay = {\n setEditorTimeout: (editor, callback, time) => {\n return wrappedSetTimeout(() => {\n if (!editor.removed) {\n callback();\n }\n }, time);\n },\n setEditorInterval: (editor, callback, time) => {\n const timer = wrappedSetInterval(() => {\n if (!editor.removed) {\n callback();\n } else {\n clearInterval(timer);\n }\n }, time);\n return timer;\n }\n };\n\n const isManualNodeChange = e => {\n return e.type === 'nodechange' && e.selectionChange;\n };\n const registerPageMouseUp = (editor, throttledStore) => {\n const mouseUpPage = () => {\n throttledStore.throttle();\n };\n DOMUtils.DOM.bind(document, 'mouseup', mouseUpPage);\n editor.on('remove', () => {\n DOMUtils.DOM.unbind(document, 'mouseup', mouseUpPage);\n });\n };\n const registerMouseUp = (editor, throttledStore) => {\n editor.on('mouseup touchend', _e => {\n throttledStore.throttle();\n });\n };\n const registerEditorEvents = (editor, throttledStore) => {\n registerMouseUp(editor, throttledStore);\n editor.on('keyup NodeChange AfterSetSelectionRange', e => {\n if (!isManualNodeChange(e)) {\n store(editor);\n }\n });\n };\n const register$6 = editor => {\n const throttledStore = first$1(() => {\n store(editor);\n }, 0);\n editor.on('init', () => {\n if (editor.inline) {\n registerPageMouseUp(editor, throttledStore);\n }\n registerEditorEvents(editor, throttledStore);\n });\n editor.on('remove', () => {\n throttledStore.cancel();\n });\n };\n\n let documentFocusInHandler;\n const DOM$9 = DOMUtils.DOM;\n const isEditorUIElement = elm => {\n return isElement$6(elm) && FocusManager.isEditorUIElement(elm);\n };\n const isEditorContentAreaElement = elm => {\n const classList = elm.classList;\n if (classList !== undefined) {\n return classList.contains('tox-edit-area') || classList.contains('tox-edit-area__iframe') || classList.contains('mce-content-body');\n } else {\n return false;\n }\n };\n const isUIElement = (editor, elm) => {\n const customSelector = getCustomUiSelector(editor);\n const parent = DOM$9.getParent(elm, elm => {\n return isEditorUIElement(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);\n });\n return parent !== null;\n };\n const getActiveElement = editor => {\n try {\n const root = getRootNode(SugarElement.fromDom(editor.getElement()));\n return active$1(root).fold(() => document.body, x => x.dom);\n } catch (ex) {\n return document.body;\n }\n };\n const registerEvents$1 = (editorManager, e) => {\n const editor = e.editor;\n register$6(editor);\n const toggleContentAreaOnFocus = (editor, fn) => {\n if (shouldHighlightOnFocus(editor) && editor.inline !== true) {\n const contentArea = SugarElement.fromDom(editor.getContainer());\n fn(contentArea, 'tox-edit-focus');\n }\n };\n editor.on('focusin', () => {\n const focusedEditor = editorManager.focusedEditor;\n if (isEditorContentAreaElement(getActiveElement(editor))) {\n toggleContentAreaOnFocus(editor, add$2);\n }\n if (focusedEditor !== editor) {\n if (focusedEditor) {\n focusedEditor.dispatch('blur', { focusedEditor: editor });\n }\n editorManager.setActive(editor);\n editorManager.focusedEditor = editor;\n editor.dispatch('focus', { blurredEditor: focusedEditor });\n editor.focus(true);\n }\n });\n editor.on('focusout', () => {\n Delay.setEditorTimeout(editor, () => {\n const focusedEditor = editorManager.focusedEditor;\n if (!isEditorContentAreaElement(getActiveElement(editor)) || focusedEditor !== editor) {\n toggleContentAreaOnFocus(editor, remove$6);\n }\n if (!isUIElement(editor, getActiveElement(editor)) && focusedEditor === editor) {\n editor.dispatch('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n });\n });\n if (!documentFocusInHandler) {\n documentFocusInHandler = e => {\n const activeEditor = editorManager.activeEditor;\n if (activeEditor) {\n getOriginalEventTarget(e).each(target => {\n const elem = target;\n if (elem.ownerDocument === document) {\n if (elem !== document.body && !isUIElement(activeEditor, elem) && editorManager.focusedEditor === activeEditor) {\n activeEditor.dispatch('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n }\n });\n }\n };\n DOM$9.bind(document, 'focusin', documentFocusInHandler);\n }\n };\n const unregisterDocumentEvents = (editorManager, e) => {\n if (editorManager.focusedEditor === e.editor) {\n editorManager.focusedEditor = null;\n }\n if (!editorManager.activeEditor && documentFocusInHandler) {\n DOM$9.unbind(document, 'focusin', documentFocusInHandler);\n documentFocusInHandler = null;\n }\n };\n const setup$w = editorManager => {\n editorManager.on('AddEditor', curry(registerEvents$1, editorManager));\n editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));\n };\n\n const getContentEditableHost = (editor, node) => editor.dom.getParent(node, node => editor.dom.getContentEditable(node) === 'true');\n const hasContentEditableFalseParent = (editor, node) => editor.dom.getParent(node, node => editor.dom.getContentEditable(node) === 'false') !== null;\n const getCollapsedNode = rng => rng.collapsed ? Optional.from(getNode$1(rng.startContainer, rng.startOffset)).map(SugarElement.fromDom) : Optional.none();\n const getFocusInElement = (root, rng) => getCollapsedNode(rng).bind(node => {\n if (isTableSection(node)) {\n return Optional.some(node);\n } else if (!contains(root, node)) {\n return Optional.some(root);\n } else {\n return Optional.none();\n }\n });\n const normalizeSelection = (editor, rng) => {\n getFocusInElement(SugarElement.fromDom(editor.getBody()), rng).bind(elm => {\n return firstPositionIn(elm.dom);\n }).fold(() => {\n editor.selection.normalize();\n }, caretPos => editor.selection.setRng(caretPos.toRange()));\n };\n const focusBody = body => {\n if (body.setActive) {\n try {\n body.setActive();\n } catch (ex) {\n body.focus();\n }\n } else {\n body.focus();\n }\n };\n const hasElementFocus = elm => hasFocus$1(elm) || search(elm).isSome();\n const hasIframeFocus = editor => isNonNullable(editor.iframeElement) && hasFocus$1(SugarElement.fromDom(editor.iframeElement));\n const hasInlineFocus = editor => {\n const rawBody = editor.getBody();\n return rawBody && hasElementFocus(SugarElement.fromDom(rawBody));\n };\n const hasUiFocus = editor => {\n const dos = getRootNode(SugarElement.fromDom(editor.getElement()));\n return active$1(dos).filter(elem => !isEditorContentAreaElement(elem.dom) && isUIElement(editor, elem.dom)).isSome();\n };\n const hasFocus = editor => editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);\n const hasEditorOrUiFocus = editor => hasFocus(editor) || hasUiFocus(editor);\n const focusEditor = editor => {\n const selection = editor.selection;\n const body = editor.getBody();\n let rng = selection.getRng();\n editor.quirks.refreshContentEditable();\n const restoreBookmark = editor => {\n getRng(editor).each(bookmarkRng => {\n editor.selection.setRng(bookmarkRng);\n rng = bookmarkRng;\n });\n };\n if (!hasFocus(editor) && editor.hasEditableRoot()) {\n restoreBookmark(editor);\n }\n const contentEditableHost = getContentEditableHost(editor, selection.getNode());\n if (contentEditableHost && editor.dom.isChildOf(contentEditableHost, body)) {\n if (!hasContentEditableFalseParent(editor, contentEditableHost)) {\n focusBody(body);\n }\n focusBody(contentEditableHost);\n if (!editor.hasEditableRoot()) {\n restoreBookmark(editor);\n }\n normalizeSelection(editor, rng);\n activateEditor(editor);\n return;\n }\n if (!editor.inline) {\n if (!Env.browser.isOpera()) {\n focusBody(body);\n }\n editor.getWin().focus();\n }\n if (Env.browser.isFirefox() || editor.inline) {\n focusBody(body);\n normalizeSelection(editor, rng);\n }\n activateEditor(editor);\n };\n const activateEditor = editor => editor.editorManager.setActive(editor);\n const focus = (editor, skipFocus) => {\n if (editor.removed) {\n return;\n }\n if (skipFocus) {\n activateEditor(editor);\n } else {\n focusEditor(editor);\n }\n };\n\n const isEditableRange = (dom, rng) => {\n if (rng.collapsed) {\n return dom.isEditable(rng.startContainer);\n } else {\n return dom.isEditable(rng.startContainer) && dom.isEditable(rng.endContainer);\n }\n };\n\n const getEndpointElement = (root, rng, start, real, resolve) => {\n const container = start ? rng.startContainer : rng.endContainer;\n const offset = start ? rng.startOffset : rng.endOffset;\n return Optional.from(container).map(SugarElement.fromDom).map(elm => !real || !rng.collapsed ? child$1(elm, resolve(elm, offset)).getOr(elm) : elm).bind(elm => isElement$7(elm) ? Optional.some(elm) : parent(elm).filter(isElement$7)).map(elm => elm.dom).getOr(root);\n };\n const getStart = (root, rng, real = false) => getEndpointElement(root, rng, true, real, (elm, offset) => Math.min(childNodesCount(elm), offset));\n const getEnd = (root, rng, real = false) => getEndpointElement(root, rng, false, real, (elm, offset) => offset > 0 ? offset - 1 : offset);\n const skipEmptyTextNodes = (node, forwards) => {\n const orig = node;\n while (node && isText$b(node) && node.length === 0) {\n node = forwards ? node.nextSibling : node.previousSibling;\n }\n return node || orig;\n };\n const getNode = (root, rng) => {\n if (!rng) {\n return root;\n }\n let startContainer = rng.startContainer;\n let endContainer = rng.endContainer;\n const startOffset = rng.startOffset;\n const endOffset = rng.endOffset;\n let node = rng.commonAncestorContainer;\n if (!rng.collapsed) {\n if (startContainer === endContainer) {\n if (endOffset - startOffset < 2) {\n if (startContainer.hasChildNodes()) {\n node = startContainer.childNodes[startOffset];\n }\n }\n }\n if (isText$b(startContainer) && isText$b(endContainer)) {\n if (startContainer.length === startOffset) {\n startContainer = skipEmptyTextNodes(startContainer.nextSibling, true);\n } else {\n startContainer = startContainer.parentNode;\n }\n if (endOffset === 0) {\n endContainer = skipEmptyTextNodes(endContainer.previousSibling, false);\n } else {\n endContainer = endContainer.parentNode;\n }\n if (startContainer && startContainer === endContainer) {\n node = startContainer;\n }\n }\n }\n const elm = isText$b(node) ? node.parentNode : node;\n return isHTMLElement(elm) ? elm : root;\n };\n const getSelectedBlocks = (dom, rng, startElm, endElm) => {\n const selectedBlocks = [];\n const root = dom.getRoot();\n const start = dom.getParent(startElm || getStart(root, rng, rng.collapsed), dom.isBlock);\n const end = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock);\n if (start && start !== root) {\n selectedBlocks.push(start);\n }\n if (start && end && start !== end) {\n let node;\n const walker = new DomTreeWalker(start, root);\n while ((node = walker.next()) && node !== end) {\n if (dom.isBlock(node)) {\n selectedBlocks.push(node);\n }\n }\n }\n if (end && start !== end && end !== root) {\n selectedBlocks.push(end);\n }\n return selectedBlocks;\n };\n const select = (dom, node, content) => Optional.from(node).bind(node => Optional.from(node.parentNode).map(parent => {\n const idx = dom.nodeIndex(node);\n const rng = dom.createRng();\n rng.setStart(parent, idx);\n rng.setEnd(parent, idx + 1);\n if (content) {\n moveEndPoint(dom, rng, node, true);\n moveEndPoint(dom, rng, node, false);\n }\n return rng;\n }));\n\n const processRanges = (editor, ranges) => map$3(ranges, range => {\n const evt = editor.dispatch('GetSelectionRange', { range });\n return evt.range !== range ? evt.range : range;\n });\n\n const typeLookup = {\n '#text': 3,\n '#comment': 8,\n '#cdata': 4,\n '#pi': 7,\n '#doctype': 10,\n '#document-fragment': 11\n };\n const walk$2 = (node, root, prev) => {\n const startName = prev ? 'lastChild' : 'firstChild';\n const siblingName = prev ? 'prev' : 'next';\n if (node[startName]) {\n return node[startName];\n }\n if (node !== root) {\n let sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (let parent = node.parent; parent && parent !== root; parent = parent.parent) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n return undefined;\n };\n const isEmptyTextNode = node => {\n var _a;\n const text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n if (!isWhitespaceText(text)) {\n return false;\n }\n const parentNode = node.parent;\n if (parentNode && (parentNode.name !== 'span' || parentNode.attr('style')) && /^[ ]+$/.test(text)) {\n return false;\n }\n return true;\n };\n const isNonEmptyElement = node => {\n const isNamedAnchor = node.name === 'a' && !node.attr('href') && node.attr('id');\n return node.attr('name') || node.attr('id') && !node.firstChild || node.attr('data-mce-bookmark') || isNamedAnchor;\n };\n class AstNode {\n static create(name, attrs) {\n const node = new AstNode(name, typeLookup[name] || 1);\n if (attrs) {\n each$d(attrs, (value, attrName) => {\n node.attr(attrName, value);\n });\n }\n return node;\n }\n constructor(name, type) {\n this.name = name;\n this.type = type;\n if (type === 1) {\n this.attributes = [];\n this.attributes.map = {};\n }\n }\n replace(node) {\n const self = this;\n if (node.parent) {\n node.remove();\n }\n self.insert(node, self);\n self.remove();\n return self;\n }\n attr(name, value) {\n const self = this;\n if (!isString(name)) {\n if (isNonNullable(name)) {\n each$d(name, (value, key) => {\n self.attr(key, value);\n });\n }\n return self;\n }\n const attrs = self.attributes;\n if (attrs) {\n if (value !== undefined) {\n if (value === null) {\n if (name in attrs.map) {\n delete attrs.map[name];\n let i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs.splice(i, 1);\n return self;\n }\n }\n }\n return self;\n }\n if (name in attrs.map) {\n let i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs[i].value = value;\n break;\n }\n }\n } else {\n attrs.push({\n name,\n value\n });\n }\n attrs.map[name] = value;\n return self;\n }\n return attrs.map[name];\n }\n return undefined;\n }\n clone() {\n const self = this;\n const clone = new AstNode(self.name, self.type);\n const selfAttrs = self.attributes;\n if (selfAttrs) {\n const cloneAttrs = [];\n cloneAttrs.map = {};\n for (let i = 0, l = selfAttrs.length; i < l; i++) {\n const selfAttr = selfAttrs[i];\n if (selfAttr.name !== 'id') {\n cloneAttrs[cloneAttrs.length] = {\n name: selfAttr.name,\n value: selfAttr.value\n };\n cloneAttrs.map[selfAttr.name] = selfAttr.value;\n }\n }\n clone.attributes = cloneAttrs;\n }\n clone.value = self.value;\n return clone;\n }\n wrap(wrapper) {\n const self = this;\n if (self.parent) {\n self.parent.insert(wrapper, self);\n wrapper.append(self);\n }\n return self;\n }\n unwrap() {\n const self = this;\n for (let node = self.firstChild; node;) {\n const next = node.next;\n self.insert(node, self, true);\n node = next;\n }\n self.remove();\n }\n remove() {\n const self = this, parent = self.parent, next = self.next, prev = self.prev;\n if (parent) {\n if (parent.firstChild === self) {\n parent.firstChild = next;\n if (next) {\n next.prev = null;\n }\n } else if (prev) {\n prev.next = next;\n }\n if (parent.lastChild === self) {\n parent.lastChild = prev;\n if (prev) {\n prev.next = null;\n }\n } else if (next) {\n next.prev = prev;\n }\n self.parent = self.next = self.prev = null;\n }\n return self;\n }\n append(node) {\n const self = this;\n if (node.parent) {\n node.remove();\n }\n const last = self.lastChild;\n if (last) {\n last.next = node;\n node.prev = last;\n self.lastChild = node;\n } else {\n self.lastChild = self.firstChild = node;\n }\n node.parent = self;\n return node;\n }\n insert(node, refNode, before) {\n if (node.parent) {\n node.remove();\n }\n const parent = refNode.parent || this;\n if (before) {\n if (refNode === parent.firstChild) {\n parent.firstChild = node;\n } else if (refNode.prev) {\n refNode.prev.next = node;\n }\n node.prev = refNode.prev;\n node.next = refNode;\n refNode.prev = node;\n } else {\n if (refNode === parent.lastChild) {\n parent.lastChild = node;\n } else if (refNode.next) {\n refNode.next.prev = node;\n }\n node.next = refNode.next;\n node.prev = refNode;\n refNode.next = node;\n }\n node.parent = parent;\n return node;\n }\n getAll(name) {\n const self = this;\n const collection = [];\n for (let node = self.firstChild; node; node = walk$2(node, self)) {\n if (node.name === name) {\n collection.push(node);\n }\n }\n return collection;\n }\n children() {\n const self = this;\n const collection = [];\n for (let node = self.firstChild; node; node = node.next) {\n collection.push(node);\n }\n return collection;\n }\n empty() {\n const self = this;\n if (self.firstChild) {\n const nodes = [];\n for (let node = self.firstChild; node; node = walk$2(node, self)) {\n nodes.push(node);\n }\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;\n }\n }\n self.firstChild = self.lastChild = null;\n return self;\n }\n isEmpty(elements, whitespace = {}, predicate) {\n var _a;\n const self = this;\n let node = self.firstChild;\n if (isNonEmptyElement(self)) {\n return false;\n }\n if (node) {\n do {\n if (node.type === 1) {\n if (node.attr('data-mce-bogus')) {\n continue;\n }\n if (elements[node.name]) {\n return false;\n }\n if (isNonEmptyElement(node)) {\n return false;\n }\n }\n if (node.type === 8) {\n return false;\n }\n if (node.type === 3 && !isEmptyTextNode(node)) {\n return false;\n }\n if (node.type === 3 && node.parent && whitespace[node.parent.name] && isWhitespaceText((_a = node.value) !== null && _a !== void 0 ? _a : '')) {\n return false;\n }\n if (predicate && predicate(node)) {\n return false;\n }\n } while (node = walk$2(node, self));\n }\n return true;\n }\n walk(prev) {\n return walk$2(this, null, prev);\n }\n }\n\n const unescapedTextParents = Tools.makeMap('NOSCRIPT STYLE SCRIPT XMP IFRAME NOEMBED NOFRAMES PLAINTEXT', ' ');\n const containsZwsp = node => isString(node.nodeValue) && node.nodeValue.includes(ZWSP$1);\n const getTemporaryNodeSelector = tempAttrs => `${ tempAttrs.length === 0 ? '' : `${ map$3(tempAttrs, attr => `[${ attr }]`).join(',') },` }[data-mce-bogus=\"all\"]`;\n const getTemporaryNodes = (tempAttrs, body) => body.querySelectorAll(getTemporaryNodeSelector(tempAttrs));\n const createZwspCommentWalker = body => document.createTreeWalker(body, NodeFilter.SHOW_COMMENT, node => containsZwsp(node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP);\n const createUnescapedZwspTextWalker = body => document.createTreeWalker(body, NodeFilter.SHOW_TEXT, node => {\n if (containsZwsp(node)) {\n const parent = node.parentNode;\n return parent && has$2(unescapedTextParents, parent.nodeName) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n } else {\n return NodeFilter.FILTER_SKIP;\n }\n });\n const hasZwspComment = body => createZwspCommentWalker(body).nextNode() !== null;\n const hasUnescapedZwspText = body => createUnescapedZwspTextWalker(body).nextNode() !== null;\n const hasTemporaryNode = (tempAttrs, body) => body.querySelector(getTemporaryNodeSelector(tempAttrs)) !== null;\n const trimTemporaryNodes = (tempAttrs, body) => {\n each$e(getTemporaryNodes(tempAttrs, body), elm => {\n const element = SugarElement.fromDom(elm);\n if (get$9(element, 'data-mce-bogus') === 'all') {\n remove$4(element);\n } else {\n each$e(tempAttrs, attr => {\n if (has$1(element, attr)) {\n remove$9(element, attr);\n }\n });\n }\n });\n };\n const emptyAllNodeValuesInWalker = walker => {\n let curr = walker.nextNode();\n while (curr !== null) {\n curr.nodeValue = null;\n curr = walker.nextNode();\n }\n };\n const emptyZwspComments = compose(emptyAllNodeValuesInWalker, createZwspCommentWalker);\n const emptyUnescapedZwspTexts = compose(emptyAllNodeValuesInWalker, createUnescapedZwspTextWalker);\n const trim$1 = (body, tempAttrs) => {\n const conditionalTrims = [\n {\n condition: curry(hasTemporaryNode, tempAttrs),\n action: curry(trimTemporaryNodes, tempAttrs)\n },\n {\n condition: hasZwspComment,\n action: emptyZwspComments\n },\n {\n condition: hasUnescapedZwspText,\n action: emptyUnescapedZwspTexts\n }\n ];\n let trimmed = body;\n let cloned = false;\n each$e(conditionalTrims, ({condition, action}) => {\n if (condition(trimmed)) {\n if (!cloned) {\n trimmed = body.cloneNode(true);\n cloned = true;\n }\n action(trimmed);\n }\n });\n return trimmed;\n };\n\n const cleanupBogusElements = parent => {\n const bogusElements = descendants(parent, '[data-mce-bogus]');\n each$e(bogusElements, elem => {\n const bogusValue = get$9(elem, 'data-mce-bogus');\n if (bogusValue === 'all') {\n remove$4(elem);\n } else if (isBr$5(elem)) {\n before$3(elem, SugarElement.fromText(zeroWidth));\n remove$4(elem);\n } else {\n unwrap(elem);\n }\n });\n };\n const cleanupInputNames = parent => {\n const inputs = descendants(parent, 'input');\n each$e(inputs, input => {\n remove$9(input, 'name');\n });\n };\n\n const trimEmptyContents = (editor, html) => {\n const blockName = getForcedRootBlock(editor);\n const emptyRegExp = new RegExp(`^(<${ blockName }[^>]*>( | |\\\\s|\\u00a0|
|)<\\\\/${ blockName }>[\\r\\n]*|
[\\r\\n]*)$`);\n return html.replace(emptyRegExp, '');\n };\n const getPlainTextContent = (editor, body) => {\n const doc = editor.getDoc();\n const dos = getRootNode(SugarElement.fromDom(editor.getBody()));\n const offscreenDiv = SugarElement.fromTag('div', doc);\n set$3(offscreenDiv, 'data-mce-bogus', 'all');\n setAll(offscreenDiv, {\n position: 'fixed',\n left: '-9999999px',\n top: '0'\n });\n set$1(offscreenDiv, body.innerHTML);\n cleanupBogusElements(offscreenDiv);\n cleanupInputNames(offscreenDiv);\n const root = getContentContainer(dos);\n append$1(root, offscreenDiv);\n const content = trim$2(offscreenDiv.dom.innerText);\n remove$4(offscreenDiv);\n return content;\n };\n const getContentFromBody = (editor, args, body) => {\n let content;\n if (args.format === 'raw') {\n content = Tools.trim(trim$2(trim$1(body, editor.serializer.getTempAttrs()).innerHTML));\n } else if (args.format === 'text') {\n content = getPlainTextContent(editor, body);\n } else if (args.format === 'tree') {\n content = editor.serializer.serialize(body, args);\n } else {\n content = trimEmptyContents(editor, editor.serializer.serialize(body, args));\n }\n const shouldTrim = args.format !== 'text' && !isWsPreserveElement(SugarElement.fromDom(body));\n return shouldTrim && isString(content) ? Tools.trim(content) : content;\n };\n const getContentInternal = (editor, args) => Optional.from(editor.getBody()).fold(constant(args.format === 'tree' ? new AstNode('body', 11) : ''), body => getContentFromBody(editor, args, body));\n\n const makeMap$1 = Tools.makeMap;\n const Writer = settings => {\n const html = [];\n settings = settings || {};\n const indent = settings.indent;\n const indentBefore = makeMap$1(settings.indent_before || '');\n const indentAfter = makeMap$1(settings.indent_after || '');\n const encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);\n const htmlOutput = settings.element_format !== 'xhtml';\n return {\n start: (name, attrs, empty) => {\n if (indent && indentBefore[name] && html.length > 0) {\n const value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n html.push('<', name);\n if (attrs) {\n for (let i = 0, l = attrs.length; i < l; i++) {\n const attr = attrs[i];\n html.push(' ', attr.name, '=\"', encode(attr.value, true), '\"');\n }\n }\n if (!empty || htmlOutput) {\n html[html.length] = '>';\n } else {\n html[html.length] = ' />';\n }\n if (empty && indent && indentAfter[name] && html.length > 0) {\n const value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n end: name => {\n let value;\n html.push('');\n if (indent && indentAfter[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n text: (text, raw) => {\n if (text.length > 0) {\n html[html.length] = raw ? text : encode(text);\n }\n },\n cdata: text => {\n html.push('');\n },\n comment: text => {\n html.push('');\n },\n pi: (name, text) => {\n if (text) {\n html.push('');\n } else {\n html.push('');\n }\n if (indent) {\n html.push('\\n');\n }\n },\n doctype: text => {\n html.push('', indent ? '\\n' : '');\n },\n reset: () => {\n html.length = 0;\n },\n getContent: () => {\n return html.join('').replace(/\\n$/, '');\n }\n };\n };\n\n const HtmlSerializer = (settings = {}, schema = Schema()) => {\n const writer = Writer(settings);\n settings.validate = 'validate' in settings ? settings.validate : true;\n const serialize = node => {\n const validate = settings.validate;\n const handlers = {\n 3: node => {\n var _a;\n writer.text((_a = node.value) !== null && _a !== void 0 ? _a : '', node.raw);\n },\n 8: node => {\n var _a;\n writer.comment((_a = node.value) !== null && _a !== void 0 ? _a : '');\n },\n 7: node => {\n writer.pi(node.name, node.value);\n },\n 10: node => {\n var _a;\n writer.doctype((_a = node.value) !== null && _a !== void 0 ? _a : '');\n },\n 4: node => {\n var _a;\n writer.cdata((_a = node.value) !== null && _a !== void 0 ? _a : '');\n },\n 11: node => {\n let tempNode = node;\n if (tempNode = tempNode.firstChild) {\n do {\n walk(tempNode);\n } while (tempNode = tempNode.next);\n }\n }\n };\n writer.reset();\n const walk = node => {\n var _a;\n const handler = handlers[node.type];\n if (!handler) {\n const name = node.name;\n const isEmpty = name in schema.getVoidElements();\n let attrs = node.attributes;\n if (validate && attrs && attrs.length > 1) {\n const sortedAttrs = [];\n sortedAttrs.map = {};\n const elementRule = schema.getElementRule(node.name);\n if (elementRule) {\n for (let i = 0, l = elementRule.attributesOrder.length; i < l; i++) {\n const attrName = elementRule.attributesOrder[i];\n if (attrName in attrs.map) {\n const attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n for (let i = 0, l = attrs.length; i < l; i++) {\n const attrName = attrs[i].name;\n if (!(attrName in sortedAttrs.map)) {\n const attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n attrs = sortedAttrs;\n }\n }\n writer.start(name, attrs, isEmpty);\n if (isNonHtmlElementRootName(name)) {\n if (isString(node.value)) {\n writer.text(node.value, true);\n }\n writer.end(name);\n } else {\n if (!isEmpty) {\n let child = node.firstChild;\n if (child) {\n if ((name === 'pre' || name === 'textarea') && child.type === 3 && ((_a = child.value) === null || _a === void 0 ? void 0 : _a[0]) === '\\n') {\n writer.text('\\n', true);\n }\n do {\n walk(child);\n } while (child = child.next);\n }\n writer.end(name);\n }\n }\n } else {\n handler(node);\n }\n };\n if (node.type === 1 && !settings.inner) {\n walk(node);\n } else if (node.type === 3) {\n handlers[3](node);\n } else {\n handlers[11](node);\n }\n return writer.getContent();\n };\n return { serialize };\n };\n\n const nonInheritableStyles = new Set();\n (() => {\n const nonInheritableStylesArr = [\n 'margin',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-bottom',\n 'padding',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'padding-bottom',\n 'border',\n 'border-width',\n 'border-style',\n 'border-color',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'float',\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'z-index',\n 'display',\n 'transform',\n 'width',\n 'max-width',\n 'min-width',\n 'height',\n 'max-height',\n 'min-height',\n 'overflow',\n 'overflow-x',\n 'overflow-y',\n 'text-overflow',\n 'vertical-align',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function'\n ];\n each$e(nonInheritableStylesArr, style => {\n nonInheritableStyles.add(style);\n });\n })();\n const conditionalNonInheritableStyles = new Set();\n (() => {\n const conditionalNonInheritableStylesArr = ['background-color'];\n each$e(conditionalNonInheritableStylesArr, style => {\n conditionalNonInheritableStyles.add(style);\n });\n })();\n const shorthandStyleProps = [\n 'font',\n 'text-decoration',\n 'text-emphasis'\n ];\n const getStyles$1 = (dom, node) => dom.parseStyle(dom.getAttrib(node, 'style'));\n const getStyleProps = (dom, node) => keys(getStyles$1(dom, node));\n const isNonInheritableStyle = style => nonInheritableStyles.has(style);\n const isConditionalNonInheritableStyle = style => conditionalNonInheritableStyles.has(style);\n const hasNonInheritableStyles = (dom, node) => exists(getStyleProps(dom, node), style => isNonInheritableStyle(style));\n const hasConditionalNonInheritableStyles = (dom, node) => hasNonInheritableStyles(dom, node) && exists(getStyleProps(dom, node), style => isConditionalNonInheritableStyle(style));\n const getLonghandStyleProps = styles => filter$5(styles, style => exists(shorthandStyleProps, prop => startsWith(style, prop)));\n const hasStyleConflict = (dom, node, parentNode) => {\n const nodeStyleProps = getStyleProps(dom, node);\n const parentNodeStyleProps = getStyleProps(dom, parentNode);\n const valueMismatch = prop => {\n var _a, _b;\n const nodeValue = (_a = dom.getStyle(node, prop)) !== null && _a !== void 0 ? _a : '';\n const parentValue = (_b = dom.getStyle(parentNode, prop)) !== null && _b !== void 0 ? _b : '';\n return isNotEmpty(nodeValue) && isNotEmpty(parentValue) && nodeValue !== parentValue;\n };\n return exists(nodeStyleProps, nodeStyleProp => {\n const propExists = props => exists(props, prop => prop === nodeStyleProp);\n if (!propExists(parentNodeStyleProps) && propExists(shorthandStyleProps)) {\n const longhandProps = getLonghandStyleProps(parentNodeStyleProps);\n return exists(longhandProps, valueMismatch);\n } else {\n return valueMismatch(nodeStyleProp);\n }\n });\n };\n\n const isChar = (forward, predicate, pos) => Optional.from(pos.container()).filter(isText$b).exists(text => {\n const delta = forward ? 0 : -1;\n return predicate(text.data.charAt(pos.offset() + delta));\n });\n const isBeforeSpace = curry(isChar, true, isWhiteSpace);\n const isAfterSpace = curry(isChar, false, isWhiteSpace);\n const isEmptyText = pos => {\n const container = pos.container();\n return isText$b(container) && (container.data.length === 0 || isZwsp(container.data) && BookmarkManager.isBookmarkNode(container.parentNode));\n };\n const matchesElementPosition = (before, predicate) => pos => getChildNodeAtRelativeOffset(before ? 0 : -1, pos).filter(predicate).isSome();\n const isImageBlock = node => isImg(node) && get$7(SugarElement.fromDom(node), 'display') === 'block';\n const isCefNode = node => isContentEditableFalse$b(node) && !isBogusAll(node);\n const isBeforeImageBlock = matchesElementPosition(true, isImageBlock);\n const isAfterImageBlock = matchesElementPosition(false, isImageBlock);\n const isBeforeMedia = matchesElementPosition(true, isMedia$2);\n const isAfterMedia = matchesElementPosition(false, isMedia$2);\n const isBeforeTable = matchesElementPosition(true, isTable$2);\n const isAfterTable = matchesElementPosition(false, isTable$2);\n const isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode);\n const isAfterContentEditableFalse = matchesElementPosition(false, isCefNode);\n\n const dropLast = xs => xs.slice(0, -1);\n const parentsUntil = (start, root, predicate) => {\n if (contains(root, start)) {\n return dropLast(parents$1(start, elm => {\n return predicate(elm) || eq(elm, root);\n }));\n } else {\n return [];\n }\n };\n const parents = (start, root) => parentsUntil(start, root, never);\n const parentsAndSelf = (start, root) => [start].concat(parents(start, root));\n\n const navigateIgnoreEmptyTextNodes = (forward, root, from) => navigateIgnore(forward, root, from, isEmptyText);\n const isBlock$1 = schema => el => schema.isBlock(name(el));\n const getClosestBlock$1 = (root, pos, schema) => find$2(parentsAndSelf(SugarElement.fromDom(pos.container()), root), isBlock$1(schema));\n const isAtBeforeAfterBlockBoundary = (forward, root, pos, schema) => navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(newPos => getClosestBlock$1(root, pos, schema).fold(() => !isInSameBlock(newPos, pos, root.dom), fromBlock => !isInSameBlock(newPos, pos, root.dom) && contains(fromBlock, SugarElement.fromDom(newPos.container()))));\n const isAtBlockBoundary = (forward, root, pos, schema) => getClosestBlock$1(root, pos, schema).fold(() => navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(newPos => !isInSameBlock(newPos, pos, root.dom)), parent => navigateIgnoreEmptyTextNodes(forward, parent.dom, pos).isNone());\n const isAtStartOfBlock = curry(isAtBlockBoundary, false);\n const isAtEndOfBlock = curry(isAtBlockBoundary, true);\n const isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);\n const isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);\n\n const isBr$1 = pos => getElementFromPosition(pos).exists(isBr$5);\n const findBr = (forward, root, pos, schema) => {\n const parentBlocks = filter$5(parentsAndSelf(SugarElement.fromDom(pos.container()), root), el => schema.isBlock(name(el)));\n const scope = head(parentBlocks).getOr(root);\n return fromPosition(forward, scope.dom, pos).filter(isBr$1);\n };\n const isBeforeBr$1 = (root, pos, schema) => getElementFromPosition(pos).exists(isBr$5) || findBr(true, root, pos, schema).isSome();\n const isAfterBr = (root, pos, schema) => getElementFromPrevPosition(pos).exists(isBr$5) || findBr(false, root, pos, schema).isSome();\n const findPreviousBr = curry(findBr, false);\n const findNextBr = curry(findBr, true);\n\n const isInMiddleOfText = pos => CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();\n const getClosestBlock = (root, pos, schema) => {\n const parentBlocks = filter$5(parentsAndSelf(SugarElement.fromDom(pos.container()), root), el => schema.isBlock(name(el)));\n return head(parentBlocks).getOr(root);\n };\n const hasSpaceBefore = (root, pos, schema) => {\n if (isInMiddleOfText(pos)) {\n return isAfterSpace(pos);\n } else {\n return isAfterSpace(pos) || prevPosition(getClosestBlock(root, pos, schema).dom, pos).exists(isAfterSpace);\n }\n };\n const hasSpaceAfter = (root, pos, schema) => {\n if (isInMiddleOfText(pos)) {\n return isBeforeSpace(pos);\n } else {\n return isBeforeSpace(pos) || nextPosition(getClosestBlock(root, pos, schema).dom, pos).exists(isBeforeSpace);\n }\n };\n const isPreValue = value => contains$2([\n 'pre',\n 'pre-wrap'\n ], value);\n const isInPre = pos => getElementFromPosition(pos).bind(elm => closest$4(elm, isElement$7)).exists(elm => isPreValue(get$7(elm, 'white-space')));\n const isAtBeginningOfBody = (root, pos) => prevPosition(root.dom, pos).isNone();\n const isAtEndOfBody = (root, pos) => nextPosition(root.dom, pos).isNone();\n const isAtLineBoundary = (root, pos, schema) => isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos, schema) || isAtEndOfBlock(root, pos, schema) || isAfterBr(root, pos, schema) || isBeforeBr$1(root, pos, schema);\n const isCefBlock = node => isNonNullable(node) && isContentEditableFalse$b(node) && isBlockLike(node);\n const isSiblingCefBlock = (root, direction) => container => {\n return isCefBlock(new DomTreeWalker(container, root)[direction]());\n };\n const isBeforeCefBlock = (root, pos) => {\n const nextPos = nextPosition(root.dom, pos).getOr(pos);\n const isNextCefBlock = isSiblingCefBlock(root.dom, 'next');\n return pos.isAtEnd() && (isNextCefBlock(pos.container()) || isNextCefBlock(nextPos.container()));\n };\n const isAfterCefBlock = (root, pos) => {\n const prevPos = prevPosition(root.dom, pos).getOr(pos);\n const isPrevCefBlock = isSiblingCefBlock(root.dom, 'prev');\n return pos.isAtStart() && (isPrevCefBlock(pos.container()) || isPrevCefBlock(prevPos.container()));\n };\n const needsToHaveNbsp = (root, pos, schema) => {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtLineBoundary(root, pos, schema) || hasSpaceBefore(root, pos, schema) || hasSpaceAfter(root, pos, schema);\n }\n };\n const needsToBeNbspLeft = (root, pos, schema) => {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtStartOfBlock(root, pos, schema) || isBeforeBlock(root, pos, schema) || isAfterBr(root, pos, schema) || hasSpaceBefore(root, pos, schema) || isAfterCefBlock(root, pos);\n }\n };\n const leanRight = pos => {\n const container = pos.container();\n const offset = pos.offset();\n if (isText$b(container) && offset < container.data.length) {\n return CaretPosition(container, offset + 1);\n } else {\n return pos;\n }\n };\n const needsToBeNbspRight = (root, pos, schema) => {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtEndOfBlock(root, pos, schema) || isAfterBlock(root, pos, schema) || isBeforeBr$1(root, pos, schema) || hasSpaceAfter(root, pos, schema) || isBeforeCefBlock(root, pos);\n }\n };\n const needsToBeNbsp = (root, pos, schema) => needsToBeNbspLeft(root, pos, schema) || needsToBeNbspRight(root, leanRight(pos), schema);\n const isNbspAt = (text, offset) => isNbsp(text.charAt(offset));\n const isWhiteSpaceAt = (text, offset) => isWhiteSpace(text.charAt(offset));\n const hasNbsp = pos => {\n const container = pos.container();\n return isText$b(container) && contains$1(container.data, nbsp);\n };\n const normalizeNbspMiddle = text => {\n const chars = text.split('');\n return map$3(chars, (chr, i) => {\n if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) {\n return ' ';\n } else {\n return chr;\n }\n }).join('');\n };\n const normalizeNbspAtStart = (root, node, makeNbsp, schema) => {\n const text = node.data;\n const firstPos = CaretPosition(node, 0);\n if (!makeNbsp && isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos, schema)) {\n node.data = ' ' + text.slice(1);\n return true;\n } else if (makeNbsp && isWhiteSpaceAt(text, 0) && needsToBeNbspLeft(root, firstPos, schema)) {\n node.data = nbsp + text.slice(1);\n return true;\n } else {\n return false;\n }\n };\n const normalizeNbspInMiddleOfTextNode = node => {\n const text = node.data;\n const newText = normalizeNbspMiddle(text);\n if (newText !== text) {\n node.data = newText;\n return true;\n } else {\n return false;\n }\n };\n const normalizeNbspAtEnd = (root, node, makeNbsp, schema) => {\n const text = node.data;\n const lastPos = CaretPosition(node, text.length - 1);\n if (!makeNbsp && isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos, schema)) {\n node.data = text.slice(0, -1) + ' ';\n return true;\n } else if (makeNbsp && isWhiteSpaceAt(text, text.length - 1) && needsToBeNbspRight(root, lastPos, schema)) {\n node.data = text.slice(0, -1) + nbsp;\n return true;\n } else {\n return false;\n }\n };\n const normalizeNbsps$1 = (root, pos, schema) => {\n const container = pos.container();\n if (!isText$b(container)) {\n return Optional.none();\n }\n if (hasNbsp(pos)) {\n const normalized = normalizeNbspAtStart(root, container, false, schema) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container, false, schema);\n return someIf(normalized, pos);\n } else if (needsToBeNbsp(root, pos, schema)) {\n const normalized = normalizeNbspAtStart(root, container, true, schema) || normalizeNbspAtEnd(root, container, true, schema);\n return someIf(normalized, pos);\n } else {\n return Optional.none();\n }\n };\n const normalizeNbspsInEditor = editor => {\n const root = SugarElement.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n normalizeNbsps$1(root, CaretPosition.fromRangeStart(editor.selection.getRng()), editor.schema).each(pos => {\n editor.selection.setRng(pos.toRange());\n });\n }\n };\n\n const normalize$1 = (node, offset, count, schema) => {\n if (count === 0) {\n return;\n }\n const elm = SugarElement.fromDom(node);\n const root = ancestor$4(elm, el => schema.isBlock(name(el))).getOr(elm);\n const whitespace = node.data.slice(offset, offset + count);\n const isEndOfContent = offset + count >= node.data.length && needsToBeNbspRight(root, CaretPosition(node, node.data.length), schema);\n const isStartOfContent = offset === 0 && needsToBeNbspLeft(root, CaretPosition(node, 0), schema);\n node.replaceData(offset, count, normalize$4(whitespace, 4, isStartOfContent, isEndOfContent));\n };\n const normalizeWhitespaceAfter = (node, offset, schema) => {\n const content = node.data.slice(offset);\n const whitespaceCount = content.length - lTrim(content).length;\n normalize$1(node, offset, whitespaceCount, schema);\n };\n const normalizeWhitespaceBefore = (node, offset, schema) => {\n const content = node.data.slice(0, offset);\n const whitespaceCount = content.length - rTrim(content).length;\n normalize$1(node, offset - whitespaceCount, whitespaceCount, schema);\n };\n const mergeTextNodes = (prevNode, nextNode, schema, normalizeWhitespace, mergeToPrev = true) => {\n const whitespaceOffset = rTrim(prevNode.data).length;\n const newNode = mergeToPrev ? prevNode : nextNode;\n const removeNode = mergeToPrev ? nextNode : prevNode;\n if (mergeToPrev) {\n newNode.appendData(removeNode.data);\n } else {\n newNode.insertData(0, removeNode.data);\n }\n remove$4(SugarElement.fromDom(removeNode));\n if (normalizeWhitespace) {\n normalizeWhitespaceAfter(newNode, whitespaceOffset, schema);\n }\n return newNode;\n };\n\n const needsReposition = (pos, elm) => {\n const container = pos.container();\n const offset = pos.offset();\n return !CaretPosition.isTextPosition(pos) && container === elm.parentNode && offset > CaretPosition.before(elm).offset();\n };\n const reposition = (elm, pos) => needsReposition(pos, elm) ? CaretPosition(pos.container(), pos.offset() - 1) : pos;\n const beforeOrStartOf = node => isText$b(node) ? CaretPosition(node, 0) : CaretPosition.before(node);\n const afterOrEndOf = node => isText$b(node) ? CaretPosition(node, node.data.length) : CaretPosition.after(node);\n const getPreviousSiblingCaretPosition = elm => {\n if (isCaretCandidate$3(elm.previousSibling)) {\n return Optional.some(afterOrEndOf(elm.previousSibling));\n } else {\n return elm.previousSibling ? lastPositionIn(elm.previousSibling) : Optional.none();\n }\n };\n const getNextSiblingCaretPosition = elm => {\n if (isCaretCandidate$3(elm.nextSibling)) {\n return Optional.some(beforeOrStartOf(elm.nextSibling));\n } else {\n return elm.nextSibling ? firstPositionIn(elm.nextSibling) : Optional.none();\n }\n };\n const findCaretPositionBackwardsFromElm = (rootElement, elm) => {\n return Optional.from(elm.previousSibling ? elm.previousSibling : elm.parentNode).bind(node => prevPosition(rootElement, CaretPosition.before(node))).orThunk(() => nextPosition(rootElement, CaretPosition.after(elm)));\n };\n const findCaretPositionForwardsFromElm = (rootElement, elm) => nextPosition(rootElement, CaretPosition.after(elm)).orThunk(() => prevPosition(rootElement, CaretPosition.before(elm)));\n const findCaretPositionBackwards = (rootElement, elm) => getPreviousSiblingCaretPosition(elm).orThunk(() => getNextSiblingCaretPosition(elm)).orThunk(() => findCaretPositionBackwardsFromElm(rootElement, elm));\n const findCaretPositionForward = (rootElement, elm) => getNextSiblingCaretPosition(elm).orThunk(() => getPreviousSiblingCaretPosition(elm)).orThunk(() => findCaretPositionForwardsFromElm(rootElement, elm));\n const findCaretPosition = (forward, rootElement, elm) => forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);\n const findCaretPosOutsideElmAfterDelete = (forward, rootElement, elm) => findCaretPosition(forward, rootElement, elm).map(curry(reposition, elm));\n const setSelection$1 = (editor, forward, pos) => {\n pos.fold(() => {\n editor.focus();\n }, pos => {\n editor.selection.setRng(pos.toRange(), forward);\n });\n };\n const eqRawNode = rawNode => elm => elm.dom === rawNode;\n const isBlock = (editor, elm) => elm && has$2(editor.schema.getBlockElements(), name(elm));\n const paddEmptyBlock = (schema, elm, preserveEmptyCaret) => {\n if (isEmpty$2(schema, elm)) {\n const br = SugarElement.fromHtml('
');\n if (preserveEmptyCaret) {\n each$e(children$1(elm), node => {\n if (!isEmptyCaretFormatElement(node)) {\n remove$4(node);\n }\n });\n } else {\n empty(elm);\n }\n append$1(elm, br);\n return Optional.some(CaretPosition.before(br.dom));\n } else {\n return Optional.none();\n }\n };\n const deleteNormalized = (elm, afterDeletePosOpt, schema, normalizeWhitespace) => {\n const prevTextOpt = prevSibling(elm).filter(isText$c);\n const nextTextOpt = nextSibling(elm).filter(isText$c);\n remove$4(elm);\n return lift3(prevTextOpt, nextTextOpt, afterDeletePosOpt, (prev, next, pos) => {\n const prevNode = prev.dom, nextNode = next.dom;\n const offset = prevNode.data.length;\n mergeTextNodes(prevNode, nextNode, schema, normalizeWhitespace);\n return pos.container() === nextNode ? CaretPosition(prevNode, offset) : pos;\n }).orThunk(() => {\n if (normalizeWhitespace) {\n prevTextOpt.each(elm => normalizeWhitespaceBefore(elm.dom, elm.dom.length, schema));\n nextTextOpt.each(elm => normalizeWhitespaceAfter(elm.dom, 0, schema));\n }\n return afterDeletePosOpt;\n });\n };\n const isInlineElement = (editor, element) => has$2(editor.schema.getTextInlineElements(), name(element));\n const deleteElement$2 = (editor, forward, elm, moveCaret = true, preserveEmptyCaret = false) => {\n const afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom);\n const parentBlock = ancestor$4(elm, curry(isBlock, editor), eqRawNode(editor.getBody()));\n const normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos, editor.schema, isInlineElement(editor, elm));\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n parentBlock.bind(elm => paddEmptyBlock(editor.schema, elm, preserveEmptyCaret)).fold(() => {\n if (moveCaret) {\n setSelection$1(editor, forward, normalizedAfterDeletePos);\n }\n }, paddPos => {\n if (moveCaret) {\n setSelection$1(editor, forward, Optional.some(paddPos));\n }\n });\n }\n };\n\n const strongRtl = /[\\u0591-\\u07FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFC]/;\n const hasStrongRtl = text => strongRtl.test(text);\n\n const isInlineTarget = (editor, elm) => is$1(SugarElement.fromDom(elm), getInlineBoundarySelector(editor)) && !isTransparentBlock(editor.schema, elm) && editor.dom.isEditable(elm);\n const isRtl = element => {\n var _a;\n return DOMUtils.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl((_a = element.textContent) !== null && _a !== void 0 ? _a : '');\n };\n const findInlineParents = (isInlineTarget, rootNode, pos) => filter$5(DOMUtils.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);\n const findRootInline = (isInlineTarget, rootNode, pos) => {\n const parents = findInlineParents(isInlineTarget, rootNode, pos);\n return Optional.from(parents[parents.length - 1]);\n };\n const hasSameParentBlock = (rootNode, node1, node2) => {\n const block1 = getParentBlock$3(node1, rootNode);\n const block2 = getParentBlock$3(node2, rootNode);\n return isNonNullable(block1) && block1 === block2;\n };\n const isAtZwsp = pos => isBeforeInline(pos) || isAfterInline(pos);\n const normalizePosition = (forward, pos) => {\n const container = pos.container(), offset = pos.offset();\n if (forward) {\n if (isCaretContainerInline(container)) {\n if (isText$b(container.nextSibling)) {\n return CaretPosition(container.nextSibling, 0);\n } else {\n return CaretPosition.after(container);\n }\n } else {\n return isBeforeInline(pos) ? CaretPosition(container, offset + 1) : pos;\n }\n } else {\n if (isCaretContainerInline(container)) {\n if (isText$b(container.previousSibling)) {\n return CaretPosition(container.previousSibling, container.previousSibling.data.length);\n } else {\n return CaretPosition.before(container);\n }\n } else {\n return isAfterInline(pos) ? CaretPosition(container, offset - 1) : pos;\n }\n }\n };\n const normalizeForwards = curry(normalizePosition, true);\n const normalizeBackwards = curry(normalizePosition, false);\n\n const execCommandIgnoreInputEvents = (editor, command) => {\n const inputBlocker = e => e.stopImmediatePropagation();\n editor.on('beforeinput input', inputBlocker, true);\n editor.getDoc().execCommand(command);\n editor.off('beforeinput input', inputBlocker);\n };\n const execEditorDeleteCommand = editor => {\n editor.execCommand('delete');\n };\n const execNativeDeleteCommand = editor => execCommandIgnoreInputEvents(editor, 'Delete');\n const execNativeForwardDeleteCommand = editor => execCommandIgnoreInputEvents(editor, 'ForwardDelete');\n const isBeforeRoot = rootNode => elm => is$2(parent(elm), rootNode, eq);\n const isTextBlockOrListItem = element => isTextBlock$2(element) || isListItem$1(element);\n const getParentBlock$2 = (rootNode, elm) => {\n if (contains(rootNode, elm)) {\n return closest$4(elm, isTextBlockOrListItem, isBeforeRoot(rootNode));\n } else {\n return Optional.none();\n }\n };\n const paddEmptyBody = (editor, moveSelection = true) => {\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('', { no_selection: !moveSelection });\n }\n };\n const willDeleteLastPositionInElement = (forward, fromPos, elm) => lift2(firstPositionIn(elm), lastPositionIn(elm), (firstPos, lastPos) => {\n const normalizedFirstPos = normalizePosition(true, firstPos);\n const normalizedLastPos = normalizePosition(false, lastPos);\n const normalizedFromPos = normalizePosition(false, fromPos);\n if (forward) {\n return nextPosition(elm, normalizedFromPos).exists(nextPos => nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos));\n } else {\n return prevPosition(elm, normalizedFromPos).exists(prevPos => prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos));\n }\n }).getOr(true);\n const freefallRtl = root => {\n const child = isComment$1(root) ? prevSibling(root) : lastChild(root);\n return child.bind(freefallRtl).orThunk(() => Optional.some(root));\n };\n const deleteRangeContents = (editor, rng, root, moveSelection = true) => {\n var _a;\n rng.deleteContents();\n const lastNode = freefallRtl(root).getOr(root);\n const lastBlock = SugarElement.fromDom((_a = editor.dom.getParent(lastNode.dom, editor.dom.isBlock)) !== null && _a !== void 0 ? _a : root.dom);\n if (lastBlock.dom === editor.getBody()) {\n paddEmptyBody(editor, moveSelection);\n } else if (isEmpty$2(editor.schema, lastBlock, { checkRootAsContent: false })) {\n fillWithPaddingBr(lastBlock);\n if (moveSelection) {\n editor.selection.setCursorLocation(lastBlock.dom, 0);\n }\n }\n if (!eq(root, lastBlock)) {\n const additionalCleanupNodes = is$2(parent(lastBlock), root) ? [] : siblings(lastBlock);\n each$e(additionalCleanupNodes.concat(children$1(root)), node => {\n if (!eq(node, lastBlock) && !contains(node, lastBlock) && isEmpty$2(editor.schema, node)) {\n remove$4(node);\n }\n });\n }\n };\n\n const isRootFromElement = root => cur => eq(root, cur);\n const getTableCells = table => descendants(table, 'td,th');\n const getTable$1 = (node, isRoot) => getClosestTable(SugarElement.fromDom(node), isRoot);\n const selectionInTableWithNestedTable = details => {\n return lift2(details.startTable, details.endTable, (startTable, endTable) => {\n const isStartTableParentOfEndTable = descendant(startTable, t => eq(t, endTable));\n const isEndTableParentOfStartTable = descendant(endTable, t => eq(t, startTable));\n return !isStartTableParentOfEndTable && !isEndTableParentOfStartTable ? details : {\n ...details,\n startTable: isStartTableParentOfEndTable ? Optional.none() : details.startTable,\n endTable: isEndTableParentOfStartTable ? Optional.none() : details.endTable,\n isSameTable: false,\n isMultiTable: false\n };\n }).getOr(details);\n };\n const adjustQuirksInDetails = details => {\n return selectionInTableWithNestedTable(details);\n };\n const getTableDetailsFromRange = (rng, isRoot) => {\n const startTable = getTable$1(rng.startContainer, isRoot);\n const endTable = getTable$1(rng.endContainer, isRoot);\n const isStartInTable = startTable.isSome();\n const isEndInTable = endTable.isSome();\n const isSameTable = lift2(startTable, endTable, eq).getOr(false);\n const isMultiTable = !isSameTable && isStartInTable && isEndInTable;\n return adjustQuirksInDetails({\n startTable,\n endTable,\n isStartInTable,\n isEndInTable,\n isSameTable,\n isMultiTable\n });\n };\n\n const tableCellRng = (start, end) => ({\n start,\n end\n });\n const tableSelection = (rng, table, cells) => ({\n rng,\n table,\n cells\n });\n const deleteAction = Adt.generate([\n {\n singleCellTable: [\n 'rng',\n 'cell'\n ]\n },\n { fullTable: ['table'] },\n {\n partialTable: [\n 'cells',\n 'outsideDetails'\n ]\n },\n {\n multiTable: [\n 'startTableCells',\n 'endTableCells',\n 'betweenRng'\n ]\n }\n ]);\n const getClosestCell$1 = (container, isRoot) => closest$3(SugarElement.fromDom(container), 'td,th', isRoot);\n const isExpandedCellRng = cellRng => !eq(cellRng.start, cellRng.end);\n const getTableFromCellRng = (cellRng, isRoot) => getClosestTable(cellRng.start, isRoot).bind(startParentTable => getClosestTable(cellRng.end, isRoot).bind(endParentTable => someIf(eq(startParentTable, endParentTable), startParentTable)));\n const isSingleCellTable = (cellRng, isRoot) => !isExpandedCellRng(cellRng) && getTableFromCellRng(cellRng, isRoot).exists(table => {\n const rows = table.dom.rows;\n return rows.length === 1 && rows[0].cells.length === 1;\n });\n const getCellRng = (rng, isRoot) => {\n const startCell = getClosestCell$1(rng.startContainer, isRoot);\n const endCell = getClosestCell$1(rng.endContainer, isRoot);\n return lift2(startCell, endCell, tableCellRng);\n };\n const getCellRangeFromStartTable = isRoot => startCell => getClosestTable(startCell, isRoot).bind(table => last$2(getTableCells(table)).map(endCell => tableCellRng(startCell, endCell)));\n const getCellRangeFromEndTable = isRoot => endCell => getClosestTable(endCell, isRoot).bind(table => head(getTableCells(table)).map(startCell => tableCellRng(startCell, endCell)));\n const getTableSelectionFromCellRng = isRoot => cellRng => getTableFromCellRng(cellRng, isRoot).map(table => tableSelection(cellRng, table, getTableCells(table)));\n const getTableSelections = (cellRng, selectionDetails, rng, isRoot) => {\n if (rng.collapsed || !cellRng.forall(isExpandedCellRng)) {\n return Optional.none();\n } else if (selectionDetails.isSameTable) {\n const sameTableSelection = cellRng.bind(getTableSelectionFromCellRng(isRoot));\n return Optional.some({\n start: sameTableSelection,\n end: sameTableSelection\n });\n } else {\n const startCell = getClosestCell$1(rng.startContainer, isRoot);\n const endCell = getClosestCell$1(rng.endContainer, isRoot);\n const startTableSelection = startCell.bind(getCellRangeFromStartTable(isRoot)).bind(getTableSelectionFromCellRng(isRoot));\n const endTableSelection = endCell.bind(getCellRangeFromEndTable(isRoot)).bind(getTableSelectionFromCellRng(isRoot));\n return Optional.some({\n start: startTableSelection,\n end: endTableSelection\n });\n }\n };\n const getCellIndex = (cells, cell) => findIndex$2(cells, x => eq(x, cell));\n const getSelectedCells = tableSelection => lift2(getCellIndex(tableSelection.cells, tableSelection.rng.start), getCellIndex(tableSelection.cells, tableSelection.rng.end), (startIndex, endIndex) => tableSelection.cells.slice(startIndex, endIndex + 1));\n const isSingleCellTableContentSelected = (optCellRng, rng, isRoot) => optCellRng.exists(cellRng => isSingleCellTable(cellRng, isRoot) && hasAllContentsSelected(cellRng.start, rng));\n const unselectCells = (rng, selectionDetails) => {\n const {startTable, endTable} = selectionDetails;\n const otherContentRng = rng.cloneRange();\n startTable.each(table => otherContentRng.setStartAfter(table.dom));\n endTable.each(table => otherContentRng.setEndBefore(table.dom));\n return otherContentRng;\n };\n const handleSingleTable = (cellRng, selectionDetails, rng, isRoot) => getTableSelections(cellRng, selectionDetails, rng, isRoot).bind(({start, end}) => start.or(end)).bind(tableSelection => {\n const {isSameTable} = selectionDetails;\n const selectedCells = getSelectedCells(tableSelection).getOr([]);\n if (isSameTable && tableSelection.cells.length === selectedCells.length) {\n return Optional.some(deleteAction.fullTable(tableSelection.table));\n } else if (selectedCells.length > 0) {\n if (isSameTable) {\n return Optional.some(deleteAction.partialTable(selectedCells, Optional.none()));\n } else {\n const otherContentRng = unselectCells(rng, selectionDetails);\n return Optional.some(deleteAction.partialTable(selectedCells, Optional.some({\n ...selectionDetails,\n rng: otherContentRng\n })));\n }\n } else {\n return Optional.none();\n }\n });\n const handleMultiTable = (cellRng, selectionDetails, rng, isRoot) => getTableSelections(cellRng, selectionDetails, rng, isRoot).bind(({start, end}) => {\n const startTableSelectedCells = start.bind(getSelectedCells).getOr([]);\n const endTableSelectedCells = end.bind(getSelectedCells).getOr([]);\n if (startTableSelectedCells.length > 0 && endTableSelectedCells.length > 0) {\n const otherContentRng = unselectCells(rng, selectionDetails);\n return Optional.some(deleteAction.multiTable(startTableSelectedCells, endTableSelectedCells, otherContentRng));\n } else {\n return Optional.none();\n }\n });\n const getActionFromRange = (root, rng) => {\n const isRoot = isRootFromElement(root);\n const optCellRng = getCellRng(rng, isRoot);\n const selectionDetails = getTableDetailsFromRange(rng, isRoot);\n if (isSingleCellTableContentSelected(optCellRng, rng, isRoot)) {\n return optCellRng.map(cellRng => deleteAction.singleCellTable(rng, cellRng.start));\n } else if (selectionDetails.isMultiTable) {\n return handleMultiTable(optCellRng, selectionDetails, rng, isRoot);\n } else {\n return handleSingleTable(optCellRng, selectionDetails, rng, isRoot);\n }\n };\n\n const cleanCells = cells => each$e(cells, cell => {\n remove$9(cell, 'contenteditable');\n fillWithPaddingBr(cell);\n });\n const getOutsideBlock = (editor, container) => Optional.from(editor.dom.getParent(container, editor.dom.isBlock)).map(SugarElement.fromDom);\n const handleEmptyBlock = (editor, startInTable, emptyBlock) => {\n emptyBlock.each(block => {\n if (startInTable) {\n remove$4(block);\n } else {\n fillWithPaddingBr(block);\n editor.selection.setCursorLocation(block.dom, 0);\n }\n });\n };\n const deleteContentInsideCell = (editor, cell, rng, isFirstCellInSelection) => {\n const insideTableRng = rng.cloneRange();\n if (isFirstCellInSelection) {\n insideTableRng.setStart(rng.startContainer, rng.startOffset);\n insideTableRng.setEndAfter(cell.dom.lastChild);\n } else {\n insideTableRng.setStartBefore(cell.dom.firstChild);\n insideTableRng.setEnd(rng.endContainer, rng.endOffset);\n }\n deleteCellContents(editor, insideTableRng, cell, false).each(action => action());\n };\n const collapseAndRestoreCellSelection = editor => {\n const selectedCells = getCellsFromEditor(editor);\n const selectedNode = SugarElement.fromDom(editor.selection.getNode());\n if (isTableCell$3(selectedNode.dom) && isEmpty$2(editor.schema, selectedNode)) {\n editor.selection.setCursorLocation(selectedNode.dom, 0);\n } else {\n editor.selection.collapse(true);\n }\n if (selectedCells.length > 1 && exists(selectedCells, cell => eq(cell, selectedNode))) {\n set$3(selectedNode, 'data-mce-selected', '1');\n }\n };\n const emptySingleTableCells = (editor, cells, outsideDetails) => Optional.some(() => {\n const editorRng = editor.selection.getRng();\n const cellsToClean = outsideDetails.bind(({rng, isStartInTable}) => {\n const outsideBlock = getOutsideBlock(editor, isStartInTable ? rng.endContainer : rng.startContainer);\n rng.deleteContents();\n handleEmptyBlock(editor, isStartInTable, outsideBlock.filter(curry(isEmpty$2, editor.schema)));\n const endPointCell = isStartInTable ? cells[0] : cells[cells.length - 1];\n deleteContentInsideCell(editor, endPointCell, editorRng, isStartInTable);\n if (!isEmpty$2(editor.schema, endPointCell)) {\n return Optional.some(isStartInTable ? cells.slice(1) : cells.slice(0, -1));\n } else {\n return Optional.none();\n }\n }).getOr(cells);\n cleanCells(cellsToClean);\n collapseAndRestoreCellSelection(editor);\n });\n const emptyMultiTableCells = (editor, startTableCells, endTableCells, betweenRng) => Optional.some(() => {\n const rng = editor.selection.getRng();\n const startCell = startTableCells[0];\n const endCell = endTableCells[endTableCells.length - 1];\n deleteContentInsideCell(editor, startCell, rng, true);\n deleteContentInsideCell(editor, endCell, rng, false);\n const startTableCellsToClean = isEmpty$2(editor.schema, startCell) ? startTableCells : startTableCells.slice(1);\n const endTableCellsToClean = isEmpty$2(editor.schema, endCell) ? endTableCells : endTableCells.slice(0, -1);\n cleanCells(startTableCellsToClean.concat(endTableCellsToClean));\n betweenRng.deleteContents();\n collapseAndRestoreCellSelection(editor);\n });\n const deleteCellContents = (editor, rng, cell, moveSelection = true) => Optional.some(() => {\n deleteRangeContents(editor, rng, cell, moveSelection);\n });\n const deleteTableElement = (editor, table) => Optional.some(() => deleteElement$2(editor, false, table));\n const deleteCellRange = (editor, rootElm, rng) => getActionFromRange(rootElm, rng).bind(action => action.fold(curry(deleteCellContents, editor), curry(deleteTableElement, editor), curry(emptySingleTableCells, editor), curry(emptyMultiTableCells, editor)));\n const deleteCaptionRange = (editor, caption) => emptyElement(editor, caption);\n const deleteTableRange = (editor, rootElm, rng, startElm) => getParentCaption(rootElm, startElm).fold(() => deleteCellRange(editor, rootElm, rng), caption => deleteCaptionRange(editor, caption));\n const deleteRange$3 = (editor, startElm, selectedCells) => {\n const rootNode = SugarElement.fromDom(editor.getBody());\n const rng = editor.selection.getRng();\n return selectedCells.length !== 0 ? emptySingleTableCells(editor, selectedCells, Optional.none()) : deleteTableRange(editor, rootNode, rng, startElm);\n };\n const getParentCell = (rootElm, elm) => find$2(parentsAndSelf(elm, rootElm), isTableCell$2);\n const getParentCaption = (rootElm, elm) => find$2(parentsAndSelf(elm, rootElm), isTag('caption'));\n const deleteBetweenCells = (editor, rootElm, forward, fromCell, from) => navigate(forward, editor.getBody(), from).bind(to => getParentCell(rootElm, SugarElement.fromDom(to.getNode())).bind(toCell => eq(toCell, fromCell) ? Optional.none() : Optional.some(noop)));\n const emptyElement = (editor, elm) => Optional.some(() => {\n fillWithPaddingBr(elm);\n editor.selection.setCursorLocation(elm.dom, 0);\n });\n const isDeleteOfLastCharPos = (fromCaption, forward, from, to) => firstPositionIn(fromCaption.dom).bind(first => lastPositionIn(fromCaption.dom).map(last => forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first))).getOr(true);\n const emptyCaretCaption = (editor, elm) => emptyElement(editor, elm);\n const validateCaretCaption = (rootElm, fromCaption, to) => getParentCaption(rootElm, SugarElement.fromDom(to.getNode())).fold(() => Optional.some(noop), toCaption => someIf(!eq(toCaption, fromCaption), noop));\n const deleteCaretInsideCaption = (editor, rootElm, forward, fromCaption, from) => navigate(forward, editor.getBody(), from).fold(() => Optional.some(noop), to => isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to));\n const deleteCaretCells = (editor, forward, rootElm, startElm) => {\n const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n return getParentCell(rootElm, startElm).bind(fromCell => isEmpty$2(editor.schema, fromCell, { checkRootAsContent: false }) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from));\n };\n const deleteCaretCaption = (editor, forward, rootElm, fromCaption) => {\n const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n return isEmpty$2(editor.schema, fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);\n };\n const isNearTable = (forward, pos) => forward ? isBeforeTable(pos) : isAfterTable(pos);\n const isBeforeOrAfterTable = (editor, forward) => {\n const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n return isNearTable(forward, fromPos) || fromPosition(forward, editor.getBody(), fromPos).exists(pos => isNearTable(forward, pos));\n };\n const deleteCaret$3 = (editor, forward, startElm) => {\n const rootElm = SugarElement.fromDom(editor.getBody());\n return getParentCaption(rootElm, startElm).fold(() => deleteCaretCells(editor, forward, rootElm, startElm).orThunk(() => someIf(isBeforeOrAfterTable(editor, forward), noop)), fromCaption => deleteCaretCaption(editor, forward, rootElm, fromCaption));\n };\n const backspaceDelete$b = (editor, forward) => {\n const startElm = SugarElement.fromDom(editor.selection.getStart(true));\n const cells = getCellsFromEditor(editor);\n return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$3(editor, forward, startElm) : deleteRange$3(editor, startElm, cells);\n };\n\n const getContentEditableRoot$1 = (root, node) => {\n let tempNode = node;\n while (tempNode && tempNode !== root) {\n if (isContentEditableTrue$3(tempNode) || isContentEditableFalse$b(tempNode)) {\n return tempNode;\n }\n tempNode = tempNode.parentNode;\n }\n return null;\n };\n\n const internalAttributesPrefixes = [\n 'data-ephox-',\n 'data-mce-',\n 'data-alloy-',\n 'data-snooker-',\n '_'\n ];\n const each$9 = Tools.each;\n const ElementUtils = editor => {\n const dom = editor.dom;\n const internalAttributes = new Set(editor.serializer.getTempAttrs());\n const compare = (node1, node2) => {\n if (node1.nodeName !== node2.nodeName || node1.nodeType !== node2.nodeType) {\n return false;\n }\n const getAttribs = node => {\n const attribs = {};\n each$9(dom.getAttribs(node), attr => {\n const name = attr.nodeName.toLowerCase();\n if (name !== 'style' && !isAttributeInternal(name)) {\n attribs[name] = dom.getAttrib(node, name);\n }\n });\n return attribs;\n };\n const compareObjects = (obj1, obj2) => {\n for (const name in obj1) {\n if (has$2(obj1, name)) {\n const value = obj2[name];\n if (isUndefined(value)) {\n return false;\n }\n if (obj1[name] !== value) {\n return false;\n }\n delete obj2[name];\n }\n }\n for (const name in obj2) {\n if (has$2(obj2, name)) {\n return false;\n }\n }\n return true;\n };\n if (isElement$6(node1) && isElement$6(node2)) {\n if (!compareObjects(getAttribs(node1), getAttribs(node2))) {\n return false;\n }\n if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {\n return false;\n }\n }\n return !isBookmarkNode$1(node1) && !isBookmarkNode$1(node2);\n };\n const isAttributeInternal = attributeName => exists(internalAttributesPrefixes, value => startsWith(attributeName, value)) || internalAttributes.has(attributeName);\n return {\n compare,\n isAttributeInternal\n };\n };\n\n const isHeading = node => [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ].includes(node.name);\n const isSummary = node => node.name === 'summary';\n\n const traverse = (root, fn) => {\n let node = root;\n while (node = node.walk()) {\n fn(node);\n }\n };\n const matchNode$1 = (nodeFilters, attributeFilters, node, matches) => {\n const name = node.name;\n for (let ni = 0, nl = nodeFilters.length; ni < nl; ni++) {\n const filter = nodeFilters[ni];\n if (filter.name === name) {\n const match = matches.nodes[name];\n if (match) {\n match.nodes.push(node);\n } else {\n matches.nodes[name] = {\n filter,\n nodes: [node]\n };\n }\n }\n }\n if (node.attributes) {\n for (let ai = 0, al = attributeFilters.length; ai < al; ai++) {\n const filter = attributeFilters[ai];\n const attrName = filter.name;\n if (attrName in node.attributes.map) {\n const match = matches.attributes[attrName];\n if (match) {\n match.nodes.push(node);\n } else {\n matches.attributes[attrName] = {\n filter,\n nodes: [node]\n };\n }\n }\n }\n }\n };\n const findMatchingNodes = (nodeFilters, attributeFilters, node) => {\n const matches = {\n nodes: {},\n attributes: {}\n };\n if (node.firstChild) {\n traverse(node, childNode => {\n matchNode$1(nodeFilters, attributeFilters, childNode, matches);\n });\n }\n return matches;\n };\n const runFilters = (matches, args) => {\n const run = (matchRecord, filteringAttributes) => {\n each$d(matchRecord, match => {\n const nodes = from(match.nodes);\n each$e(match.filter.callbacks, callback => {\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i];\n const valueMatches = filteringAttributes ? node.attr(match.filter.name) !== undefined : node.name === match.filter.name;\n if (!valueMatches || isNullable(node.parent)) {\n nodes.splice(i, 1);\n }\n }\n if (nodes.length > 0) {\n callback(nodes, match.filter.name, args);\n }\n });\n });\n };\n run(matches.nodes, false);\n run(matches.attributes, true);\n };\n const filter$2 = (nodeFilters, attributeFilters, node, args = {}) => {\n const matches = findMatchingNodes(nodeFilters, attributeFilters, node);\n runFilters(matches, args);\n };\n\n const paddEmptyNode = (settings, args, isBlock, node) => {\n const brPreferred = settings.pad_empty_with_br || args.insert;\n if (brPreferred && isBlock(node)) {\n const astNode = new AstNode('br', 1);\n if (args.insert) {\n astNode.attr('data-mce-bogus', '1');\n }\n node.empty().append(astNode);\n } else {\n node.empty().append(new AstNode('#text', 3)).value = nbsp;\n }\n };\n const isPaddedWithNbsp = node => {\n var _a;\n return hasOnlyChild(node, '#text') && ((_a = node === null || node === void 0 ? void 0 : node.firstChild) === null || _a === void 0 ? void 0 : _a.value) === nbsp;\n };\n const hasOnlyChild = (node, name) => {\n const firstChild = node === null || node === void 0 ? void 0 : node.firstChild;\n return isNonNullable(firstChild) && firstChild === node.lastChild && firstChild.name === name;\n };\n const isPadded = (schema, node) => {\n const rule = schema.getElementRule(node.name);\n return (rule === null || rule === void 0 ? void 0 : rule.paddEmpty) === true;\n };\n const isEmpty = (schema, nonEmptyElements, whitespaceElements, node) => node.isEmpty(nonEmptyElements, whitespaceElements, node => isPadded(schema, node));\n const isLineBreakNode = (node, isBlock) => isNonNullable(node) && (isBlock(node) || node.name === 'br');\n const findClosestEditingHost = scope => {\n let editableNode;\n for (let node = scope; node; node = node.parent) {\n const contentEditable = node.attr('contenteditable');\n if (contentEditable === 'false') {\n break;\n } else if (contentEditable === 'true') {\n editableNode = node;\n }\n }\n return Optional.from(editableNode);\n };\n\n const removeOrUnwrapInvalidNode = (node, schema, originalNodeParent = node.parent) => {\n if (schema.getSpecialElements()[node.name]) {\n node.empty().remove();\n } else {\n const children = node.children();\n for (const childNode of children) {\n if (originalNodeParent && !schema.isValidChild(originalNodeParent.name, childNode.name)) {\n removeOrUnwrapInvalidNode(childNode, schema, originalNodeParent);\n }\n }\n node.unwrap();\n }\n };\n const cleanInvalidNodes = (nodes, schema, rootNode, onCreate = noop) => {\n const textBlockElements = schema.getTextBlockElements();\n const nonEmptyElements = schema.getNonEmptyElements();\n const whitespaceElements = schema.getWhitespaceElements();\n const nonSplittableElements = Tools.makeMap('tr,td,th,tbody,thead,tfoot,table,summary');\n const fixed = new Set();\n const isSplittableElement = node => node !== rootNode && !nonSplittableElements[node.name];\n for (let ni = 0; ni < nodes.length; ni++) {\n const node = nodes[ni];\n let parent;\n let newParent;\n let tempNode;\n if (!node.parent || fixed.has(node)) {\n continue;\n }\n if (textBlockElements[node.name] && node.parent.name === 'li') {\n let sibling = node.next;\n while (sibling) {\n if (textBlockElements[sibling.name]) {\n sibling.name = 'li';\n fixed.add(sibling);\n node.parent.insert(sibling, node.parent);\n } else {\n break;\n }\n sibling = sibling.next;\n }\n node.unwrap();\n continue;\n }\n const parents = [node];\n for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && isSplittableElement(parent); parent = parent.parent) {\n parents.push(parent);\n }\n if (parent && parents.length > 1) {\n if (!isInvalid(schema, node, parent)) {\n parents.reverse();\n newParent = parents[0].clone();\n onCreate(newParent);\n let currentNode = newParent;\n for (let i = 0; i < parents.length - 1; i++) {\n if (schema.isValidChild(currentNode.name, parents[i].name) && i > 0) {\n tempNode = parents[i].clone();\n onCreate(tempNode);\n currentNode.append(tempNode);\n } else {\n tempNode = currentNode;\n }\n for (let childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) {\n const nextNode = childNode.next;\n tempNode.append(childNode);\n childNode = nextNode;\n }\n currentNode = tempNode;\n }\n if (!isEmpty(schema, nonEmptyElements, whitespaceElements, newParent)) {\n parent.insert(newParent, parents[0], true);\n parent.insert(node, newParent);\n } else {\n parent.insert(node, parents[0], true);\n }\n parent = parents[0];\n if (isEmpty(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) {\n parent.empty().remove();\n }\n } else {\n removeOrUnwrapInvalidNode(node, schema);\n }\n } else if (node.parent) {\n if (node.name === 'li') {\n let sibling = node.prev;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ol')) {\n sibling.append(node);\n continue;\n }\n sibling = node.next;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ol') && sibling.firstChild) {\n sibling.insert(node, sibling.firstChild, true);\n continue;\n }\n const wrapper = new AstNode('ul', 1);\n onCreate(wrapper);\n node.wrap(wrapper);\n continue;\n }\n if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {\n const wrapper = new AstNode('div', 1);\n onCreate(wrapper);\n node.wrap(wrapper);\n } else {\n removeOrUnwrapInvalidNode(node, schema);\n }\n }\n }\n };\n const hasClosest = (node, parentName) => {\n let tempNode = node;\n while (tempNode) {\n if (tempNode.name === parentName) {\n return true;\n }\n tempNode = tempNode.parent;\n }\n return false;\n };\n const isInvalid = (schema, node, parent = node.parent) => {\n if (!parent) {\n return false;\n }\n if (schema.children[node.name] && !schema.isValidChild(parent.name, node.name)) {\n return true;\n }\n if (node.name === 'a' && hasClosest(parent, 'a')) {\n return true;\n }\n if (isSummary(parent) && isHeading(node)) {\n return !((parent === null || parent === void 0 ? void 0 : parent.firstChild) === node && (parent === null || parent === void 0 ? void 0 : parent.lastChild) === node);\n }\n return false;\n };\n\n const createRange = (sc, so, ec, eo) => {\n const rng = document.createRange();\n rng.setStart(sc, so);\n rng.setEnd(ec, eo);\n return rng;\n };\n const normalizeBlockSelectionRange = rng => {\n const startPos = CaretPosition.fromRangeStart(rng);\n const endPos = CaretPosition.fromRangeEnd(rng);\n const rootNode = rng.commonAncestorContainer;\n return fromPosition(false, rootNode, endPos).map(newEndPos => {\n if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {\n return createRange(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());\n } else {\n return rng;\n }\n }).getOr(rng);\n };\n const normalize = rng => rng.collapsed ? rng : normalizeBlockSelectionRange(rng);\n\n const hasOnlyOneChild$1 = node => {\n return isNonNullable(node.firstChild) && node.firstChild === node.lastChild;\n };\n const isPaddingNode = node => {\n return node.name === 'br' || node.value === nbsp;\n };\n const isPaddedEmptyBlock = (schema, node) => {\n const blockElements = schema.getBlockElements();\n return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild);\n };\n const isEmptyFragmentElement = (schema, node) => {\n const nonEmptyElements = schema.getNonEmptyElements();\n return isNonNullable(node) && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));\n };\n const isListFragment = (schema, fragment) => {\n let firstChild = fragment.firstChild;\n let lastChild = fragment.lastChild;\n if (firstChild && firstChild.name === 'meta') {\n firstChild = firstChild.next;\n }\n if (lastChild && lastChild.attr('id') === 'mce_marker') {\n lastChild = lastChild.prev;\n }\n if (isEmptyFragmentElement(schema, lastChild)) {\n lastChild = lastChild === null || lastChild === void 0 ? void 0 : lastChild.prev;\n }\n if (!firstChild || firstChild !== lastChild) {\n return false;\n }\n return firstChild.name === 'ul' || firstChild.name === 'ol';\n };\n const cleanupDomFragment = domFragment => {\n var _a, _b;\n const firstChild = domFragment.firstChild;\n const lastChild = domFragment.lastChild;\n if (firstChild && firstChild.nodeName === 'META') {\n (_a = firstChild.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(firstChild);\n }\n if (lastChild && lastChild.id === 'mce_marker') {\n (_b = lastChild.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(lastChild);\n }\n return domFragment;\n };\n const toDomFragment = (dom, serializer, fragment) => {\n const html = serializer.serialize(fragment);\n const domFragment = dom.createFragment(html);\n return cleanupDomFragment(domFragment);\n };\n const listItems = elm => {\n var _a;\n return filter$5((_a = elm === null || elm === void 0 ? void 0 : elm.childNodes) !== null && _a !== void 0 ? _a : [], child => {\n return child.nodeName === 'LI';\n });\n };\n const isPadding = node => {\n return node.data === nbsp || isBr$6(node);\n };\n const isListItemPadded = node => {\n return isNonNullable(node === null || node === void 0 ? void 0 : node.firstChild) && node.firstChild === node.lastChild && isPadding(node.firstChild);\n };\n const isEmptyOrPadded = elm => {\n return !elm.firstChild || isListItemPadded(elm);\n };\n const trimListItems = elms => {\n return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\n };\n const getParentLi = (dom, node) => {\n const parentBlock = dom.getParent(node, dom.isBlock);\n return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\n };\n const isParentBlockLi = (dom, node) => {\n return !!getParentLi(dom, node);\n };\n const getSplit = (parentNode, rng) => {\n const beforeRng = rng.cloneRange();\n const afterRng = rng.cloneRange();\n beforeRng.setStartBefore(parentNode);\n afterRng.setEndAfter(parentNode);\n return [\n beforeRng.cloneContents(),\n afterRng.cloneContents()\n ];\n };\n const findFirstIn = (node, rootNode) => {\n const caretPos = CaretPosition.before(node);\n const caretWalker = CaretWalker(rootNode);\n const newCaretPos = caretWalker.next(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n const findLastOf = (node, rootNode) => {\n const caretPos = CaretPosition.after(node);\n const caretWalker = CaretWalker(rootNode);\n const newCaretPos = caretWalker.prev(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n const insertMiddle = (target, elms, rootNode, rng) => {\n const parts = getSplit(target, rng);\n const parentElm = target.parentNode;\n if (parentElm) {\n parentElm.insertBefore(parts[0], target);\n Tools.each(elms, li => {\n parentElm.insertBefore(li, target);\n });\n parentElm.insertBefore(parts[1], target);\n parentElm.removeChild(target);\n }\n return findLastOf(elms[elms.length - 1], rootNode);\n };\n const insertBefore$2 = (target, elms, rootNode) => {\n const parentElm = target.parentNode;\n if (parentElm) {\n Tools.each(elms, elm => {\n parentElm.insertBefore(elm, target);\n });\n }\n return findFirstIn(target, rootNode);\n };\n const insertAfter$2 = (target, elms, rootNode, dom) => {\n dom.insertAfter(elms.reverse(), target);\n return findLastOf(elms[0], rootNode);\n };\n const insertAtCaret$1 = (serializer, dom, rng, fragment) => {\n const domFragment = toDomFragment(dom, serializer, fragment);\n const liTarget = getParentLi(dom, rng.startContainer);\n const liElms = trimListItems(listItems(domFragment.firstChild));\n const BEGINNING = 1, END = 2;\n const rootNode = dom.getRoot();\n const isAt = location => {\n const caretPos = CaretPosition.fromRangeStart(rng);\n const caretWalker = CaretWalker(dom.getRoot());\n const newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\n const newPosNode = newPos === null || newPos === void 0 ? void 0 : newPos.getNode();\n return newPosNode ? getParentLi(dom, newPosNode) !== liTarget : true;\n };\n if (!liTarget) {\n return null;\n } else if (isAt(BEGINNING)) {\n return insertBefore$2(liTarget, liElms, rootNode);\n } else if (isAt(END)) {\n return insertAfter$2(liTarget, liElms, rootNode, dom);\n } else {\n return insertMiddle(liTarget, liElms, rootNode, rng);\n }\n };\n\n const mergeableWrappedElements = ['pre'];\n const shouldPasteContentOnly = (dom, fragment, parentNode, root) => {\n var _a;\n const firstNode = fragment.firstChild;\n const lastNode = fragment.lastChild;\n const last = lastNode.attr('data-mce-type') === 'bookmark' ? lastNode.prev : lastNode;\n const isPastingSingleElement = firstNode === last;\n const isWrappedElement = contains$2(mergeableWrappedElements, firstNode.name);\n if (isPastingSingleElement && isWrappedElement) {\n const isContentEditable = firstNode.attr('contenteditable') !== 'false';\n const isPastingInTheSameBlockTag = ((_a = dom.getParent(parentNode, dom.isBlock)) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === firstNode.name;\n const isPastingInContentEditable = Optional.from(getContentEditableRoot$1(root, parentNode)).forall(isContentEditableTrue$3);\n return isContentEditable && isPastingInTheSameBlockTag && isPastingInContentEditable;\n } else {\n return false;\n }\n };\n const isTableCell = isTableCell$3;\n const isTableCellContentSelected = (dom, rng, cell) => {\n if (isNonNullable(cell)) {\n const endCell = dom.getParent(rng.endContainer, isTableCell);\n return cell === endCell && hasAllContentsSelected(SugarElement.fromDom(cell), rng);\n } else {\n return false;\n }\n };\n const validInsertion = (editor, value, parentNode) => {\n var _a;\n if (parentNode.getAttribute('data-mce-bogus') === 'all') {\n (_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(editor.dom.createFragment(value), parentNode);\n } else {\n const node = parentNode.firstChild;\n const node2 = parentNode.lastChild;\n if (!node || node === node2 && node.nodeName === 'BR') {\n editor.dom.setHTML(parentNode, value);\n } else {\n editor.selection.setContent(value, { no_events: true });\n }\n }\n };\n const trimBrsFromTableCell = (dom, elm, schema) => {\n Optional.from(dom.getParent(elm, 'td,th')).map(SugarElement.fromDom).each(el => trimBlockTrailingBr(el, schema));\n };\n const reduceInlineTextElements = (editor, merge) => {\n const textInlineElements = editor.schema.getTextInlineElements();\n const dom = editor.dom;\n if (merge) {\n const root = editor.getBody();\n const elementUtils = ElementUtils(editor);\n const fragmentSelector = '*[data-mce-fragment]';\n const fragments = dom.select(fragmentSelector);\n Tools.each(fragments, node => {\n const isInline = currentNode => isNonNullable(textInlineElements[currentNode.nodeName.toLowerCase()]);\n const hasOneChild = currentNode => currentNode.childNodes.length === 1;\n const hasNoNonInheritableStyles = currentNode => !(hasNonInheritableStyles(dom, currentNode) || hasConditionalNonInheritableStyles(dom, currentNode));\n if (hasNoNonInheritableStyles(node) && isInline(node) && hasOneChild(node)) {\n const styles = getStyleProps(dom, node);\n const isOverridden = (oldStyles, newStyles) => forall(oldStyles, style => contains$2(newStyles, style));\n const overriddenByAllChildren = childNode => hasOneChild(node) && dom.is(childNode, fragmentSelector) && isInline(childNode) && (childNode.nodeName === node.nodeName && isOverridden(styles, getStyleProps(dom, childNode)) || overriddenByAllChildren(childNode.children[0]));\n const identicalToParent = parentNode => isNonNullable(parentNode) && parentNode !== root && (elementUtils.compare(node, parentNode) || identicalToParent(parentNode.parentElement));\n const conflictWithInsertedParent = parentNode => isNonNullable(parentNode) && parentNode !== root && dom.is(parentNode, fragmentSelector) && (hasStyleConflict(dom, node, parentNode) || conflictWithInsertedParent(parentNode.parentElement));\n if (overriddenByAllChildren(node.children[0]) || identicalToParent(node.parentElement) && !conflictWithInsertedParent(node.parentElement)) {\n dom.remove(node, true);\n }\n }\n });\n }\n };\n const markFragmentElements = fragment => {\n let node = fragment;\n while (node = node.walk()) {\n if (node.type === 1) {\n node.attr('data-mce-fragment', '1');\n }\n }\n };\n const unmarkFragmentElements = elm => {\n Tools.each(elm.getElementsByTagName('*'), elm => {\n elm.removeAttribute('data-mce-fragment');\n });\n };\n const isPartOfFragment = node => {\n return !!node.getAttribute('data-mce-fragment');\n };\n const canHaveChildren = (editor, node) => {\n return isNonNullable(node) && !editor.schema.getVoidElements()[node.nodeName];\n };\n const moveSelectionToMarker = (editor, marker) => {\n var _a, _b, _c;\n let nextRng;\n const dom = editor.dom;\n const selection = editor.selection;\n if (!marker) {\n return;\n }\n selection.scrollIntoView(marker);\n const parentEditableElm = getContentEditableRoot$1(editor.getBody(), marker);\n if (parentEditableElm && dom.getContentEditable(parentEditableElm) === 'false') {\n dom.remove(marker);\n selection.select(parentEditableElm);\n return;\n }\n let rng = dom.createRng();\n const node = marker.previousSibling;\n if (isText$b(node)) {\n rng.setStart(node, (_b = (_a = node.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);\n const node2 = marker.nextSibling;\n if (isText$b(node2)) {\n node.appendData(node2.data);\n (_c = node2.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(node2);\n }\n } else {\n rng.setStartBefore(marker);\n rng.setEndBefore(marker);\n }\n const findNextCaretRng = rng => {\n let caretPos = CaretPosition.fromRangeStart(rng);\n const caretWalker = CaretWalker(editor.getBody());\n caretPos = caretWalker.next(caretPos);\n return caretPos === null || caretPos === void 0 ? void 0 : caretPos.toRange();\n };\n const parentBlock = dom.getParent(marker, dom.isBlock);\n dom.remove(marker);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n const isCell = isTableCell(parentBlock);\n empty(SugarElement.fromDom(parentBlock));\n rng.setStart(parentBlock, 0);\n rng.setEnd(parentBlock, 0);\n if (!isCell && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\n rng = nextRng;\n dom.remove(parentBlock);\n } else {\n dom.add(parentBlock, dom.create('br', isCell ? {} : { 'data-mce-bogus': '1' }));\n }\n }\n selection.setRng(rng);\n };\n const deleteSelectedContent = editor => {\n const dom = editor.dom;\n const rng = normalize(editor.selection.getRng());\n editor.selection.setRng(rng);\n const startCell = dom.getParent(rng.startContainer, isTableCell);\n if (isTableCellContentSelected(dom, rng, startCell)) {\n deleteCellContents(editor, rng, SugarElement.fromDom(startCell));\n } else if (rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset === 1 && isText$b(rng.startContainer.childNodes[rng.startOffset])) {\n rng.deleteContents();\n } else {\n editor.getDoc().execCommand('Delete', false);\n }\n };\n const findMarkerNode = scope => {\n for (let markerNode = scope; markerNode; markerNode = markerNode.walk()) {\n if (markerNode.attr('id') === 'mce_marker') {\n return Optional.some(markerNode);\n }\n }\n return Optional.none();\n };\n const notHeadingsInSummary = (dom, node, fragment) => {\n var _a;\n return exists(fragment.children(), isHeading) && ((_a = dom.getParent(node, dom.isBlock)) === null || _a === void 0 ? void 0 : _a.nodeName) === 'SUMMARY';\n };\n const insertHtmlAtCaret = (editor, value, details) => {\n var _a, _b;\n const selection = editor.selection;\n const dom = editor.dom;\n const parser = editor.parser;\n const merge = details.merge;\n const serializer = HtmlSerializer({ validate: true }, editor.schema);\n const bookmarkHtml = '';\n if (!details.preserve_zwsp) {\n value = trim$2(value);\n }\n if (value.indexOf('{$caret}') === -1) {\n value += '{$caret}';\n }\n value = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\n let rng = selection.getRng();\n const caretElement = rng.startContainer;\n const body = editor.getBody();\n if (caretElement === body && selection.isCollapsed()) {\n if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) {\n rng = dom.createRng();\n rng.setStart(body.firstChild, 0);\n rng.setEnd(body.firstChild, 0);\n selection.setRng(rng);\n }\n }\n if (!selection.isCollapsed()) {\n deleteSelectedContent(editor);\n }\n const parentNode = selection.getNode();\n const parserArgs = {\n context: parentNode.nodeName.toLowerCase(),\n data: details.data,\n insert: true\n };\n const fragment = parser.parse(value, parserArgs);\n if (details.paste === true && isListFragment(editor.schema, fragment) && isParentBlockLi(dom, parentNode)) {\n rng = insertAtCaret$1(serializer, dom, selection.getRng(), fragment);\n if (rng) {\n selection.setRng(rng);\n }\n return value;\n }\n if (details.paste === true && shouldPasteContentOnly(dom, fragment, parentNode, editor.getBody())) {\n (_a = fragment.firstChild) === null || _a === void 0 ? void 0 : _a.unwrap();\n }\n markFragmentElements(fragment);\n let node = fragment.lastChild;\n if (node && node.attr('id') === 'mce_marker') {\n const marker = node;\n for (node = node.prev; node; node = node.walk(true)) {\n if (node.name === 'table') {\n break;\n }\n if (node.type === 3 || !dom.isBlock(node.name)) {\n if (node.parent && editor.schema.isValidChild(node.parent.name, 'span')) {\n node.parent.insert(marker, node, node.name === 'br');\n }\n break;\n }\n }\n }\n editor._selectionOverrides.showBlockCaretContainer(parentNode);\n if (!parserArgs.invalid && !notHeadingsInSummary(dom, parentNode, fragment)) {\n value = serializer.serialize(fragment);\n validInsertion(editor, value, parentNode);\n } else {\n editor.selection.setContent(bookmarkHtml);\n let parentNode = selection.getNode();\n let tempNode;\n const rootNode = editor.getBody();\n if (isDocument$1(parentNode)) {\n parentNode = tempNode = rootNode;\n } else {\n tempNode = parentNode;\n }\n while (tempNode && tempNode !== rootNode) {\n parentNode = tempNode;\n tempNode = tempNode.parentNode;\n }\n value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\n const root = parser.parse(value);\n const markerNode = findMarkerNode(root);\n const editingHost = markerNode.bind(findClosestEditingHost).getOr(root);\n markerNode.each(marker => marker.replace(fragment));\n const toExtract = fragment.children();\n const parent = (_b = fragment.parent) !== null && _b !== void 0 ? _b : root;\n fragment.unwrap();\n const invalidChildren = filter$5(toExtract, node => isInvalid(editor.schema, node, parent));\n cleanInvalidNodes(invalidChildren, editor.schema, editingHost);\n filter$2(parser.getNodeFilters(), parser.getAttributeFilters(), root);\n value = serializer.serialize(root);\n if (parentNode === rootNode) {\n dom.setHTML(rootNode, value);\n } else {\n dom.setOuterHTML(parentNode, value);\n }\n }\n reduceInlineTextElements(editor, merge);\n moveSelectionToMarker(editor, dom.get('mce_marker'));\n unmarkFragmentElements(editor.getBody());\n trimBrsFromTableCell(dom, selection.getStart(), editor.schema);\n updateCaret(editor.schema, editor.getBody(), selection.getStart());\n return value;\n };\n\n const isTreeNode = content => content instanceof AstNode;\n\n const moveSelection = editor => {\n if (hasFocus(editor)) {\n firstPositionIn(editor.getBody()).each(pos => {\n const node = pos.getNode();\n const caretPos = isTable$2(node) ? firstPositionIn(node).getOr(pos) : pos;\n editor.selection.setRng(caretPos.toRange());\n });\n }\n };\n const setEditorHtml = (editor, html, noSelection) => {\n editor.dom.setHTML(editor.getBody(), html);\n if (noSelection !== true) {\n moveSelection(editor);\n }\n };\n const setContentString = (editor, body, content, args) => {\n content = trim$2(content);\n if (content.length === 0 || /^\\s+$/.test(content)) {\n const padd = '
';\n if (body.nodeName === 'TABLE') {\n content = '' + padd + '';\n } else if (/^(UL|OL)$/.test(body.nodeName)) {\n content = '
  • ' + padd + '
  • ';\n }\n const forcedRootBlockName = getForcedRootBlock(editor);\n if (editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\n content = padd;\n content = editor.dom.createHTML(forcedRootBlockName, getForcedRootBlockAttrs(editor), content);\n } else if (!content) {\n content = padd;\n }\n setEditorHtml(editor, content, args.no_selection);\n return {\n content,\n html: content\n };\n } else {\n if (args.format !== 'raw') {\n content = HtmlSerializer({ validate: false }, editor.schema).serialize(editor.parser.parse(content, {\n isRootContent: true,\n insert: true\n }));\n }\n const trimmedHtml = isWsPreserveElement(SugarElement.fromDom(body)) ? content : Tools.trim(content);\n setEditorHtml(editor, trimmedHtml, args.no_selection);\n return {\n content: trimmedHtml,\n html: trimmedHtml\n };\n }\n };\n const setContentTree = (editor, body, content, args) => {\n filter$2(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);\n const html = HtmlSerializer({ validate: false }, editor.schema).serialize(content);\n const trimmedHtml = trim$2(isWsPreserveElement(SugarElement.fromDom(body)) ? html : Tools.trim(html));\n setEditorHtml(editor, trimmedHtml, args.no_selection);\n return {\n content,\n html: trimmedHtml\n };\n };\n const setContentInternal = (editor, content, args) => {\n return Optional.from(editor.getBody()).map(body => {\n if (isTreeNode(content)) {\n return setContentTree(editor, body, content, args);\n } else {\n return setContentString(editor, body, content, args);\n }\n }).getOr({\n content,\n html: isTreeNode(args.content) ? '' : args.content\n });\n };\n\n const ensureIsRoot = isRoot => isFunction(isRoot) ? isRoot : never;\n const ancestor = (scope, transform, isRoot) => {\n let element = scope.dom;\n const stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n const transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$1 = (scope, transform, isRoot) => {\n const current = transform(scope);\n const stop = ensureIsRoot(isRoot);\n return current.orThunk(() => stop(scope) ? Optional.none() : ancestor(scope, transform, stop));\n };\n\n const isEq$3 = isEq$5;\n const matchesUnInheritedFormatSelector = (ed, node, name) => {\n const formatList = ed.formatter.get(name);\n if (formatList) {\n for (let i = 0; i < formatList.length; i++) {\n const format = formatList[i];\n if (isSelectorFormat(format) && format.inherit === false && ed.dom.is(node, format.selector)) {\n return true;\n }\n }\n }\n return false;\n };\n const matchParents = (editor, node, name, vars, similar) => {\n const root = editor.dom.getRoot();\n if (node === root) {\n return false;\n }\n const matchedNode = editor.dom.getParent(node, elm => {\n if (matchesUnInheritedFormatSelector(editor, elm, name)) {\n return true;\n }\n return elm.parentNode === root || !!matchNode(editor, elm, name, vars, true);\n });\n return !!matchNode(editor, matchedNode, name, vars, similar);\n };\n const matchName = (dom, node, format) => {\n if (isInlineFormat(format) && isEq$3(node, format.inline)) {\n return true;\n }\n if (isBlockFormat(format) && isEq$3(node, format.block)) {\n return true;\n }\n if (isSelectorFormat(format)) {\n return isElement$6(node) && dom.is(node, format.selector);\n }\n return false;\n };\n const matchItems = (dom, node, format, itemName, similar, vars) => {\n const items = format[itemName];\n const matchAttributes = itemName === 'attributes';\n if (isFunction(format.onmatch)) {\n return format.onmatch(node, format, itemName);\n }\n if (items) {\n if (!isArrayLike(items)) {\n for (const key in items) {\n if (has$2(items, key)) {\n const value = matchAttributes ? dom.getAttrib(node, key) : getStyle(dom, node, key);\n const expectedValue = replaceVars(items[key], vars);\n const isEmptyValue = isNullable(value) || isEmpty$3(value);\n if (isEmptyValue && isNullable(expectedValue)) {\n continue;\n }\n if (similar && isEmptyValue && !format.exact) {\n return false;\n }\n if ((!similar || format.exact) && !isEq$3(value, normalizeStyleValue(expectedValue, key))) {\n return false;\n }\n }\n }\n } else {\n for (let i = 0; i < items.length; i++) {\n if (matchAttributes ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {\n return true;\n }\n }\n }\n }\n return true;\n };\n const matchNode = (ed, node, name, vars, similar) => {\n const formatList = ed.formatter.get(name);\n const dom = ed.dom;\n if (formatList && isElement$6(node)) {\n for (let i = 0; i < formatList.length; i++) {\n const format = formatList[i];\n if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {\n const classes = format.classes;\n if (classes) {\n for (let x = 0; x < classes.length; x++) {\n if (!ed.dom.hasClass(node, replaceVars(classes[x], vars))) {\n return;\n }\n }\n }\n return format;\n }\n }\n }\n return undefined;\n };\n const match$2 = (editor, name, vars, node, similar) => {\n if (node) {\n return matchParents(editor, node, name, vars, similar);\n }\n node = editor.selection.getNode();\n if (matchParents(editor, node, name, vars, similar)) {\n return true;\n }\n const startNode = editor.selection.getStart();\n if (startNode !== node) {\n if (matchParents(editor, startNode, name, vars, similar)) {\n return true;\n }\n }\n return false;\n };\n const matchAll = (editor, names, vars) => {\n const matchedFormatNames = [];\n const checkedMap = {};\n const startElement = editor.selection.getStart();\n editor.dom.getParent(startElement, node => {\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n if (!checkedMap[name] && matchNode(editor, node, name, vars)) {\n checkedMap[name] = true;\n matchedFormatNames.push(name);\n }\n }\n }, editor.dom.getRoot());\n return matchedFormatNames;\n };\n const closest = (editor, names) => {\n const isRoot = elm => eq(elm, SugarElement.fromDom(editor.getBody()));\n const match = (elm, name) => matchNode(editor, elm.dom, name) ? Optional.some(name) : Optional.none();\n return Optional.from(editor.selection.getStart(true)).bind(rawElm => closest$1(SugarElement.fromDom(rawElm), elm => findMap(names, name => match(elm, name)), isRoot)).getOrNull();\n };\n const canApply = (editor, name) => {\n const formatList = editor.formatter.get(name);\n const dom = editor.dom;\n if (formatList && editor.selection.isEditable()) {\n const startNode = editor.selection.getStart();\n const parents = getParents$2(dom, startNode);\n for (let x = formatList.length - 1; x >= 0; x--) {\n const format = formatList[x];\n if (!isSelectorFormat(format)) {\n return true;\n }\n for (let i = parents.length - 1; i >= 0; i--) {\n if (dom.is(parents[i], format.selector)) {\n return true;\n }\n }\n }\n }\n return false;\n };\n const matchAllOnNode = (editor, node, formatNames) => foldl(formatNames, (acc, name) => {\n const matchSimilar = isVariableFormatName(editor, name);\n if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {\n return acc.concat([name]);\n } else {\n return acc;\n }\n }, []);\n\n const ZWSP = ZWSP$1;\n const importNode = (ownerDocument, node) => {\n return ownerDocument.importNode(node, true);\n };\n const findFirstTextNode = node => {\n if (node) {\n const walker = new DomTreeWalker(node, node);\n for (let tempNode = walker.current(); tempNode; tempNode = walker.next()) {\n if (isText$b(tempNode)) {\n return tempNode;\n }\n }\n }\n return null;\n };\n const createCaretContainer = fill => {\n const caretContainer = SugarElement.fromTag('span');\n setAll$1(caretContainer, {\n 'id': CARET_ID,\n 'data-mce-bogus': '1',\n 'data-mce-type': 'format-caret'\n });\n if (fill) {\n append$1(caretContainer, SugarElement.fromText(ZWSP));\n }\n return caretContainer;\n };\n const trimZwspFromCaretContainer = caretContainerNode => {\n const textNode = findFirstTextNode(caretContainerNode);\n if (textNode && textNode.data.charAt(0) === ZWSP) {\n textNode.deleteData(0, 1);\n }\n return textNode;\n };\n const removeCaretContainerNode = (editor, node, moveCaret) => {\n const dom = editor.dom, selection = editor.selection;\n if (isCaretContainerEmpty(node)) {\n deleteElement$2(editor, false, SugarElement.fromDom(node), moveCaret, true);\n } else {\n const rng = selection.getRng();\n const block = dom.getParent(node, dom.isBlock);\n const startContainer = rng.startContainer;\n const startOffset = rng.startOffset;\n const endContainer = rng.endContainer;\n const endOffset = rng.endOffset;\n const textNode = trimZwspFromCaretContainer(node);\n dom.remove(node, true);\n if (startContainer === textNode && startOffset > 0) {\n rng.setStart(textNode, startOffset - 1);\n }\n if (endContainer === textNode && endOffset > 0) {\n rng.setEnd(textNode, endOffset - 1);\n }\n if (block && dom.isEmpty(block)) {\n fillWithPaddingBr(SugarElement.fromDom(block));\n }\n selection.setRng(rng);\n }\n };\n const removeCaretContainer = (editor, node, moveCaret) => {\n const dom = editor.dom, selection = editor.selection;\n if (!node) {\n node = getParentCaretContainer(editor.getBody(), selection.getStart());\n if (!node) {\n while (node = dom.get(CARET_ID)) {\n removeCaretContainerNode(editor, node, moveCaret);\n }\n }\n } else {\n removeCaretContainerNode(editor, node, moveCaret);\n }\n };\n const insertCaretContainerNode = (editor, caretContainer, formatNode) => {\n var _a, _b;\n const dom = editor.dom;\n const block = dom.getParent(formatNode, curry(isTextBlock$1, editor.schema));\n if (block && dom.isEmpty(block)) {\n (_a = formatNode.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(caretContainer, formatNode);\n } else {\n removeTrailingBr(SugarElement.fromDom(formatNode));\n if (dom.isEmpty(formatNode)) {\n (_b = formatNode.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(caretContainer, formatNode);\n } else {\n dom.insertAfter(caretContainer, formatNode);\n }\n }\n };\n const appendNode = (parentNode, node) => {\n parentNode.appendChild(node);\n return node;\n };\n const insertFormatNodesIntoCaretContainer = (formatNodes, caretContainer) => {\n var _a;\n const innerMostFormatNode = foldr(formatNodes, (parentNode, formatNode) => {\n return appendNode(parentNode, formatNode.cloneNode(false));\n }, caretContainer);\n const doc = (_a = innerMostFormatNode.ownerDocument) !== null && _a !== void 0 ? _a : document;\n return appendNode(innerMostFormatNode, doc.createTextNode(ZWSP));\n };\n const cleanFormatNode = (editor, caretContainer, formatNode, name, vars, similar) => {\n const formatter = editor.formatter;\n const dom = editor.dom;\n const validFormats = filter$5(keys(formatter.get()), formatName => formatName !== name && !contains$1(formatName, 'removeformat'));\n const matchedFormats = matchAllOnNode(editor, formatNode, validFormats);\n const uniqueFormats = filter$5(matchedFormats, fmtName => !areSimilarFormats(editor, fmtName, name));\n if (uniqueFormats.length > 0) {\n const clonedFormatNode = formatNode.cloneNode(false);\n dom.add(caretContainer, clonedFormatNode);\n formatter.remove(name, vars, clonedFormatNode, similar);\n dom.remove(clonedFormatNode);\n return Optional.some(clonedFormatNode);\n } else {\n return Optional.none();\n }\n };\n const normalizeNbsps = node => set(node, get$3(node).replace(new RegExp(`${ nbsp }$`), ' '));\n const normalizeNbspsBetween = (editor, caretContainer) => {\n const handler = () => {\n if (caretContainer !== null && !editor.dom.isEmpty(caretContainer)) {\n prevSibling(SugarElement.fromDom(caretContainer)).each(node => {\n if (isText$c(node)) {\n normalizeNbsps(node);\n } else {\n descendant$2(node, e => isText$c(e)).each(textNode => {\n if (isText$c(textNode)) {\n normalizeNbsps(textNode);\n }\n });\n }\n });\n }\n };\n editor.once('input', e => {\n if (e.data && !isWhiteSpace(e.data)) {\n if (!e.isComposing) {\n handler();\n } else {\n editor.once('compositionend', () => {\n handler();\n });\n }\n }\n });\n };\n const applyCaretFormat = (editor, name, vars) => {\n let caretContainer;\n const selection = editor.selection;\n const formatList = editor.formatter.get(name);\n if (!formatList) {\n return;\n }\n const selectionRng = selection.getRng();\n let offset = selectionRng.startOffset;\n const container = selectionRng.startContainer;\n const text = container.nodeValue;\n caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart());\n const wordcharRegex = /[^\\s\\u00a0\\u00ad\\u200b\\ufeff]/;\n if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {\n const bookmark = selection.getBookmark();\n selectionRng.collapse(true);\n let rng = expandRng(editor.dom, selectionRng, formatList);\n rng = split(rng);\n editor.formatter.apply(name, vars, rng);\n selection.moveToBookmark(bookmark);\n } else {\n let textNode = caretContainer ? findFirstTextNode(caretContainer) : null;\n if (!caretContainer || (textNode === null || textNode === void 0 ? void 0 : textNode.data) !== ZWSP) {\n caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom);\n textNode = caretContainer.firstChild;\n selectionRng.insertNode(caretContainer);\n offset = 1;\n normalizeNbspsBetween(editor, caretContainer);\n editor.formatter.apply(name, vars, caretContainer);\n } else {\n editor.formatter.apply(name, vars, caretContainer);\n }\n selection.setCursorLocation(textNode, offset);\n }\n };\n const removeCaretFormat = (editor, name, vars, similar) => {\n const dom = editor.dom;\n const selection = editor.selection;\n let hasContentAfter = false;\n const formatList = editor.formatter.get(name);\n if (!formatList) {\n return;\n }\n const rng = selection.getRng();\n const container = rng.startContainer;\n const offset = rng.startOffset;\n let node = container;\n if (isText$b(container)) {\n if (offset !== container.data.length) {\n hasContentAfter = true;\n }\n node = node.parentNode;\n }\n const parents = [];\n let formatNode;\n while (node) {\n if (matchNode(editor, node, name, vars, similar)) {\n formatNode = node;\n break;\n }\n if (node.nextSibling) {\n hasContentAfter = true;\n }\n parents.push(node);\n node = node.parentNode;\n }\n if (!formatNode) {\n return;\n }\n if (hasContentAfter) {\n const bookmark = selection.getBookmark();\n rng.collapse(true);\n let expandedRng = expandRng(dom, rng, formatList, true);\n expandedRng = split(expandedRng);\n editor.formatter.remove(name, vars, expandedRng, similar);\n selection.moveToBookmark(bookmark);\n } else {\n const caretContainer = getParentCaretContainer(editor.getBody(), formatNode);\n const parentsAfter = isNonNullable(caretContainer) ? dom.getParents(formatNode.parentNode, always, caretContainer) : [];\n const newCaretContainer = createCaretContainer(false).dom;\n insertCaretContainerNode(editor, newCaretContainer, caretContainer !== null && caretContainer !== void 0 ? caretContainer : formatNode);\n const cleanedFormatNode = cleanFormatNode(editor, newCaretContainer, formatNode, name, vars, similar);\n const caretTextNode = insertFormatNodesIntoCaretContainer([\n ...parents,\n ...cleanedFormatNode.toArray(),\n ...parentsAfter\n ], newCaretContainer);\n if (caretContainer) {\n removeCaretContainerNode(editor, caretContainer, isNonNullable(caretContainer));\n }\n selection.setCursorLocation(caretTextNode, 1);\n normalizeNbspsBetween(editor, newCaretContainer);\n if (dom.isEmpty(formatNode)) {\n dom.remove(formatNode);\n }\n }\n };\n const disableCaretContainer = (editor, keyCode, moveCaret) => {\n const selection = editor.selection, body = editor.getBody();\n removeCaretContainer(editor, null, moveCaret);\n if ((keyCode === 8 || keyCode === 46) && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()), true);\n }\n if (keyCode === 37 || keyCode === 39) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()), true);\n }\n };\n const endsWithNbsp = element => isText$b(element) && endsWith(element.data, nbsp);\n const setup$v = editor => {\n editor.on('mouseup keydown', e => {\n disableCaretContainer(editor, e.keyCode, endsWithNbsp(editor.selection.getRng().endContainer));\n });\n };\n const createCaretFormat = formatNodes => {\n const caretContainer = createCaretContainer(false);\n const innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom);\n return {\n caretContainer,\n caretPosition: CaretPosition(innerMost, 0)\n };\n };\n const replaceWithCaretFormat = (targetNode, formatNodes) => {\n const {caretContainer, caretPosition} = createCaretFormat(formatNodes);\n before$3(SugarElement.fromDom(targetNode), caretContainer);\n remove$4(SugarElement.fromDom(targetNode));\n return caretPosition;\n };\n const createCaretFormatAtStart$1 = (rng, formatNodes) => {\n const {caretContainer, caretPosition} = createCaretFormat(formatNodes);\n rng.insertNode(caretContainer.dom);\n return caretPosition;\n };\n const isFormatElement = (editor, element) => {\n if (isCaretNode(element.dom)) {\n return false;\n }\n const inlineElements = editor.schema.getTextInlineElements();\n return has$2(inlineElements, name(element)) && !isCaretNode(element.dom) && !isBogus$1(element.dom);\n };\n\n const postProcessHooks = {};\n const isPre = matchNodeNames(['pre']);\n const addPostProcessHook = (name, hook) => {\n const hooks = postProcessHooks[name];\n if (!hooks) {\n postProcessHooks[name] = [];\n }\n postProcessHooks[name].push(hook);\n };\n const postProcess$1 = (name, editor) => {\n if (has$2(postProcessHooks, name)) {\n each$e(postProcessHooks[name], hook => {\n hook(editor);\n });\n }\n };\n addPostProcessHook('pre', editor => {\n const rng = editor.selection.getRng();\n const hasPreSibling = blocks => pre => {\n const prev = pre.previousSibling;\n return isPre(prev) && contains$2(blocks, prev);\n };\n const joinPre = (pre1, pre2) => {\n const sPre2 = SugarElement.fromDom(pre2);\n const doc = documentOrOwner(sPre2).dom;\n remove$4(sPre2);\n append(SugarElement.fromDom(pre1), [\n SugarElement.fromTag('br', doc),\n SugarElement.fromTag('br', doc),\n ...children$1(sPre2)\n ]);\n };\n if (!rng.collapsed) {\n const blocks = editor.selection.getSelectedBlocks();\n const preBlocks = filter$5(filter$5(blocks, isPre), hasPreSibling(blocks));\n each$e(preBlocks, pre => {\n joinPre(pre.previousSibling, pre);\n });\n }\n });\n\n const listItemStyles = [\n 'fontWeight',\n 'fontStyle',\n 'color',\n 'fontSize',\n 'fontFamily'\n ];\n const hasListStyles = fmt => isObject(fmt.styles) && exists(keys(fmt.styles), name => contains$2(listItemStyles, name));\n const findExpandedListItemFormat = formats => find$2(formats, fmt => isInlineFormat(fmt) && fmt.inline === 'span' && hasListStyles(fmt));\n const getExpandedListItemFormat = (formatter, format) => {\n const formatList = formatter.get(format);\n return isArray$1(formatList) ? findExpandedListItemFormat(formatList) : Optional.none();\n };\n const isRngStartAtStartOfElement = (rng, elm) => prevPosition(elm, CaretPosition.fromRangeStart(rng)).isNone();\n const isRngEndAtEndOfElement = (rng, elm) => {\n return nextPosition(elm, CaretPosition.fromRangeEnd(rng)).exists(pos => !isBr$6(pos.getNode()) || nextPosition(elm, pos).isSome()) === false;\n };\n const isEditableListItem = dom => elm => isListItem$2(elm) && dom.isEditable(elm);\n const getFullySelectedBlocks = selection => {\n const blocks = selection.getSelectedBlocks();\n const rng = selection.getRng();\n if (selection.isCollapsed()) {\n return [];\n }\n if (blocks.length === 1) {\n return isRngStartAtStartOfElement(rng, blocks[0]) && isRngEndAtEndOfElement(rng, blocks[0]) ? blocks : [];\n } else {\n const first = head(blocks).filter(elm => isRngStartAtStartOfElement(rng, elm)).toArray();\n const last = last$2(blocks).filter(elm => isRngEndAtEndOfElement(rng, elm)).toArray();\n const middle = blocks.slice(1, -1);\n return first.concat(middle).concat(last);\n }\n };\n const getFullySelectedListItems = selection => filter$5(getFullySelectedBlocks(selection), isEditableListItem(selection.dom));\n const getPartiallySelectedListItems = selection => filter$5(selection.getSelectedBlocks(), isEditableListItem(selection.dom));\n\n const each$8 = Tools.each;\n const isElementNode = node => isElement$6(node) && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus$1(node);\n const findElementSibling = (node, siblingName) => {\n for (let sibling = node; sibling; sibling = sibling[siblingName]) {\n if (isText$b(sibling) && isNotEmpty(sibling.data)) {\n return node;\n }\n if (isElement$6(sibling) && !isBookmarkNode$1(sibling)) {\n return sibling;\n }\n }\n return node;\n };\n const mergeSiblingsNodes = (editor, prev, next) => {\n const elementUtils = ElementUtils(editor);\n const isPrevEditable = isHTMLElement(prev) && editor.dom.isEditable(prev);\n const isNextEditable = isHTMLElement(next) && editor.dom.isEditable(next);\n if (isPrevEditable && isNextEditable) {\n const prevSibling = findElementSibling(prev, 'previousSibling');\n const nextSibling = findElementSibling(next, 'nextSibling');\n if (elementUtils.compare(prevSibling, nextSibling)) {\n for (let sibling = prevSibling.nextSibling; sibling && sibling !== nextSibling;) {\n const tmpSibling = sibling;\n sibling = sibling.nextSibling;\n prevSibling.appendChild(tmpSibling);\n }\n editor.dom.remove(nextSibling);\n Tools.each(Tools.grep(nextSibling.childNodes), node => {\n prevSibling.appendChild(node);\n });\n return prevSibling;\n }\n }\n return next;\n };\n const mergeSiblings = (editor, format, vars, node) => {\n var _a;\n if (node && format.merge_siblings !== false) {\n const newNode = (_a = mergeSiblingsNodes(editor, getNonWhiteSpaceSibling(node), node)) !== null && _a !== void 0 ? _a : node;\n mergeSiblingsNodes(editor, newNode, getNonWhiteSpaceSibling(newNode, true));\n }\n };\n const clearChildStyles = (dom, format, node) => {\n if (format.clear_child_styles) {\n const selector = format.links ? '*:not(a)' : '*';\n each$8(dom.select(selector, node), childNode => {\n if (isElementNode(childNode) && dom.isEditable(childNode)) {\n each$8(format.styles, (_value, name) => {\n dom.setStyle(childNode, name, '');\n });\n }\n });\n }\n };\n const processChildElements = (node, filter, process) => {\n each$8(node.childNodes, node => {\n if (isElementNode(node)) {\n if (filter(node)) {\n process(node);\n }\n if (node.hasChildNodes()) {\n processChildElements(node, filter, process);\n }\n }\n });\n };\n const unwrapEmptySpan = (dom, node) => {\n if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) {\n dom.remove(node, true);\n }\n };\n const hasStyle = (dom, name) => node => !!(node && getStyle(dom, node, name));\n const applyStyle = (dom, name, value) => node => {\n dom.setStyle(node, name, value);\n if (node.getAttribute('style') === '') {\n node.removeAttribute('style');\n }\n unwrapEmptySpan(dom, node);\n };\n\n const removeResult = Adt.generate([\n { keep: [] },\n { rename: ['name'] },\n { removed: [] }\n ]);\n const MCE_ATTR_RE = /^(src|href|style)$/;\n const each$7 = Tools.each;\n const isEq$2 = isEq$5;\n const isTableCellOrRow = node => /^(TR|TH|TD)$/.test(node.nodeName);\n const isChildOfInlineParent = (dom, node, parent) => dom.isChildOf(node, parent) && node !== parent && !dom.isBlock(parent);\n const getContainer = (ed, rng, start) => {\n let container = rng[start ? 'startContainer' : 'endContainer'];\n let offset = rng[start ? 'startOffset' : 'endOffset'];\n if (isElement$6(container)) {\n const lastIdx = container.childNodes.length - 1;\n if (!start && offset) {\n offset--;\n }\n container = container.childNodes[offset > lastIdx ? lastIdx : offset];\n }\n if (isText$b(container) && start && offset >= container.data.length) {\n container = new DomTreeWalker(container, ed.getBody()).next() || container;\n }\n if (isText$b(container) && !start && offset === 0) {\n container = new DomTreeWalker(container, ed.getBody()).prev() || container;\n }\n return container;\n };\n const normalizeTableSelection = (node, start) => {\n const prop = start ? 'firstChild' : 'lastChild';\n const childNode = node[prop];\n if (isTableCellOrRow(node) && childNode) {\n if (node.nodeName === 'TR') {\n return childNode[prop] || childNode;\n } else {\n return childNode;\n }\n }\n return node;\n };\n const wrap$1 = (dom, node, name, attrs) => {\n var _a;\n const wrapper = dom.create(name, attrs);\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(wrapper, node);\n wrapper.appendChild(node);\n return wrapper;\n };\n const wrapWithSiblings = (dom, node, next, name, attrs) => {\n const start = SugarElement.fromDom(node);\n const wrapper = SugarElement.fromDom(dom.create(name, attrs));\n const siblings = next ? nextSiblings(start) : prevSiblings(start);\n append(wrapper, siblings);\n if (next) {\n before$3(start, wrapper);\n prepend(wrapper, start);\n } else {\n after$4(start, wrapper);\n append$1(wrapper, start);\n }\n return wrapper.dom;\n };\n const isColorFormatAndAnchor = (node, format) => format.links && node.nodeName === 'A';\n const removeNode = (ed, node, format) => {\n const parentNode = node.parentNode;\n let rootBlockElm;\n const dom = ed.dom;\n const forcedRootBlock = getForcedRootBlock(ed);\n if (isBlockFormat(format)) {\n if (parentNode === dom.getRoot()) {\n if (!format.list_block || !isEq$2(node, format.list_block)) {\n each$e(from(node.childNodes), node => {\n if (isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {\n if (!rootBlockElm) {\n rootBlockElm = wrap$1(dom, node, forcedRootBlock);\n dom.setAttribs(rootBlockElm, getForcedRootBlockAttrs(ed));\n } else {\n rootBlockElm.appendChild(node);\n }\n } else {\n rootBlockElm = null;\n }\n });\n }\n }\n }\n if (isMixedFormat(format) && !isEq$2(format.inline, node)) {\n return;\n }\n dom.remove(node, true);\n };\n const processFormatAttrOrStyle = (name, value, vars) => {\n if (isNumber(name)) {\n return {\n name: value,\n value: null\n };\n } else {\n return {\n name,\n value: replaceVars(value, vars)\n };\n }\n };\n const removeEmptyStyleAttributeIfNeeded = (dom, elm) => {\n if (dom.getAttrib(elm, 'style') === '') {\n elm.removeAttribute('style');\n elm.removeAttribute('data-mce-style');\n }\n };\n const removeStyles = (dom, elm, format, vars, compareNode) => {\n let stylesModified = false;\n each$7(format.styles, (value, name) => {\n const {\n name: styleName,\n value: styleValue\n } = processFormatAttrOrStyle(name, value, vars);\n const normalizedStyleValue = normalizeStyleValue(styleValue, styleName);\n if (format.remove_similar || isNull(styleValue) || !isElement$6(compareNode) || isEq$2(getStyle(dom, compareNode, styleName), normalizedStyleValue)) {\n dom.setStyle(elm, styleName, '');\n }\n stylesModified = true;\n });\n if (stylesModified) {\n removeEmptyStyleAttributeIfNeeded(dom, elm);\n }\n };\n const removeListStyleFormats = (editor, name, vars) => {\n if (name === 'removeformat') {\n each$e(getPartiallySelectedListItems(editor.selection), li => {\n each$e(listItemStyles, name => editor.dom.setStyle(li, name, ''));\n removeEmptyStyleAttributeIfNeeded(editor.dom, li);\n });\n } else {\n getExpandedListItemFormat(editor.formatter, name).each(liFmt => {\n each$e(getPartiallySelectedListItems(editor.selection), li => removeStyles(editor.dom, li, liFmt, vars, null));\n });\n }\n };\n const removeNodeFormatInternal = (ed, format, vars, node, compareNode) => {\n const dom = ed.dom;\n const elementUtils = ElementUtils(ed);\n const schema = ed.schema;\n if (isInlineFormat(format) && isTransparentElementName(schema, format.inline) && isTransparentBlock(schema, node) && node.parentElement === ed.getBody()) {\n removeNode(ed, node, format);\n return removeResult.removed();\n }\n if (!format.ceFalseOverride && node && dom.getContentEditableParent(node) === 'false') {\n return removeResult.keep();\n }\n if (node && !matchName(dom, node, format) && !isColorFormatAndAnchor(node, format)) {\n return removeResult.keep();\n }\n const elm = node;\n const preserveAttributes = format.preserve_attributes;\n if (isInlineFormat(format) && format.remove === 'all' && isArray$1(preserveAttributes)) {\n const attrsToPreserve = filter$5(dom.getAttribs(elm), attr => contains$2(preserveAttributes, attr.name.toLowerCase()));\n dom.removeAllAttribs(elm);\n each$e(attrsToPreserve, attr => dom.setAttrib(elm, attr.name, attr.value));\n if (attrsToPreserve.length > 0) {\n return removeResult.rename('span');\n }\n }\n if (format.remove !== 'all') {\n removeStyles(dom, elm, format, vars, compareNode);\n each$7(format.attributes, (value, name) => {\n const {\n name: attrName,\n value: attrValue\n } = processFormatAttrOrStyle(name, value, vars);\n if (format.remove_similar || isNull(attrValue) || !isElement$6(compareNode) || isEq$2(dom.getAttrib(compareNode, attrName), attrValue)) {\n if (attrName === 'class') {\n const currentValue = dom.getAttrib(elm, attrName);\n if (currentValue) {\n let valueOut = '';\n each$e(currentValue.split(/\\s+/), cls => {\n if (/mce\\-\\w+/.test(cls)) {\n valueOut += (valueOut ? ' ' : '') + cls;\n }\n });\n if (valueOut) {\n dom.setAttrib(elm, attrName, valueOut);\n return;\n }\n }\n }\n if (MCE_ATTR_RE.test(attrName)) {\n elm.removeAttribute('data-mce-' + attrName);\n }\n if (attrName === 'style' && matchNodeNames(['li'])(elm) && dom.getStyle(elm, 'list-style-type') === 'none') {\n elm.removeAttribute(attrName);\n dom.setStyle(elm, 'list-style-type', 'none');\n return;\n }\n if (attrName === 'class') {\n elm.removeAttribute('className');\n }\n elm.removeAttribute(attrName);\n }\n });\n each$7(format.classes, value => {\n value = replaceVars(value, vars);\n if (!isElement$6(compareNode) || dom.hasClass(compareNode, value)) {\n dom.removeClass(elm, value);\n }\n });\n const attrs = dom.getAttribs(elm);\n for (let i = 0; i < attrs.length; i++) {\n const attrName = attrs[i].nodeName;\n if (!elementUtils.isAttributeInternal(attrName)) {\n return removeResult.keep();\n }\n }\n }\n if (format.remove !== 'none') {\n removeNode(ed, elm, format);\n return removeResult.removed();\n }\n return removeResult.keep();\n };\n const findFormatRoot = (editor, container, name, vars, similar) => {\n let formatRoot;\n if (container.parentNode) {\n each$e(getParents$2(editor.dom, container.parentNode).reverse(), parent => {\n if (!formatRoot && isElement$6(parent) && parent.id !== '_start' && parent.id !== '_end') {\n const format = matchNode(editor, parent, name, vars, similar);\n if (format && format.split !== false) {\n formatRoot = parent;\n }\n }\n });\n }\n return formatRoot;\n };\n const removeNodeFormatFromClone = (editor, format, vars, clone) => removeNodeFormatInternal(editor, format, vars, clone, clone).fold(constant(clone), newName => {\n const fragment = editor.dom.createFragment();\n fragment.appendChild(clone);\n return editor.dom.rename(clone, newName);\n }, constant(null));\n const wrapAndSplit = (editor, formatList, formatRoot, container, target, split, format, vars) => {\n var _a, _b;\n let lastClone;\n let firstClone;\n const dom = editor.dom;\n if (formatRoot) {\n const formatRootParent = formatRoot.parentNode;\n for (let parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {\n let clone = dom.clone(parent, false);\n for (let i = 0; i < formatList.length; i++) {\n clone = removeNodeFormatFromClone(editor, formatList[i], vars, clone);\n if (clone === null) {\n break;\n }\n }\n if (clone) {\n if (lastClone) {\n clone.appendChild(lastClone);\n }\n if (!firstClone) {\n firstClone = clone;\n }\n lastClone = clone;\n }\n }\n if (split && (!format.mixed || !dom.isBlock(formatRoot))) {\n container = (_a = dom.split(formatRoot, container)) !== null && _a !== void 0 ? _a : container;\n }\n if (lastClone && firstClone) {\n (_b = target.parentNode) === null || _b === void 0 ? void 0 : _b.insertBefore(lastClone, target);\n firstClone.appendChild(target);\n if (isInlineFormat(format)) {\n mergeSiblings(editor, format, vars, lastClone);\n }\n }\n }\n return container;\n };\n const removeFormatInternal = (ed, name, vars, node, similar) => {\n const formatList = ed.formatter.get(name);\n const format = formatList[0];\n const dom = ed.dom;\n const selection = ed.selection;\n const splitToFormatRoot = container => {\n const formatRoot = findFormatRoot(ed, container, name, vars, similar);\n return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars);\n };\n const isRemoveBookmarkNode = node => isBookmarkNode$1(node) && isElement$6(node) && (node.id === '_start' || node.id === '_end');\n const removeFormatOnNode = node => exists(formatList, fmt => removeNodeFormat(ed, fmt, vars, node, node));\n const process = node => {\n const children = from(node.childNodes);\n const removed = removeFormatOnNode(node);\n const currentNodeMatches = removed || exists(formatList, f => matchName(dom, node, f));\n const parentNode = node.parentNode;\n if (!currentNodeMatches && isNonNullable(parentNode) && shouldExpandToSelector(format)) {\n removeFormatOnNode(parentNode);\n }\n if (format.deep) {\n if (children.length) {\n for (let i = 0; i < children.length; i++) {\n process(children[i]);\n }\n }\n }\n const textDecorations = [\n 'underline',\n 'line-through',\n 'overline'\n ];\n each$e(textDecorations, decoration => {\n if (isElement$6(node) && ed.dom.getStyle(node, 'text-decoration') === decoration && node.parentNode && getTextDecoration(dom, node.parentNode) === decoration) {\n removeNodeFormat(ed, {\n deep: false,\n exact: true,\n inline: 'span',\n styles: { textDecoration: decoration }\n }, undefined, node);\n }\n });\n };\n const unwrap = start => {\n const node = dom.get(start ? '_start' : '_end');\n if (node) {\n let out = node[start ? 'firstChild' : 'lastChild'];\n if (isRemoveBookmarkNode(out)) {\n out = out[start ? 'firstChild' : 'lastChild'];\n }\n if (isText$b(out) && out.data.length === 0) {\n out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;\n }\n dom.remove(node, true);\n return out;\n } else {\n return null;\n }\n };\n const removeRngStyle = rng => {\n let startContainer;\n let endContainer;\n let expandedRng = expandRng(dom, rng, formatList, rng.collapsed);\n if (format.split) {\n expandedRng = split(expandedRng);\n startContainer = getContainer(ed, expandedRng, true);\n endContainer = getContainer(ed, expandedRng);\n if (startContainer !== endContainer) {\n startContainer = normalizeTableSelection(startContainer, true);\n endContainer = normalizeTableSelection(endContainer, false);\n if (isChildOfInlineParent(dom, startContainer, endContainer)) {\n const marker = Optional.from(startContainer.firstChild).getOr(startContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(true);\n return;\n }\n if (isChildOfInlineParent(dom, endContainer, startContainer)) {\n const marker = Optional.from(endContainer.lastChild).getOr(endContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(false);\n return;\n }\n startContainer = wrap$1(dom, startContainer, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n });\n endContainer = wrap$1(dom, endContainer, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n });\n const newRng = dom.createRng();\n newRng.setStartAfter(startContainer);\n newRng.setEndBefore(endContainer);\n walk$3(dom, newRng, nodes => {\n each$e(nodes, n => {\n if (!isBookmarkNode$1(n) && !isBookmarkNode$1(n.parentNode)) {\n splitToFormatRoot(n);\n }\n });\n });\n splitToFormatRoot(startContainer);\n splitToFormatRoot(endContainer);\n startContainer = unwrap(true);\n endContainer = unwrap();\n } else {\n startContainer = endContainer = splitToFormatRoot(startContainer);\n }\n expandedRng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer;\n expandedRng.startOffset = dom.nodeIndex(startContainer);\n expandedRng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;\n expandedRng.endOffset = dom.nodeIndex(endContainer) + 1;\n }\n walk$3(dom, expandedRng, nodes => {\n each$e(nodes, process);\n });\n };\n if (node) {\n if (isNode(node)) {\n const rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n removeRngStyle(rng);\n } else {\n removeRngStyle(node);\n }\n fireFormatRemove(ed, name, node, vars);\n return;\n }\n if (!selection.isCollapsed() || !isInlineFormat(format) || getCellsFromEditor(ed).length) {\n preserveSelection(ed, () => runOnRanges(ed, removeRngStyle), startNode => isInlineFormat(format) && match$2(ed, name, vars, startNode));\n ed.nodeChanged();\n } else {\n removeCaretFormat(ed, name, vars, similar);\n }\n removeListStyleFormats(ed, name, vars);\n fireFormatRemove(ed, name, node, vars);\n };\n const removeFormat$1 = (ed, name, vars, node, similar) => {\n if (node || ed.selection.isEditable()) {\n removeFormatInternal(ed, name, vars, node, similar);\n }\n };\n const removeNodeFormat = (editor, format, vars, node, compareNode) => {\n return removeNodeFormatInternal(editor, format, vars, node, compareNode).fold(never, newName => {\n editor.dom.rename(node, newName);\n return true;\n }, always);\n };\n\n const each$6 = Tools.each;\n const mergeTextDecorationsAndColor = (dom, format, vars, node) => {\n const processTextDecorationsAndColor = n => {\n if (isHTMLElement(n) && isElement$6(n.parentNode) && dom.isEditable(n)) {\n const parentTextDecoration = getTextDecoration(dom, n.parentNode);\n if (dom.getStyle(n, 'color') && parentTextDecoration) {\n dom.setStyle(n, 'text-decoration', parentTextDecoration);\n } else if (dom.getStyle(n, 'text-decoration') === parentTextDecoration) {\n dom.setStyle(n, 'text-decoration', null);\n }\n }\n };\n if (format.styles && (format.styles.color || format.styles.textDecoration)) {\n Tools.walk(node, processTextDecorationsAndColor, 'childNodes');\n processTextDecorationsAndColor(node);\n }\n };\n const mergeBackgroundColorAndFontSize = (dom, format, vars, node) => {\n if (format.styles && format.styles.backgroundColor) {\n const hasFontSize = hasStyle(dom, 'fontSize');\n processChildElements(node, elm => hasFontSize(elm) && dom.isEditable(elm), applyStyle(dom, 'backgroundColor', replaceVars(format.styles.backgroundColor, vars)));\n }\n };\n const mergeSubSup = (dom, format, vars, node) => {\n if (isInlineFormat(format) && (format.inline === 'sub' || format.inline === 'sup')) {\n const hasFontSize = hasStyle(dom, 'fontSize');\n processChildElements(node, elm => hasFontSize(elm) && dom.isEditable(elm), applyStyle(dom, 'fontSize', ''));\n const inverseTagDescendants = filter$5(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), dom.isEditable);\n dom.remove(inverseTagDescendants, true);\n }\n };\n const mergeWithChildren = (editor, formatList, vars, node) => {\n each$6(formatList, format => {\n if (isInlineFormat(format)) {\n each$6(editor.dom.select(format.inline, node), child => {\n if (isElementNode(child)) {\n removeNodeFormat(editor, format, vars, child, format.exact ? child : null);\n }\n });\n }\n clearChildStyles(editor.dom, format, node);\n });\n };\n const mergeWithParents = (editor, format, name, vars, node) => {\n const parentNode = node.parentNode;\n if (matchNode(editor, parentNode, name, vars)) {\n if (removeNodeFormat(editor, format, vars, node)) {\n return;\n }\n }\n if (format.merge_with_parents && parentNode) {\n editor.dom.getParent(parentNode, parent => {\n if (matchNode(editor, parent, name, vars)) {\n removeNodeFormat(editor, format, vars, node);\n return true;\n } else {\n return false;\n }\n });\n }\n };\n\n const each$5 = Tools.each;\n const canFormatBR = (editor, format, node, parentName) => {\n if (canFormatEmptyLines(editor) && isInlineFormat(format) && node.parentNode) {\n const validBRParentElements = getTextRootBlockElements(editor.schema);\n const hasCaretNodeSibling = sibling(SugarElement.fromDom(node), sibling => isCaretNode(sibling.dom));\n return hasNonNullableKey(validBRParentElements, parentName) && isEmptyNode(editor.schema, node.parentNode, {\n skipBogus: false,\n includeZwsp: true\n }) && !hasCaretNodeSibling;\n } else {\n return false;\n }\n };\n const applyStyles = (dom, elm, format, vars) => {\n each$5(format.styles, (value, name) => {\n dom.setStyle(elm, name, replaceVars(value, vars));\n });\n if (format.styles) {\n const styleVal = dom.getAttrib(elm, 'style');\n if (styleVal) {\n dom.setAttrib(elm, 'data-mce-style', styleVal);\n }\n }\n };\n const applyFormatAction = (ed, name, vars, node) => {\n const formatList = ed.formatter.get(name);\n const format = formatList[0];\n const isCollapsed = !node && ed.selection.isCollapsed();\n const dom = ed.dom;\n const selection = ed.selection;\n const setElementFormat = (elm, fmt = format) => {\n if (isFunction(fmt.onformat)) {\n fmt.onformat(elm, fmt, vars, node);\n }\n applyStyles(dom, elm, fmt, vars);\n each$5(fmt.attributes, (value, name) => {\n dom.setAttrib(elm, name, replaceVars(value, vars));\n });\n each$5(fmt.classes, value => {\n const newValue = replaceVars(value, vars);\n if (!dom.hasClass(elm, newValue)) {\n dom.addClass(elm, newValue);\n }\n });\n };\n const applyNodeStyle = (formatList, node) => {\n let found = false;\n each$5(formatList, format => {\n if (!isSelectorFormat(format)) {\n return false;\n }\n if (dom.getContentEditable(node) === 'false' && !format.ceFalseOverride) {\n return true;\n }\n if (isNonNullable(format.collapsed) && format.collapsed !== isCollapsed) {\n return true;\n }\n if (dom.is(node, format.selector) && !isCaretNode(node)) {\n setElementFormat(node, format);\n found = true;\n return false;\n }\n return true;\n });\n return found;\n };\n const createWrapElement = wrapName => {\n if (isString(wrapName)) {\n const wrapElm = dom.create(wrapName);\n setElementFormat(wrapElm);\n return wrapElm;\n } else {\n return null;\n }\n };\n const applyRngStyle = (dom, rng, nodeSpecific) => {\n const newWrappers = [];\n let contentEditable = true;\n const wrapName = format.inline || format.block;\n const wrapElm = createWrapElement(wrapName);\n const isMatchingWrappingBlock = node => isWrappingBlockFormat(format) && matchNode(ed, node, name, vars);\n const canRenameBlock = (node, parentName, isEditableDescendant) => {\n const isValidBlockFormatForNode = isNonWrappingBlockFormat(format) && isTextBlock$1(ed.schema, node) && isValid(ed, parentName, wrapName);\n return isEditableDescendant && isValidBlockFormatForNode;\n };\n const canWrapNode = (node, parentName, isEditableDescendant, isWrappableNoneditableElm) => {\n const nodeName = node.nodeName.toLowerCase();\n const isValidWrapNode = isValid(ed, wrapName, nodeName) && isValid(ed, parentName, wrapName);\n const isZwsp$1 = !nodeSpecific && isText$b(node) && isZwsp(node.data);\n const isCaret = isCaretNode(node);\n const isCorrectFormatForNode = !isInlineFormat(format) || !dom.isBlock(node);\n return (isEditableDescendant || isWrappableNoneditableElm) && isValidWrapNode && !isZwsp$1 && !isCaret && isCorrectFormatForNode;\n };\n walk$3(dom, rng, nodes => {\n let currentWrapElm;\n const process = node => {\n let hasContentEditableState = false;\n let lastContentEditable = contentEditable;\n let isWrappableNoneditableElm = false;\n const parentNode = node.parentNode;\n const parentName = parentNode.nodeName.toLowerCase();\n const contentEditableValue = dom.getContentEditable(node);\n if (isNonNullable(contentEditableValue)) {\n lastContentEditable = contentEditable;\n contentEditable = contentEditableValue === 'true';\n hasContentEditableState = true;\n isWrappableNoneditableElm = isWrappableNoneditable(ed, node);\n }\n const isEditableDescendant = contentEditable && !hasContentEditableState;\n if (isBr$6(node) && !canFormatBR(ed, format, node, parentName)) {\n currentWrapElm = null;\n if (isBlockFormat(format)) {\n dom.remove(node);\n }\n return;\n }\n if (isMatchingWrappingBlock(node)) {\n currentWrapElm = null;\n return;\n }\n if (canRenameBlock(node, parentName, isEditableDescendant)) {\n const elm = dom.rename(node, wrapName);\n setElementFormat(elm);\n newWrappers.push(elm);\n currentWrapElm = null;\n return;\n }\n if (isSelectorFormat(format)) {\n let found = applyNodeStyle(formatList, node);\n if (!found && isNonNullable(parentNode) && shouldExpandToSelector(format)) {\n found = applyNodeStyle(formatList, parentNode);\n }\n if (!isInlineFormat(format) || found) {\n currentWrapElm = null;\n return;\n }\n }\n if (isNonNullable(wrapElm) && canWrapNode(node, parentName, isEditableDescendant, isWrappableNoneditableElm)) {\n if (!currentWrapElm) {\n currentWrapElm = dom.clone(wrapElm, false);\n parentNode.insertBefore(currentWrapElm, node);\n newWrappers.push(currentWrapElm);\n }\n if (isWrappableNoneditableElm && hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n currentWrapElm.appendChild(node);\n } else {\n currentWrapElm = null;\n each$e(from(node.childNodes), process);\n if (hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n currentWrapElm = null;\n }\n };\n each$e(nodes, process);\n });\n if (format.links === true) {\n each$e(newWrappers, node => {\n const process = node => {\n if (node.nodeName === 'A') {\n setElementFormat(node, format);\n }\n each$e(from(node.childNodes), process);\n };\n process(node);\n });\n }\n each$e(newWrappers, node => {\n const getChildCount = node => {\n let count = 0;\n each$e(node.childNodes, node => {\n if (!isEmptyTextNode$1(node) && !isBookmarkNode$1(node)) {\n count++;\n }\n });\n return count;\n };\n const mergeStyles = node => {\n const childElement = find$2(node.childNodes, isElementNode$1).filter(child => dom.getContentEditable(child) !== 'false' && matchName(dom, child, format));\n return childElement.map(child => {\n const clone = dom.clone(child, false);\n setElementFormat(clone);\n dom.replace(clone, node, true);\n dom.remove(child, true);\n return clone;\n }).getOr(node);\n };\n const childCount = getChildCount(node);\n if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) {\n dom.remove(node, true);\n return;\n }\n if (isInlineFormat(format) || isBlockFormat(format) && format.wrapper) {\n if (!format.exact && childCount === 1) {\n node = mergeStyles(node);\n }\n mergeWithChildren(ed, formatList, vars, node);\n mergeWithParents(ed, format, name, vars, node);\n mergeBackgroundColorAndFontSize(dom, format, vars, node);\n mergeTextDecorationsAndColor(dom, format, vars, node);\n mergeSubSup(dom, format, vars, node);\n mergeSiblings(ed, format, vars, node);\n }\n });\n };\n const targetNode = isNode(node) ? node : selection.getNode();\n if (dom.getContentEditable(targetNode) === 'false' && !isWrappableNoneditable(ed, targetNode)) {\n node = targetNode;\n applyNodeStyle(formatList, node);\n fireFormatApply(ed, name, node, vars);\n return;\n }\n if (format) {\n if (node) {\n if (isNode(node)) {\n if (!applyNodeStyle(formatList, node)) {\n const rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n applyRngStyle(dom, expandRng(dom, rng, formatList), true);\n }\n } else {\n applyRngStyle(dom, node, true);\n }\n } else {\n if (!isCollapsed || !isInlineFormat(format) || getCellsFromEditor(ed).length) {\n selection.setRng(normalize(selection.getRng()));\n preserveSelection(ed, () => {\n runOnRanges(ed, (selectionRng, fake) => {\n const expandedRng = fake ? selectionRng : expandRng(dom, selectionRng, formatList);\n applyRngStyle(dom, expandedRng, false);\n });\n }, always);\n ed.nodeChanged();\n } else {\n applyCaretFormat(ed, name, vars);\n }\n getExpandedListItemFormat(ed.formatter, name).each(liFmt => {\n each$e(getFullySelectedListItems(ed.selection), li => applyStyles(dom, li, liFmt, vars));\n });\n }\n postProcess$1(name, ed);\n }\n fireFormatApply(ed, name, node, vars);\n };\n const applyFormat$1 = (editor, name, vars, node) => {\n if (node || editor.selection.isEditable()) {\n applyFormatAction(editor, name, vars, node);\n }\n };\n\n const hasVars = value => has$2(value, 'vars');\n const setup$u = (registeredFormatListeners, editor) => {\n registeredFormatListeners.set({});\n editor.on('NodeChange', e => {\n updateAndFireChangeCallbacks(editor, e.element, registeredFormatListeners.get());\n });\n editor.on('FormatApply FormatRemove', e => {\n const element = Optional.from(e.node).map(nodeOrRange => isNode(nodeOrRange) ? nodeOrRange : nodeOrRange.startContainer).bind(node => isElement$6(node) ? Optional.some(node) : Optional.from(node.parentElement)).getOrThunk(() => fallbackElement(editor));\n updateAndFireChangeCallbacks(editor, element, registeredFormatListeners.get());\n });\n };\n const fallbackElement = editor => editor.selection.getStart();\n const matchingNode = (editor, parents, format, similar, vars) => {\n const isMatchingNode = node => {\n const matchingFormat = editor.formatter.matchNode(node, format, vars !== null && vars !== void 0 ? vars : {}, similar);\n return !isUndefined(matchingFormat);\n };\n const isUnableToMatch = node => {\n if (matchesUnInheritedFormatSelector(editor, node, format)) {\n return true;\n } else {\n if (!similar) {\n return isNonNullable(editor.formatter.matchNode(node, format, vars, true));\n } else {\n return false;\n }\n }\n };\n return findUntil$1(parents, isMatchingNode, isUnableToMatch);\n };\n const getParents = (editor, elm) => {\n const element = elm !== null && elm !== void 0 ? elm : fallbackElement(editor);\n return filter$5(getParents$2(editor.dom, element), node => isElement$6(node) && !isBogus$1(node));\n };\n const updateAndFireChangeCallbacks = (editor, elm, registeredCallbacks) => {\n const parents = getParents(editor, elm);\n each$d(registeredCallbacks, (data, format) => {\n const runIfChanged = spec => {\n const match = matchingNode(editor, parents, format, spec.similar, hasVars(spec) ? spec.vars : undefined);\n const isSet = match.isSome();\n if (spec.state.get() !== isSet) {\n spec.state.set(isSet);\n const node = match.getOr(elm);\n if (hasVars(spec)) {\n spec.callback(isSet, {\n node,\n format,\n parents\n });\n } else {\n each$e(spec.callbacks, callback => callback(isSet, {\n node,\n format,\n parents\n }));\n }\n }\n };\n each$e([\n data.withSimilar,\n data.withoutSimilar\n ], runIfChanged);\n each$e(data.withVars, runIfChanged);\n });\n };\n const addListeners = (editor, registeredFormatListeners, formats, callback, similar, vars) => {\n const formatChangeItems = registeredFormatListeners.get();\n each$e(formats.split(','), format => {\n const group = get$a(formatChangeItems, format).getOrThunk(() => {\n const base = {\n withSimilar: {\n state: Cell(false),\n similar: true,\n callbacks: []\n },\n withoutSimilar: {\n state: Cell(false),\n similar: false,\n callbacks: []\n },\n withVars: []\n };\n formatChangeItems[format] = base;\n return base;\n });\n const getCurrent = () => {\n const parents = getParents(editor);\n return matchingNode(editor, parents, format, similar, vars).isSome();\n };\n if (isUndefined(vars)) {\n const toAppendTo = similar ? group.withSimilar : group.withoutSimilar;\n toAppendTo.callbacks.push(callback);\n if (toAppendTo.callbacks.length === 1) {\n toAppendTo.state.set(getCurrent());\n }\n } else {\n group.withVars.push({\n state: Cell(getCurrent()),\n similar,\n vars,\n callback\n });\n }\n });\n registeredFormatListeners.set(formatChangeItems);\n };\n const removeListeners = (registeredFormatListeners, formats, callback) => {\n const formatChangeItems = registeredFormatListeners.get();\n each$e(formats.split(','), format => get$a(formatChangeItems, format).each(group => {\n formatChangeItems[format] = {\n withSimilar: {\n ...group.withSimilar,\n callbacks: filter$5(group.withSimilar.callbacks, cb => cb !== callback)\n },\n withoutSimilar: {\n ...group.withoutSimilar,\n callbacks: filter$5(group.withoutSimilar.callbacks, cb => cb !== callback)\n },\n withVars: filter$5(group.withVars, item => item.callback !== callback)\n };\n }));\n registeredFormatListeners.set(formatChangeItems);\n };\n const formatChangedInternal = (editor, registeredFormatListeners, formats, callback, similar, vars) => {\n addListeners(editor, registeredFormatListeners, formats, callback, similar, vars);\n return { unbind: () => removeListeners(registeredFormatListeners, formats, callback) };\n };\n\n const toggle = (editor, name, vars, node) => {\n const fmt = editor.formatter.get(name);\n if (fmt) {\n if (match$2(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {\n removeFormat$1(editor, name, vars, node);\n } else {\n applyFormat$1(editor, name, vars, node);\n }\n }\n };\n\n const explode$1 = Tools.explode;\n const create$8 = () => {\n const filters = {};\n const addFilter = (name, callback) => {\n each$e(explode$1(name), name => {\n if (!has$2(filters, name)) {\n filters[name] = {\n name,\n callbacks: []\n };\n }\n filters[name].callbacks.push(callback);\n });\n };\n const getFilters = () => values(filters);\n const removeFilter = (name, callback) => {\n each$e(explode$1(name), name => {\n if (has$2(filters, name)) {\n if (isNonNullable(callback)) {\n const filter = filters[name];\n const newCallbacks = filter$5(filter.callbacks, c => c !== callback);\n if (newCallbacks.length > 0) {\n filter.callbacks = newCallbacks;\n } else {\n delete filters[name];\n }\n } else {\n delete filters[name];\n }\n }\n });\n };\n return {\n addFilter,\n getFilters,\n removeFilter\n };\n };\n\n const removeAttrs = (node, names) => {\n each$e(names, name => {\n node.attr(name, null);\n });\n };\n const addFontToSpansFilter = (domParser, styles, fontSizes) => {\n domParser.addNodeFilter('font', nodes => {\n each$e(nodes, node => {\n const props = styles.parse(node.attr('style'));\n const color = node.attr('color');\n const face = node.attr('face');\n const size = node.attr('size');\n if (color) {\n props.color = color;\n }\n if (face) {\n props['font-family'] = face;\n }\n if (size) {\n toInt(size).each(num => {\n props['font-size'] = fontSizes[num - 1];\n });\n }\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n removeAttrs(node, [\n 'color',\n 'face',\n 'size'\n ]);\n });\n });\n };\n const addStrikeFilter = (domParser, schema, styles) => {\n domParser.addNodeFilter('strike', nodes => {\n const convertToSTag = schema.type !== 'html4';\n each$e(nodes, node => {\n if (convertToSTag) {\n node.name = 's';\n } else {\n const props = styles.parse(node.attr('style'));\n props['text-decoration'] = 'line-through';\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n }\n });\n });\n };\n const addFilters = (domParser, settings, schema) => {\n var _a;\n const styles = Styles();\n if (settings.convert_fonts_to_spans) {\n addFontToSpansFilter(domParser, styles, Tools.explode((_a = settings.font_size_legacy_values) !== null && _a !== void 0 ? _a : ''));\n }\n addStrikeFilter(domParser, schema, styles);\n };\n const register$5 = (domParser, settings, schema) => {\n if (settings.inline_styles) {\n addFilters(domParser, settings, schema);\n }\n };\n\n const blobUriToBlob = url => fetch(url).then(res => res.ok ? res.blob() : Promise.reject()).catch(() => Promise.reject({\n message: `Cannot convert ${ url } to Blob. Resource might not exist or is inaccessible.`,\n uriType: 'blob'\n }));\n const extractBase64Data = data => {\n const matches = /([a-z0-9+\\/=\\s]+)/i.exec(data);\n return matches ? matches[1] : '';\n };\n const parseDataUri = uri => {\n const [type, ...rest] = uri.split(',');\n const data = rest.join(',');\n const matches = /data:([^/]+\\/[^;]+)(;.+)?/.exec(type);\n if (matches) {\n const base64Encoded = matches[2] === ';base64';\n const extractedData = base64Encoded ? extractBase64Data(data) : decodeURIComponent(data);\n return Optional.some({\n type: matches[1],\n data: extractedData,\n base64Encoded\n });\n } else {\n return Optional.none();\n }\n };\n const buildBlob = (type, data, base64Encoded = true) => {\n let str = data;\n if (base64Encoded) {\n try {\n str = atob(data);\n } catch (e) {\n return Optional.none();\n }\n }\n const arr = new Uint8Array(str.length);\n for (let i = 0; i < arr.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return Optional.some(new Blob([arr], { type }));\n };\n const dataUriToBlob = uri => {\n return new Promise((resolve, reject) => {\n parseDataUri(uri).bind(({type, data, base64Encoded}) => buildBlob(type, data, base64Encoded)).fold(() => reject('Invalid data URI'), resolve);\n });\n };\n const uriToBlob = url => {\n if (startsWith(url, 'blob:')) {\n return blobUriToBlob(url);\n } else if (startsWith(url, 'data:')) {\n return dataUriToBlob(url);\n } else {\n return Promise.reject('Unknown URI format');\n }\n };\n const blobToDataUri = blob => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n resolve(reader.result);\n };\n reader.onerror = () => {\n var _a;\n reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n };\n reader.readAsDataURL(blob);\n });\n };\n\n let count$1 = 0;\n const uniqueId$1 = prefix => {\n return (prefix || 'blobid') + count$1++;\n };\n const processDataUri = (dataUri, base64Only, generateBlobInfo) => {\n return parseDataUri(dataUri).bind(({data, type, base64Encoded}) => {\n if (base64Only && !base64Encoded) {\n return Optional.none();\n } else {\n const base64 = base64Encoded ? data : btoa(data);\n return generateBlobInfo(base64, type);\n }\n });\n };\n const createBlobInfo$1 = (blobCache, blob, base64) => {\n const blobInfo = blobCache.create(uniqueId$1(), blob, base64);\n blobCache.add(blobInfo);\n return blobInfo;\n };\n const dataUriToBlobInfo = (blobCache, dataUri, base64Only = false) => {\n return processDataUri(dataUri, base64Only, (base64, type) => Optional.from(blobCache.getByData(base64, type)).orThunk(() => buildBlob(type, base64).map(blob => createBlobInfo$1(blobCache, blob, base64))));\n };\n const imageToBlobInfo = (blobCache, imageSrc) => {\n const invalidDataUri = () => Promise.reject('Invalid data URI');\n if (startsWith(imageSrc, 'blob:')) {\n const blobInfo = blobCache.getByUri(imageSrc);\n if (isNonNullable(blobInfo)) {\n return Promise.resolve(blobInfo);\n } else {\n return uriToBlob(imageSrc).then(blob => {\n return blobToDataUri(blob).then(dataUri => {\n return processDataUri(dataUri, false, base64 => {\n return Optional.some(createBlobInfo$1(blobCache, blob, base64));\n }).getOrThunk(invalidDataUri);\n });\n });\n }\n } else if (startsWith(imageSrc, 'data:')) {\n return dataUriToBlobInfo(blobCache, imageSrc).fold(invalidDataUri, blobInfo => Promise.resolve(blobInfo));\n } else {\n return Promise.reject('Unknown image data format');\n }\n };\n\n const hostCaptureRegex = /^(?:(?:(?:[A-Za-z][A-Za-z\\d.+-]{0,14}:\\/\\/(?:[-.~*+=!&;:'%@?^${}(),\\w]+@)?|www\\.|[-;:&=+$,.\\w]+@)([A-Za-z\\d-]+(?:\\.[A-Za-z\\d-]+)*))(?::\\d+)?(?:\\/(?:[-.~*+=!;:'%@$(),\\/\\w]*[-~*+=%@$()\\/\\w])?)?(?:\\?(?:[-.~*+=!&;:'%@?^${}(),\\/\\w]+)?)?(?:#(?:[-.~*+=!&;:'%@?^${}(),\\/\\w]+)?)?)$/;\n const extractHost = url => Optional.from(url.match(hostCaptureRegex)).bind(ms => get$b(ms, 1)).map(h => startsWith(h, 'www.') ? h.substring(4) : h);\n\n const sandboxIframe = (iframeNode, exclusions) => {\n if (Optional.from(iframeNode.attr('src')).bind(extractHost).forall(host => !contains$2(exclusions, host))) {\n iframeNode.attr('sandbox', '');\n }\n };\n const isMimeType = (mime, type) => startsWith(mime, `${ type }/`);\n const getEmbedType = type => {\n if (isUndefined(type)) {\n return 'iframe';\n } else if (isMimeType(type, 'image')) {\n return 'img';\n } else if (isMimeType(type, 'video')) {\n return 'video';\n } else if (isMimeType(type, 'audio')) {\n return 'audio';\n } else {\n return 'iframe';\n }\n };\n const createSafeEmbed = ({type, src, width, height} = {}, sandboxIframes, sandboxIframesExclusions) => {\n const name = getEmbedType(type);\n const embed = new AstNode(name, 1);\n embed.attr(name === 'audio' ? { src } : {\n src,\n width,\n height\n });\n if (name === 'audio' || name === 'video') {\n embed.attr('controls', '');\n }\n if (name === 'iframe' && sandboxIframes) {\n sandboxIframe(embed, sandboxIframesExclusions);\n }\n return embed;\n };\n\n const isBogusImage = img => isNonNullable(img.attr('data-mce-bogus'));\n const isInternalImageSource = img => img.attr('src') === Env.transparentSrc || isNonNullable(img.attr('data-mce-placeholder'));\n const registerBase64ImageFilter = (parser, settings) => {\n const {blob_cache: blobCache} = settings;\n if (blobCache) {\n const processImage = img => {\n const inputSrc = img.attr('src');\n if (isInternalImageSource(img) || isBogusImage(img) || isNullable(inputSrc)) {\n return;\n }\n dataUriToBlobInfo(blobCache, inputSrc, true).each(blobInfo => {\n img.attr('src', blobInfo.blobUri());\n });\n };\n parser.addAttributeFilter('src', nodes => each$e(nodes, processImage));\n }\n };\n const register$4 = (parser, settings) => {\n var _a, _b;\n const schema = parser.schema;\n parser.addAttributeFilter('href', nodes => {\n let i = nodes.length;\n const appendRel = rel => {\n const parts = rel.split(' ').filter(p => p.length > 0);\n return parts.concat(['noopener']).sort().join(' ');\n };\n const addNoOpener = rel => {\n const newRel = rel ? Tools.trim(rel) : '';\n if (!/\\b(noopener)\\b/g.test(newRel)) {\n return appendRel(newRel);\n } else {\n return newRel;\n }\n };\n if (!settings.allow_unsafe_link_target) {\n while (i--) {\n const node = nodes[i];\n if (node.name === 'a' && node.attr('target') === '_blank') {\n node.attr('rel', addNoOpener(node.attr('rel')));\n }\n }\n }\n });\n if (!settings.allow_html_in_named_anchor) {\n parser.addAttributeFilter('id,name', nodes => {\n let i = nodes.length, sibling, prevSibling, parent, node;\n while (i--) {\n node = nodes[i];\n if (node.name === 'a' && node.firstChild && !node.attr('href')) {\n parent = node.parent;\n sibling = node.lastChild;\n while (sibling && parent) {\n prevSibling = sibling.prev;\n parent.insert(sibling, node);\n sibling = prevSibling;\n }\n }\n }\n });\n }\n if (settings.fix_list_elements) {\n parser.addNodeFilter('ul,ol', nodes => {\n let i = nodes.length, node, parentNode;\n while (i--) {\n node = nodes[i];\n parentNode = node.parent;\n if (parentNode && (parentNode.name === 'ul' || parentNode.name === 'ol')) {\n if (node.prev && node.prev.name === 'li') {\n node.prev.append(node);\n } else {\n const li = new AstNode('li', 1);\n li.attr('style', 'list-style-type: none');\n node.wrap(li);\n }\n }\n }\n });\n }\n const validClasses = schema.getValidClasses();\n if (settings.validate && validClasses) {\n parser.addAttributeFilter('class', nodes => {\n var _a;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const clazz = (_a = node.attr('class')) !== null && _a !== void 0 ? _a : '';\n const classList = Tools.explode(clazz, ' ');\n let classValue = '';\n for (let ci = 0; ci < classList.length; ci++) {\n const className = classList[ci];\n let valid = false;\n let validClassesMap = validClasses['*'];\n if (validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n validClassesMap = validClasses[node.name];\n if (!valid && validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n if (valid) {\n if (classValue) {\n classValue += ' ';\n }\n classValue += className;\n }\n }\n if (!classValue.length) {\n classValue = null;\n }\n node.attr('class', classValue);\n }\n });\n }\n registerBase64ImageFilter(parser, settings);\n const shouldSandboxIframes = (_a = settings.sandbox_iframes) !== null && _a !== void 0 ? _a : false;\n const sandboxIframesExclusions = unique$1((_b = settings.sandbox_iframes_exclusions) !== null && _b !== void 0 ? _b : []);\n if (settings.convert_unsafe_embeds) {\n parser.addNodeFilter('object,embed', nodes => each$e(nodes, node => {\n node.replace(createSafeEmbed({\n type: node.attr('type'),\n src: node.name === 'object' ? node.attr('data') : node.attr('src'),\n width: node.attr('width'),\n height: node.attr('height')\n }, shouldSandboxIframes, sandboxIframesExclusions));\n }));\n }\n if (shouldSandboxIframes) {\n parser.addNodeFilter('iframe', nodes => each$e(nodes, node => sandboxIframe(node, sandboxIframesExclusions)));\n }\n };\n\n /*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create: create$7\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n\n /**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\n function clone(object) {\n const newObject = create$7(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT\n });\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '3.1.7';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create$7(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function _isNode(object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n const {\n attributes\n } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n const initValue = value;\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n const each$4 = Tools.each, trim = Tools.trim;\n const queryParts = [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor'\n ];\n const DEFAULT_PORTS = {\n ftp: 21,\n http: 80,\n https: 443,\n mailto: 25\n };\n const safeSvgDataUrlElements = [\n 'img',\n 'video'\n ];\n const blockSvgDataUris = (allowSvgDataUrls, tagName) => {\n if (isNonNullable(allowSvgDataUrls)) {\n return !allowSvgDataUrls;\n } else {\n return isNonNullable(tagName) ? !contains$2(safeSvgDataUrlElements, tagName) : true;\n }\n };\n const decodeUri = encodedUri => {\n try {\n return decodeURIComponent(encodedUri);\n } catch (ex) {\n return unescape(encodedUri);\n }\n };\n const isInvalidUri = (settings, uri, tagName) => {\n const decodedUri = decodeUri(uri).replace(/\\s/g, '');\n if (settings.allow_script_urls) {\n return false;\n } else if (/((java|vb)script|mhtml):/i.test(decodedUri)) {\n return true;\n } else if (settings.allow_html_data_urls) {\n return false;\n } else if (/^data:image\\//i.test(decodedUri)) {\n return blockSvgDataUris(settings.allow_svg_data_urls, tagName) && /^data:image\\/svg\\+xml/i.test(decodedUri);\n } else {\n return /^data:/i.test(decodedUri);\n }\n };\n class URI {\n static parseDataUri(uri) {\n let type;\n const uriComponents = decodeURIComponent(uri).split(',');\n const matches = /data:([^;]+)/.exec(uriComponents[0]);\n if (matches) {\n type = matches[1];\n }\n return {\n type,\n data: uriComponents[1]\n };\n }\n static isDomSafe(uri, context, options = {}) {\n if (options.allow_script_urls) {\n return true;\n } else {\n const decodedUri = Entities.decode(uri).replace(/[\\s\\u0000-\\u001F]+/g, '');\n return !isInvalidUri(options, decodedUri, context);\n }\n }\n static getDocumentBaseUrl(loc) {\n var _a;\n let baseUrl;\n if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\n baseUrl = (_a = loc.href) !== null && _a !== void 0 ? _a : '';\n } else {\n baseUrl = loc.protocol + '//' + loc.host + loc.pathname;\n }\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\n baseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(baseUrl)) {\n baseUrl += '/';\n }\n }\n return baseUrl;\n }\n constructor(url, settings = {}) {\n this.path = '';\n this.directory = '';\n url = trim(url);\n this.settings = settings;\n const baseUri = settings.base_uri;\n const self = this;\n if (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\n self.source = url;\n return;\n }\n const isProtocolRelative = url.indexOf('//') === 0;\n if (url.indexOf('/') === 0 && !isProtocolRelative) {\n url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\n }\n if (!/^[\\w\\-]*:?\\/\\//.test(url)) {\n const baseUrl = baseUri ? baseUri.path : new URI(document.location.href).directory;\n if ((baseUri === null || baseUri === void 0 ? void 0 : baseUri.protocol) === '') {\n url = '//mce_host' + self.toAbsPath(baseUrl, url);\n } else {\n const match = /([^#?]*)([#?]?.*)/.exec(url);\n if (match) {\n url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2];\n }\n }\n }\n url = url.replace(/@@/g, '(mce_at)');\n const urlMatch = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?(\\[[a-zA-Z0-9:.%]+\\]|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\n if (urlMatch) {\n each$4(queryParts, (v, i) => {\n let part = urlMatch[i];\n if (part) {\n part = part.replace(/\\(mce_at\\)/g, '@@');\n }\n self[v] = part;\n });\n }\n if (baseUri) {\n if (!self.protocol) {\n self.protocol = baseUri.protocol;\n }\n if (!self.userInfo) {\n self.userInfo = baseUri.userInfo;\n }\n if (!self.port && self.host === 'mce_host') {\n self.port = baseUri.port;\n }\n if (!self.host || self.host === 'mce_host') {\n self.host = baseUri.host;\n }\n self.source = '';\n }\n if (isProtocolRelative) {\n self.protocol = '';\n }\n }\n setPath(path) {\n const pathMatch = /^(.*?)\\/?(\\w+)?$/.exec(path);\n if (pathMatch) {\n this.path = pathMatch[0];\n this.directory = pathMatch[1];\n this.file = pathMatch[2];\n }\n this.source = '';\n this.getURI();\n }\n toRelative(uri) {\n if (uri === './') {\n return uri;\n }\n const relativeUri = new URI(uri, { base_uri: this });\n if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') {\n return relativeUri.getURI();\n }\n const tu = this.getURI(), uu = relativeUri.getURI();\n if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {\n return tu;\n }\n let output = this.toRelPath(this.path, relativeUri.path);\n if (relativeUri.query) {\n output += '?' + relativeUri.query;\n }\n if (relativeUri.anchor) {\n output += '#' + relativeUri.anchor;\n }\n return output;\n }\n toAbsolute(uri, noHost) {\n const absoluteUri = new URI(uri, { base_uri: this });\n return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri));\n }\n isSameOrigin(uri) {\n if (this.host == uri.host && this.protocol == uri.protocol) {\n if (this.port == uri.port) {\n return true;\n }\n const defaultPort = this.protocol ? DEFAULT_PORTS[this.protocol] : null;\n if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) {\n return true;\n }\n }\n return false;\n }\n toRelPath(base, path) {\n let breakPoint = 0, out = '', i, l;\n const normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/');\n const items = path.split('/');\n if (normalizedBase.length >= items.length) {\n for (i = 0, l = normalizedBase.length; i < l; i++) {\n if (i >= items.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (normalizedBase.length < items.length) {\n for (i = 0, l = items.length; i < l; i++) {\n if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (breakPoint === 1) {\n return path;\n }\n for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) {\n out += '../';\n }\n for (i = breakPoint - 1, l = items.length; i < l; i++) {\n if (i !== breakPoint - 1) {\n out += '/' + items[i];\n } else {\n out += items[i];\n }\n }\n return out;\n }\n toAbsPath(base, path) {\n let nb = 0;\n const tr = /\\/$/.test(path) ? '/' : '';\n const normalizedBase = base.split('/');\n const normalizedPath = path.split('/');\n const baseParts = [];\n each$4(normalizedBase, k => {\n if (k) {\n baseParts.push(k);\n }\n });\n const pathParts = [];\n for (let i = normalizedPath.length - 1; i >= 0; i--) {\n if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') {\n continue;\n }\n if (normalizedPath[i] === '..') {\n nb++;\n continue;\n }\n if (nb > 0) {\n nb--;\n continue;\n }\n pathParts.push(normalizedPath[i]);\n }\n const i = baseParts.length - nb;\n let outPath;\n if (i <= 0) {\n outPath = reverse(pathParts).join('/');\n } else {\n outPath = baseParts.slice(0, i).join('/') + '/' + reverse(pathParts).join('/');\n }\n if (outPath.indexOf('/') !== 0) {\n outPath = '/' + outPath;\n }\n if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\n outPath += tr;\n }\n return outPath;\n }\n getURI(noProtoHost = false) {\n let s;\n if (!this.source || noProtoHost) {\n s = '';\n if (!noProtoHost) {\n if (this.protocol) {\n s += this.protocol + '://';\n } else {\n s += '//';\n }\n if (this.userInfo) {\n s += this.userInfo + '@';\n }\n if (this.host) {\n s += this.host;\n }\n if (this.port) {\n s += ':' + this.port;\n }\n }\n if (this.path) {\n s += this.path;\n }\n if (this.query) {\n s += '?' + this.query;\n }\n if (this.anchor) {\n s += '#' + this.anchor;\n }\n this.source = s;\n }\n return this.source;\n }\n }\n\n const filteredUrlAttrs = Tools.makeMap('src,href,data,background,action,formaction,poster,xlink:href');\n const internalElementAttr = 'data-mce-type';\n let uid = 0;\n const processNode = (node, settings, schema, scope, evt) => {\n var _a, _b, _c, _d;\n const validate = settings.validate;\n const specialElements = schema.getSpecialElements();\n if (node.nodeType === COMMENT && !settings.allow_conditional_comments && /^\\[if/i.test((_a = node.nodeValue) !== null && _a !== void 0 ? _a : '')) {\n node.nodeValue = ' ' + node.nodeValue;\n }\n const lcTagName = (_b = evt === null || evt === void 0 ? void 0 : evt.tagName) !== null && _b !== void 0 ? _b : node.nodeName.toLowerCase();\n if (scope !== 'html' && schema.isValid(scope)) {\n if (isNonNullable(evt)) {\n evt.allowedTags[lcTagName] = true;\n }\n return;\n }\n if (node.nodeType !== ELEMENT || lcTagName === 'body') {\n return;\n }\n const element = SugarElement.fromDom(node);\n const isInternalElement = has$1(element, internalElementAttr);\n const bogus = get$9(element, 'data-mce-bogus');\n if (!isInternalElement && isString(bogus)) {\n if (bogus === 'all') {\n remove$4(element);\n } else {\n unwrap(element);\n }\n return;\n }\n const rule = schema.getElementRule(lcTagName);\n if (validate && !rule) {\n if (has$2(specialElements, lcTagName)) {\n remove$4(element);\n } else {\n unwrap(element);\n }\n return;\n } else {\n if (isNonNullable(evt)) {\n evt.allowedTags[lcTagName] = true;\n }\n }\n if (validate && rule && !isInternalElement) {\n each$e((_c = rule.attributesForced) !== null && _c !== void 0 ? _c : [], attr => {\n set$3(element, attr.name, attr.value === '{$uid}' ? `mce_${ uid++ }` : attr.value);\n });\n each$e((_d = rule.attributesDefault) !== null && _d !== void 0 ? _d : [], attr => {\n if (!has$1(element, attr.name)) {\n set$3(element, attr.name, attr.value === '{$uid}' ? `mce_${ uid++ }` : attr.value);\n }\n });\n if (rule.attributesRequired && !exists(rule.attributesRequired, attr => has$1(element, attr))) {\n unwrap(element);\n return;\n }\n if (rule.removeEmptyAttrs && hasNone(element)) {\n unwrap(element);\n return;\n }\n if (rule.outputName && rule.outputName !== lcTagName) {\n mutate(element, rule.outputName);\n }\n }\n };\n const processAttr = (ele, settings, schema, scope, evt) => {\n const tagName = ele.tagName.toLowerCase();\n const {attrName, attrValue} = evt;\n evt.keepAttr = shouldKeepAttribute(settings, schema, scope, tagName, attrName, attrValue);\n if (evt.keepAttr) {\n evt.allowedAttributes[attrName] = true;\n if (isBooleanAttribute(attrName, schema)) {\n evt.attrValue = attrName;\n }\n if (settings.allow_svg_data_urls && startsWith(attrValue, 'data:image/svg+xml')) {\n evt.forceKeepAttr = true;\n }\n } else if (isRequiredAttributeOfInternalElement(ele, attrName)) {\n evt.forceKeepAttr = true;\n }\n };\n const shouldKeepAttribute = (settings, schema, scope, tagName, attrName, attrValue) => {\n if (scope !== 'html' && !isNonHtmlElementRootName(tagName)) {\n return true;\n }\n return !(attrName in filteredUrlAttrs && isInvalidUri(settings, attrValue, tagName)) && (!settings.validate || schema.isValid(tagName, attrName) || startsWith(attrName, 'data-') || startsWith(attrName, 'aria-'));\n };\n const isRequiredAttributeOfInternalElement = (ele, attrName) => ele.hasAttribute(internalElementAttr) && (attrName === 'id' || attrName === 'class' || attrName === 'style');\n const isBooleanAttribute = (attrName, schema) => attrName in schema.getBoolAttrs();\n const filterAttributes = (ele, settings, schema, scope) => {\n const {attributes} = ele;\n for (let i = attributes.length - 1; i >= 0; i--) {\n const attr = attributes[i];\n const attrName = attr.name;\n const attrValue = attr.value;\n if (!shouldKeepAttribute(settings, schema, scope, ele.tagName.toLowerCase(), attrName, attrValue) && !isRequiredAttributeOfInternalElement(ele, attrName)) {\n ele.removeAttribute(attrName);\n } else if (isBooleanAttribute(attrName, schema)) {\n ele.setAttribute(attrName, attrName);\n }\n }\n };\n const setupPurify = (settings, schema, namespaceTracker) => {\n const purify$1 = purify();\n purify$1.addHook('uponSanitizeElement', (ele, evt) => {\n processNode(ele, settings, schema, namespaceTracker.track(ele), evt);\n });\n purify$1.addHook('uponSanitizeAttribute', (ele, evt) => {\n processAttr(ele, settings, schema, namespaceTracker.current(), evt);\n });\n return purify$1;\n };\n const getPurifyConfig = (settings, mimeType) => {\n const basePurifyConfig = {\n IN_PLACE: true,\n ALLOW_UNKNOWN_PROTOCOLS: true,\n ALLOWED_TAGS: [\n '#comment',\n '#cdata-section',\n 'body'\n ],\n ALLOWED_ATTR: [],\n SAFE_FOR_XML: false\n };\n const config = { ...basePurifyConfig };\n config.PARSER_MEDIA_TYPE = mimeType;\n if (settings.allow_script_urls) {\n config.ALLOWED_URI_REGEXP = /.*/;\n } else if (settings.allow_html_data_urls) {\n config.ALLOWED_URI_REGEXP = /^(?!(\\w+script|mhtml):)/i;\n }\n return config;\n };\n const sanitizeSvgElement = ele => {\n const xlinkAttrs = [\n 'type',\n 'href',\n 'role',\n 'arcrole',\n 'title',\n 'show',\n 'actuate',\n 'label',\n 'from',\n 'to'\n ].map(name => `xlink:${ name }`);\n const config = {\n IN_PLACE: true,\n USE_PROFILES: {\n html: true,\n svg: true,\n svgFilters: true\n },\n ALLOWED_ATTR: xlinkAttrs\n };\n purify().sanitize(ele, config);\n };\n const sanitizeMathmlElement = (node, settings) => {\n const config = {\n IN_PLACE: true,\n USE_PROFILES: { mathMl: true }\n };\n const purify$1 = purify();\n purify$1.addHook('uponSanitizeElement', (node, evt) => {\n var _a;\n const lcTagName = (_a = evt.tagName) !== null && _a !== void 0 ? _a : node.nodeName.toLowerCase();\n const allowedEncodings = settings.allow_mathml_annotation_encodings;\n if (lcTagName === 'annotation' && isArray$1(allowedEncodings) && allowedEncodings.length > 0) {\n const encoding = node.getAttribute('encoding');\n if (isString(encoding) && contains$2(allowedEncodings, encoding)) {\n evt.allowedTags[lcTagName] = true;\n }\n }\n });\n purify$1.sanitize(node, config);\n };\n const mkSanitizeNamespaceElement = settings => ele => {\n const namespaceType = toScopeType(ele);\n if (namespaceType === 'svg') {\n sanitizeSvgElement(ele);\n } else if (namespaceType === 'math') {\n sanitizeMathmlElement(ele, settings);\n } else {\n throw new Error('Not a namespace element');\n }\n };\n const getSanitizer = (settings, schema) => {\n const namespaceTracker = createNamespaceTracker();\n if (settings.sanitize) {\n const purify = setupPurify(settings, schema, namespaceTracker);\n const sanitizeHtmlElement = (body, mimeType) => {\n purify.sanitize(body, getPurifyConfig(settings, mimeType));\n purify.removed = [];\n namespaceTracker.reset();\n };\n return {\n sanitizeHtmlElement,\n sanitizeNamespaceElement: mkSanitizeNamespaceElement(settings)\n };\n } else {\n const sanitizeHtmlElement = (body, _mimeType) => {\n const nodeIterator = document.createNodeIterator(body, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT);\n let node;\n while (node = nodeIterator.nextNode()) {\n const currentScope = namespaceTracker.track(node);\n processNode(node, settings, schema, currentScope);\n if (isElement$6(node)) {\n filterAttributes(node, settings, schema, currentScope);\n }\n }\n namespaceTracker.reset();\n };\n const sanitizeNamespaceElement = noop;\n return {\n sanitizeHtmlElement,\n sanitizeNamespaceElement\n };\n }\n };\n\n const makeMap = Tools.makeMap, extend$1 = Tools.extend;\n const transferChildren = (parent, nativeParent, specialElements, nsSanitizer) => {\n const parentName = parent.name;\n const isSpecial = parentName in specialElements && parentName !== 'title' && parentName !== 'textarea' && parentName !== 'noscript';\n const childNodes = nativeParent.childNodes;\n for (let ni = 0, nl = childNodes.length; ni < nl; ni++) {\n const nativeChild = childNodes[ni];\n const child = new AstNode(nativeChild.nodeName.toLowerCase(), nativeChild.nodeType);\n if (isElement$6(nativeChild)) {\n const attributes = nativeChild.attributes;\n for (let ai = 0, al = attributes.length; ai < al; ai++) {\n const attr = attributes[ai];\n child.attr(attr.name, attr.value);\n }\n if (isNonHtmlElementRootName(child.name)) {\n nsSanitizer(nativeChild);\n child.value = nativeChild.innerHTML;\n }\n } else if (isText$b(nativeChild)) {\n child.value = nativeChild.data;\n if (isSpecial) {\n child.raw = true;\n }\n } else if (isComment(nativeChild) || isCData(nativeChild) || isPi(nativeChild)) {\n child.value = nativeChild.data;\n }\n if (!isNonHtmlElementRootName(child.name)) {\n transferChildren(child, nativeChild, specialElements, nsSanitizer);\n }\n parent.append(child);\n }\n };\n const walkTree = (root, preprocessors, postprocessors) => {\n const traverseOrder = [];\n for (let node = root, lastNode = node; node; lastNode = node, node = node.walk()) {\n const tempNode = node;\n each$e(preprocessors, preprocess => preprocess(tempNode));\n if (isNullable(tempNode.parent) && tempNode !== root) {\n node = lastNode;\n } else {\n traverseOrder.push(tempNode);\n }\n }\n for (let i = traverseOrder.length - 1; i >= 0; i--) {\n const node = traverseOrder[i];\n each$e(postprocessors, postprocess => postprocess(node));\n }\n };\n const whitespaceCleaner = (root, schema, settings, args) => {\n const validate = settings.validate;\n const nonEmptyElements = schema.getNonEmptyElements();\n const whitespaceElements = schema.getWhitespaceElements();\n const blockElements = extend$1(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n const textRootBlockElements = getTextRootBlockElements(schema);\n const allWhiteSpaceRegExp = /[ \\t\\r\\n]+/g;\n const startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n const endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n const hasWhitespaceParent = node => {\n let tempNode = node.parent;\n while (isNonNullable(tempNode)) {\n if (tempNode.name in whitespaceElements) {\n return true;\n } else {\n tempNode = tempNode.parent;\n }\n }\n return false;\n };\n const isTextRootBlockEmpty = node => {\n let tempNode = node;\n while (isNonNullable(tempNode)) {\n if (tempNode.name in textRootBlockElements) {\n return isEmpty(schema, nonEmptyElements, whitespaceElements, tempNode);\n } else {\n tempNode = tempNode.parent;\n }\n }\n return false;\n };\n const isBlock = node => node.name in blockElements || isTransparentAstBlock(schema, node) || isNonHtmlElementRootName(node.name) && node.parent === root;\n const isAtEdgeOfBlock = (node, start) => {\n const neighbour = start ? node.prev : node.next;\n if (isNonNullable(neighbour) || isNullable(node.parent)) {\n return false;\n }\n return isBlock(node.parent) && (node.parent !== root || args.isRootContent === true);\n };\n const preprocess = node => {\n var _a;\n if (node.type === 3) {\n if (!hasWhitespaceParent(node)) {\n let text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n text = text.replace(allWhiteSpaceRegExp, ' ');\n if (isLineBreakNode(node.prev, isBlock) || isAtEdgeOfBlock(node, true)) {\n text = text.replace(startWhiteSpaceRegExp, '');\n }\n if (text.length === 0) {\n node.remove();\n } else if (text === ' ' && node.prev && node.prev.type === COMMENT && node.next && node.next.type === COMMENT) {\n node.remove();\n } else {\n node.value = text;\n }\n }\n }\n };\n const postprocess = node => {\n var _a;\n if (node.type === 1) {\n const elementRule = schema.getElementRule(node.name);\n if (validate && elementRule) {\n const isNodeEmpty = isEmpty(schema, nonEmptyElements, whitespaceElements, node);\n if (elementRule.paddInEmptyBlock && isNodeEmpty && isTextRootBlockEmpty(node)) {\n paddEmptyNode(settings, args, isBlock, node);\n } else if (elementRule.removeEmpty && isNodeEmpty) {\n if (isBlock(node)) {\n node.remove();\n } else {\n node.unwrap();\n }\n } else if (elementRule.paddEmpty && (isNodeEmpty || isPaddedWithNbsp(node))) {\n paddEmptyNode(settings, args, isBlock, node);\n }\n }\n } else if (node.type === 3) {\n if (!hasWhitespaceParent(node)) {\n let text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n if (node.next && isBlock(node.next) || isAtEdgeOfBlock(node, false)) {\n text = text.replace(endWhiteSpaceRegExp, '');\n }\n if (text.length === 0) {\n node.remove();\n } else {\n node.value = text;\n }\n }\n }\n };\n return [\n preprocess,\n postprocess\n ];\n };\n const getRootBlockName = (settings, args) => {\n var _a;\n const name = (_a = args.forced_root_block) !== null && _a !== void 0 ? _a : settings.forced_root_block;\n if (name === false) {\n return '';\n } else if (name === true) {\n return 'p';\n } else {\n return name;\n }\n };\n const DomParser = (settings = {}, schema = Schema()) => {\n const nodeFilterRegistry = create$8();\n const attributeFilterRegistry = create$8();\n const defaultedSettings = {\n validate: true,\n root_name: 'body',\n sanitize: true,\n ...settings\n };\n const parser = new DOMParser();\n const sanitizer = getSanitizer(defaultedSettings, schema);\n const parseAndSanitizeWithContext = (html, rootName, format = 'html') => {\n const mimeType = format === 'xhtml' ? 'application/xhtml+xml' : 'text/html';\n const isSpecialRoot = has$2(schema.getSpecialElements(), rootName.toLowerCase());\n const content = isSpecialRoot ? `<${ rootName }>${ html }` : html;\n const makeWrap = () => {\n if (format === 'xhtml') {\n return `${ content }`;\n } else if (/^[\\s]*${ content }`;\n } else {\n return `${ content }`;\n }\n };\n const body = parser.parseFromString(makeWrap(), mimeType).body;\n sanitizer.sanitizeHtmlElement(body, mimeType);\n return isSpecialRoot ? body.firstChild : body;\n };\n const addNodeFilter = nodeFilterRegistry.addFilter;\n const getNodeFilters = nodeFilterRegistry.getFilters;\n const removeNodeFilter = nodeFilterRegistry.removeFilter;\n const addAttributeFilter = attributeFilterRegistry.addFilter;\n const getAttributeFilters = attributeFilterRegistry.getFilters;\n const removeAttributeFilter = attributeFilterRegistry.removeFilter;\n const findInvalidChildren = (node, invalidChildren) => {\n if (isInvalid(schema, node)) {\n invalidChildren.push(node);\n }\n };\n const isWrappableNode = (blockElements, node) => {\n const isInternalElement = isString(node.attr(internalElementAttr));\n const isInlineElement = node.type === 1 && (!has$2(blockElements, node.name) && !isTransparentAstBlock(schema, node)) && !isNonHtmlElementRootName(node.name);\n return node.type === 3 || isInlineElement && !isInternalElement;\n };\n const addRootBlocks = (rootNode, rootBlockName) => {\n const blockElements = extend$1(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n const startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n const endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n let node = rootNode.firstChild, rootBlockNode = null;\n const trim = rootBlock => {\n var _a, _b;\n if (rootBlock) {\n node = rootBlock.firstChild;\n if (node && node.type === 3) {\n node.value = (_a = node.value) === null || _a === void 0 ? void 0 : _a.replace(startWhiteSpaceRegExp, '');\n }\n node = rootBlock.lastChild;\n if (node && node.type === 3) {\n node.value = (_b = node.value) === null || _b === void 0 ? void 0 : _b.replace(endWhiteSpaceRegExp, '');\n }\n }\n };\n if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) {\n return;\n }\n while (node) {\n const next = node.next;\n if (isWrappableNode(blockElements, node)) {\n if (!rootBlockNode) {\n rootBlockNode = new AstNode(rootBlockName, 1);\n rootBlockNode.attr(defaultedSettings.forced_root_block_attrs);\n rootNode.insert(rootBlockNode, node);\n rootBlockNode.append(node);\n } else {\n rootBlockNode.append(node);\n }\n } else {\n trim(rootBlockNode);\n rootBlockNode = null;\n }\n node = next;\n }\n trim(rootBlockNode);\n };\n const parse = (html, args = {}) => {\n var _a;\n const validate = defaultedSettings.validate;\n const rootName = (_a = args.context) !== null && _a !== void 0 ? _a : defaultedSettings.root_name;\n const element = parseAndSanitizeWithContext(html, rootName, args.format);\n updateChildren(schema, element);\n const rootNode = new AstNode(rootName, 11);\n transferChildren(rootNode, element, schema.getSpecialElements(), sanitizer.sanitizeNamespaceElement);\n element.innerHTML = '';\n const [whitespacePre, whitespacePost] = whitespaceCleaner(rootNode, schema, defaultedSettings, args);\n const invalidChildren = [];\n const invalidFinder = validate ? node => findInvalidChildren(node, invalidChildren) : noop;\n const matches = {\n nodes: {},\n attributes: {}\n };\n const matchFinder = node => matchNode$1(getNodeFilters(), getAttributeFilters(), node, matches);\n walkTree(rootNode, [\n whitespacePre,\n matchFinder\n ], [\n whitespacePost,\n invalidFinder\n ]);\n invalidChildren.reverse();\n if (validate && invalidChildren.length > 0) {\n if (args.context) {\n const {\n pass: topLevelChildren,\n fail: otherChildren\n } = partition$2(invalidChildren, child => child.parent === rootNode);\n cleanInvalidNodes(otherChildren, schema, rootNode, matchFinder);\n args.invalid = topLevelChildren.length > 0;\n } else {\n cleanInvalidNodes(invalidChildren, schema, rootNode, matchFinder);\n }\n }\n const rootBlockName = getRootBlockName(defaultedSettings, args);\n if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) {\n addRootBlocks(rootNode, rootBlockName);\n }\n if (!args.invalid) {\n runFilters(matches, args);\n }\n return rootNode;\n };\n const exports = {\n schema,\n addAttributeFilter,\n getAttributeFilters,\n removeAttributeFilter,\n addNodeFilter,\n getNodeFilters,\n removeNodeFilter,\n parse\n };\n register$4(exports, defaultedSettings);\n register$5(exports, defaultedSettings, schema);\n return exports;\n };\n\n const serializeContent = content => isTreeNode(content) ? HtmlSerializer({ validate: false }).serialize(content) : content;\n const withSerializedContent = (content, fireEvent, parserSettings) => {\n const serializedContent = serializeContent(content);\n const eventArgs = fireEvent(serializedContent);\n if (eventArgs.isDefaultPrevented()) {\n return eventArgs;\n } else if (isTreeNode(content)) {\n if (eventArgs.content !== serializedContent) {\n const rootNode = DomParser({\n validate: false,\n forced_root_block: false,\n ...parserSettings\n }).parse(eventArgs.content, { context: content.name });\n return {\n ...eventArgs,\n content: rootNode\n };\n } else {\n return {\n ...eventArgs,\n content\n };\n }\n } else {\n return eventArgs;\n }\n };\n const makeParserSettings = editor => ({\n sanitize: shouldSanitizeXss(editor),\n sandbox_iframes: shouldSandboxIframes(editor),\n sandbox_iframes_exclusions: getSandboxIframesExclusions(editor)\n });\n const preProcessGetContent = (editor, args) => {\n if (args.no_events) {\n return Result.value(args);\n } else {\n const eventArgs = fireBeforeGetContent(editor, args);\n if (eventArgs.isDefaultPrevented()) {\n return Result.error(fireGetContent(editor, {\n content: '',\n ...eventArgs\n }).content);\n } else {\n return Result.value(eventArgs);\n }\n }\n };\n const postProcessGetContent = (editor, content, args) => {\n if (args.no_events) {\n return content;\n } else {\n const processedEventArgs = withSerializedContent(content, content => fireGetContent(editor, {\n ...args,\n content\n }), makeParserSettings(editor));\n return processedEventArgs.content;\n }\n };\n const preProcessSetContent = (editor, args) => {\n if (args.no_events) {\n return Result.value(args);\n } else {\n const processedEventArgs = withSerializedContent(args.content, content => fireBeforeSetContent(editor, {\n ...args,\n content\n }), makeParserSettings(editor));\n if (processedEventArgs.isDefaultPrevented()) {\n fireSetContent(editor, processedEventArgs);\n return Result.error(undefined);\n } else {\n return Result.value(processedEventArgs);\n }\n }\n };\n const postProcessSetContent = (editor, content, args) => {\n if (!args.no_events) {\n fireSetContent(editor, {\n ...args,\n content\n });\n }\n };\n\n const tableModel = (element, width, rows) => ({\n element,\n width,\n rows\n });\n const tableRow = (element, cells) => ({\n element,\n cells\n });\n const cellPosition = (x, y) => ({\n x,\n y\n });\n const getSpan = (td, key) => {\n return getOpt(td, key).bind(toInt).getOr(1);\n };\n const fillout = (table, x, y, tr, td) => {\n const rowspan = getSpan(td, 'rowspan');\n const colspan = getSpan(td, 'colspan');\n const rows = table.rows;\n for (let y2 = y; y2 < y + rowspan; y2++) {\n if (!rows[y2]) {\n rows[y2] = tableRow(deep$1(tr), []);\n }\n for (let x2 = x; x2 < x + colspan; x2++) {\n const cells = rows[y2].cells;\n cells[x2] = y2 === y && x2 === x ? td : shallow$1(td);\n }\n }\n };\n const cellExists = (table, x, y) => {\n const rows = table.rows;\n const cells = rows[y] ? rows[y].cells : [];\n return !!cells[x];\n };\n const skipCellsX = (table, x, y) => {\n while (cellExists(table, x, y)) {\n x++;\n }\n return x;\n };\n const getWidth = rows => {\n return foldl(rows, (acc, row) => {\n return row.cells.length > acc ? row.cells.length : acc;\n }, 0);\n };\n const findElementPos = (table, element) => {\n const rows = table.rows;\n for (let y = 0; y < rows.length; y++) {\n const cells = rows[y].cells;\n for (let x = 0; x < cells.length; x++) {\n if (eq(cells[x], element)) {\n return Optional.some(cellPosition(x, y));\n }\n }\n }\n return Optional.none();\n };\n const extractRows = (table, sx, sy, ex, ey) => {\n const newRows = [];\n const rows = table.rows;\n for (let y = sy; y <= ey; y++) {\n const cells = rows[y].cells;\n const slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1);\n newRows.push(tableRow(rows[y].element, slice));\n }\n return newRows;\n };\n const subTable = (table, startPos, endPos) => {\n const sx = startPos.x, sy = startPos.y;\n const ex = endPos.x, ey = endPos.y;\n const newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy);\n return tableModel(table.element, getWidth(newRows), newRows);\n };\n const createDomTable = (table, rows) => {\n const tableElement = shallow$1(table.element);\n const tableBody = SugarElement.fromTag('tbody');\n append(tableBody, rows);\n append$1(tableElement, tableBody);\n return tableElement;\n };\n const modelRowsToDomRows = table => {\n return map$3(table.rows, row => {\n const cells = map$3(row.cells, cell => {\n const td = deep$1(cell);\n remove$9(td, 'colspan');\n remove$9(td, 'rowspan');\n return td;\n });\n const tr = shallow$1(row.element);\n append(tr, cells);\n return tr;\n });\n };\n const fromDom = tableElm => {\n const table = tableModel(shallow$1(tableElm), 0, []);\n each$e(descendants(tableElm, 'tr'), (tr, y) => {\n each$e(descendants(tr, 'td,th'), (td, x) => {\n fillout(table, skipCellsX(table, x, y), y, tr, td);\n });\n });\n return tableModel(table.element, getWidth(table.rows), table.rows);\n };\n const toDom = table => {\n return createDomTable(table, modelRowsToDomRows(table));\n };\n const subsection = (table, startElement, endElement) => {\n return findElementPos(table, startElement).bind(startPos => {\n return findElementPos(table, endElement).map(endPos => {\n return subTable(table, startPos, endPos);\n });\n });\n };\n\n const findParentListContainer = parents => find$2(parents, elm => name(elm) === 'ul' || name(elm) === 'ol');\n const getFullySelectedListWrappers = (parents, rng) => find$2(parents, elm => name(elm) === 'li' && hasAllContentsSelected(elm, rng)).fold(constant([]), _li => findParentListContainer(parents).map(listCont => {\n const listElm = SugarElement.fromTag(name(listCont));\n const listStyles = filter$4(getAllRaw(listCont), (_style, name) => startsWith(name, 'list-style'));\n setAll(listElm, listStyles);\n return [\n SugarElement.fromTag('li'),\n listElm\n ];\n }).getOr([]));\n const wrap = (innerElm, elms) => {\n const wrapped = foldl(elms, (acc, elm) => {\n append$1(elm, acc);\n return elm;\n }, innerElm);\n return elms.length > 0 ? fromElements([wrapped]) : wrapped;\n };\n const directListWrappers = commonAnchorContainer => {\n if (isListItem$1(commonAnchorContainer)) {\n return parent(commonAnchorContainer).filter(isList).fold(constant([]), listElm => [\n commonAnchorContainer,\n listElm\n ]);\n } else {\n return isList(commonAnchorContainer) ? [commonAnchorContainer] : [];\n }\n };\n const getWrapElements = (rootNode, rng, schema) => {\n const commonAnchorContainer = SugarElement.fromDom(rng.commonAncestorContainer);\n const parents = parentsAndSelf(commonAnchorContainer, rootNode);\n const wrapElements = filter$5(parents, el => schema.isWrapper(name(el)));\n const listWrappers = getFullySelectedListWrappers(parents, rng);\n const allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));\n return map$3(allWrappers, shallow$1);\n };\n const emptyFragment = () => fromElements([]);\n const getFragmentFromRange = (rootNode, rng, schema) => wrap(SugarElement.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng, schema));\n const getParentTable = (rootElm, cell) => ancestor$3(cell, 'table', curry(eq, rootElm));\n const getTableFragment = (rootNode, selectedTableCells) => getParentTable(rootNode, selectedTableCells[0]).bind(tableElm => {\n const firstCell = selectedTableCells[0];\n const lastCell = selectedTableCells[selectedTableCells.length - 1];\n const fullTableModel = fromDom(tableElm);\n return subsection(fullTableModel, firstCell, lastCell).map(sectionedTableModel => fromElements([toDom(sectionedTableModel)]));\n }).getOrThunk(emptyFragment);\n const getSelectionFragment = (rootNode, ranges, schema) => ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0], schema);\n const read$3 = (rootNode, ranges, schema) => {\n const selectedCells = getCellsFromElementOrRanges(ranges, rootNode);\n return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges, schema);\n };\n\n const isCollapsibleWhitespace = (text, index) => index >= 0 && index < text.length && isWhiteSpace(text.charAt(index));\n const getInnerText = bin => {\n return trim$2(bin.innerText);\n };\n const getContextNodeName = parentBlockOpt => parentBlockOpt.map(block => block.nodeName).getOr('div').toLowerCase();\n const getTextContent = editor => Optional.from(editor.selection.getRng()).map(rng => {\n var _a;\n const parentBlockOpt = Optional.from(editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock));\n const body = editor.getBody();\n const contextNodeName = getContextNodeName(parentBlockOpt);\n const rangeContentClone = SugarElement.fromDom(rng.cloneContents());\n cleanupBogusElements(rangeContentClone);\n cleanupInputNames(rangeContentClone);\n const bin = editor.dom.add(body, contextNodeName, {\n 'data-mce-bogus': 'all',\n 'style': 'overflow: hidden; opacity: 0;'\n }, rangeContentClone.dom);\n const text = getInnerText(bin);\n const nonRenderedText = trim$2((_a = bin.textContent) !== null && _a !== void 0 ? _a : '');\n editor.dom.remove(bin);\n if (isCollapsibleWhitespace(nonRenderedText, 0) || isCollapsibleWhitespace(nonRenderedText, nonRenderedText.length - 1)) {\n const parentBlock = parentBlockOpt.getOr(body);\n const parentBlockText = getInnerText(parentBlock);\n const textIndex = parentBlockText.indexOf(text);\n if (textIndex === -1) {\n return text;\n } else {\n const hasProceedingSpace = isCollapsibleWhitespace(parentBlockText, textIndex - 1);\n const hasTrailingSpace = isCollapsibleWhitespace(parentBlockText, textIndex + text.length);\n return (hasProceedingSpace ? ' ' : '') + text + (hasTrailingSpace ? ' ' : '');\n }\n } else {\n return text;\n }\n }).getOr('');\n const getSerializedContent = (editor, args) => {\n const rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');\n const sel = editor.selection.getSel();\n const ranges = processRanges(editor, getRanges$1(sel));\n const fragment = args.contextual ? read$3(SugarElement.fromDom(editor.getBody()), ranges, editor.schema).dom : rng.cloneContents();\n if (fragment) {\n tmpElm.appendChild(fragment);\n }\n return editor.selection.serializer.serialize(tmpElm, args);\n };\n const extractSelectedContent = (editor, args) => {\n if (args.format === 'text') {\n return getTextContent(editor);\n } else {\n const content = getSerializedContent(editor, args);\n if (args.format === 'tree') {\n return content;\n } else {\n return editor.selection.isCollapsed() ? '' : content;\n }\n }\n };\n const setupArgs$3 = (args, format) => ({\n ...args,\n format,\n get: true,\n selection: true,\n getInner: true\n });\n const getSelectedContentInternal = (editor, format, args = {}) => {\n const defaultedArgs = setupArgs$3(args, format);\n return preProcessGetContent(editor, defaultedArgs).fold(identity, updatedArgs => {\n const content = extractSelectedContent(editor, updatedArgs);\n return postProcessGetContent(editor, content, updatedArgs);\n });\n };\n\n const KEEP = 0, INSERT = 1, DELETE = 2;\n const diff = (left, right) => {\n const size = left.length + right.length + 2;\n const vDown = new Array(size);\n const vUp = new Array(size);\n const snake = (start, end, diag) => {\n return {\n start,\n end,\n diag\n };\n };\n const buildScript = (start1, end1, start2, end2, script) => {\n const middle = getMiddleSnake(start1, end1, start2, end2);\n if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) {\n let i = start1;\n let j = start2;\n while (i < end1 || j < end2) {\n if (i < end1 && j < end2 && left[i] === right[j]) {\n script.push([\n KEEP,\n left[i]\n ]);\n ++i;\n ++j;\n } else {\n if (end1 - start1 > end2 - start2) {\n script.push([\n DELETE,\n left[i]\n ]);\n ++i;\n } else {\n script.push([\n INSERT,\n right[j]\n ]);\n ++j;\n }\n }\n }\n } else {\n buildScript(start1, middle.start, start2, middle.start - middle.diag, script);\n for (let i2 = middle.start; i2 < middle.end; ++i2) {\n script.push([\n KEEP,\n left[i2]\n ]);\n }\n buildScript(middle.end, end1, middle.end - middle.diag, end2, script);\n }\n };\n const buildSnake = (start, diag, end1, end2) => {\n let end = start;\n while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) {\n ++end;\n }\n return snake(start, end, diag);\n };\n const getMiddleSnake = (start1, end1, start2, end2) => {\n const m = end1 - start1;\n const n = end2 - start2;\n if (m === 0 || n === 0) {\n return null;\n }\n const delta = m - n;\n const sum = n + m;\n const offset = (sum % 2 === 0 ? sum : sum + 1) / 2;\n vDown[1 + offset] = start1;\n vUp[1 + offset] = end1 + 1;\n let d, k, i, x, y;\n for (d = 0; d <= offset; ++d) {\n for (k = -d; k <= d; k += 2) {\n i = k + offset;\n if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) {\n vDown[i] = vDown[i + 1];\n } else {\n vDown[i] = vDown[i - 1] + 1;\n }\n x = vDown[i];\n y = x - start1 + start2 - k;\n while (x < end1 && y < end2 && left[x] === right[y]) {\n vDown[i] = ++x;\n ++y;\n }\n if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) {\n if (vUp[i - delta] <= vDown[i]) {\n return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2);\n }\n }\n }\n for (k = delta - d; k <= delta + d; k += 2) {\n i = k + offset - delta;\n if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) {\n vUp[i] = vUp[i + 1] - 1;\n } else {\n vUp[i] = vUp[i - 1];\n }\n x = vUp[i] - 1;\n y = x - start1 + start2 - k;\n while (x >= start1 && y >= start2 && left[x] === right[y]) {\n vUp[i] = x--;\n y--;\n }\n if (delta % 2 === 0 && -d <= k && k <= d) {\n if (vUp[i] <= vDown[i + delta]) {\n return buildSnake(vUp[i], k + start1 - start2, end1, end2);\n }\n }\n }\n }\n return null;\n };\n const script = [];\n buildScript(0, left.length, 0, right.length, script);\n return script;\n };\n\n const getOuterHtml = elm => {\n if (isElement$6(elm)) {\n return elm.outerHTML;\n } else if (isText$b(elm)) {\n return Entities.encodeRaw(elm.data, false);\n } else if (isComment(elm)) {\n return '';\n }\n return '';\n };\n const createFragment = html => {\n let node;\n const container = document.createElement('div');\n const frag = document.createDocumentFragment();\n if (html) {\n container.innerHTML = html;\n }\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n const insertAt = (elm, html, index) => {\n const fragment = createFragment(html);\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n const target = elm.childNodes[index];\n elm.insertBefore(fragment, target);\n } else {\n elm.appendChild(fragment);\n }\n };\n const removeAt = (elm, index) => {\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n const target = elm.childNodes[index];\n elm.removeChild(target);\n }\n };\n const applyDiff = (diff, elm) => {\n let index = 0;\n each$e(diff, action => {\n if (action[0] === KEEP) {\n index++;\n } else if (action[0] === INSERT) {\n insertAt(elm, action[1], index);\n index++;\n } else if (action[0] === DELETE) {\n removeAt(elm, index);\n }\n });\n };\n const read$2 = (elm, trimZwsp) => filter$5(map$3(from(elm.childNodes), trimZwsp ? compose(trim$2, getOuterHtml) : getOuterHtml), item => {\n return item.length > 0;\n });\n const write = (fragments, elm) => {\n const currentFragments = map$3(from(elm.childNodes), getOuterHtml);\n applyDiff(diff(currentFragments, fragments), elm);\n return elm;\n };\n\n const lazyTempDocument = cached(() => document.implementation.createHTMLDocument('undo'));\n const hasIframes = body => body.querySelector('iframe') !== null;\n const createFragmentedLevel = fragments => {\n return {\n type: 'fragmented',\n fragments,\n content: '',\n bookmark: null,\n beforeBookmark: null\n };\n };\n const createCompleteLevel = content => {\n return {\n type: 'complete',\n fragments: null,\n content,\n bookmark: null,\n beforeBookmark: null\n };\n };\n const createFromEditor = editor => {\n const tempAttrs = editor.serializer.getTempAttrs();\n const body = trim$1(editor.getBody(), tempAttrs);\n return hasIframes(body) ? createFragmentedLevel(read$2(body, true)) : createCompleteLevel(trim$2(body.innerHTML));\n };\n const applyToEditor = (editor, level, before) => {\n const bookmark = before ? level.beforeBookmark : level.bookmark;\n if (level.type === 'fragmented') {\n write(level.fragments, editor.getBody());\n } else {\n editor.setContent(level.content, {\n format: 'raw',\n no_selection: isNonNullable(bookmark) && isPathBookmark(bookmark) ? !bookmark.isFakeCaret : true\n });\n }\n if (bookmark) {\n editor.selection.moveToBookmark(bookmark);\n editor.selection.scrollIntoView();\n }\n };\n const getLevelContent = level => {\n return level.type === 'fragmented' ? level.fragments.join('') : level.content;\n };\n const getCleanLevelContent = level => {\n const elm = SugarElement.fromTag('body', lazyTempDocument());\n set$1(elm, getLevelContent(level));\n each$e(descendants(elm, '*[data-mce-bogus]'), unwrap);\n return get$6(elm);\n };\n const hasEqualContent = (level1, level2) => getLevelContent(level1) === getLevelContent(level2);\n const hasEqualCleanedContent = (level1, level2) => getCleanLevelContent(level1) === getCleanLevelContent(level2);\n const isEq$1 = (level1, level2) => {\n if (!level1 || !level2) {\n return false;\n } else if (hasEqualContent(level1, level2)) {\n return true;\n } else {\n return hasEqualCleanedContent(level1, level2);\n }\n };\n\n const isUnlocked = locks => locks.get() === 0;\n\n const setTyping = (undoManager, typing, locks) => {\n if (isUnlocked(locks)) {\n undoManager.typing = typing;\n }\n };\n const endTyping = (undoManager, locks) => {\n if (undoManager.typing) {\n setTyping(undoManager, false, locks);\n undoManager.add();\n }\n };\n const endTypingLevelIgnoreLocks = undoManager => {\n if (undoManager.typing) {\n undoManager.typing = false;\n undoManager.add();\n }\n };\n\n const beforeChange$1 = (editor, locks, beforeBookmark) => {\n if (isUnlocked(locks)) {\n beforeBookmark.set(getUndoBookmark(editor.selection));\n }\n };\n const addUndoLevel$1 = (editor, undoManager, index, locks, beforeBookmark, level, event) => {\n const currentLevel = createFromEditor(editor);\n const newLevel = Tools.extend(level || {}, currentLevel);\n if (!isUnlocked(locks) || editor.removed) {\n return null;\n }\n const lastLevel = undoManager.data[index.get()];\n if (editor.dispatch('BeforeAddUndo', {\n level: newLevel,\n lastLevel,\n originalEvent: event\n }).isDefaultPrevented()) {\n return null;\n }\n if (lastLevel && isEq$1(lastLevel, newLevel)) {\n return null;\n }\n if (undoManager.data[index.get()]) {\n beforeBookmark.get().each(bm => {\n undoManager.data[index.get()].beforeBookmark = bm;\n });\n }\n const customUndoRedoLevels = getCustomUndoRedoLevels(editor);\n if (customUndoRedoLevels) {\n if (undoManager.data.length > customUndoRedoLevels) {\n for (let i = 0; i < undoManager.data.length - 1; i++) {\n undoManager.data[i] = undoManager.data[i + 1];\n }\n undoManager.data.length--;\n index.set(undoManager.data.length);\n }\n }\n newLevel.bookmark = getUndoBookmark(editor.selection);\n if (index.get() < undoManager.data.length - 1) {\n undoManager.data.length = index.get() + 1;\n }\n undoManager.data.push(newLevel);\n index.set(undoManager.data.length - 1);\n const args = {\n level: newLevel,\n lastLevel,\n originalEvent: event\n };\n if (index.get() > 0) {\n editor.setDirty(true);\n editor.dispatch('AddUndo', args);\n editor.dispatch('change', args);\n } else {\n editor.dispatch('AddUndo', args);\n }\n return newLevel;\n };\n const clear$1 = (editor, undoManager, index) => {\n undoManager.data = [];\n index.set(0);\n undoManager.typing = false;\n editor.dispatch('ClearUndos');\n };\n const extra$1 = (editor, undoManager, index, callback1, callback2) => {\n if (undoManager.transact(callback1)) {\n const bookmark = undoManager.data[index.get()].bookmark;\n const lastLevel = undoManager.data[index.get() - 1];\n applyToEditor(editor, lastLevel, true);\n if (undoManager.transact(callback2)) {\n undoManager.data[index.get() - 1].beforeBookmark = bookmark;\n }\n }\n };\n const redo$1 = (editor, index, data) => {\n let level;\n if (index.get() < data.length - 1) {\n index.set(index.get() + 1);\n level = data[index.get()];\n applyToEditor(editor, level, false);\n editor.setDirty(true);\n editor.dispatch('Redo', { level });\n }\n return level;\n };\n const undo$1 = (editor, undoManager, locks, index) => {\n let level;\n if (undoManager.typing) {\n undoManager.add();\n undoManager.typing = false;\n setTyping(undoManager, false, locks);\n }\n if (index.get() > 0) {\n index.set(index.get() - 1);\n level = undoManager.data[index.get()];\n applyToEditor(editor, level, true);\n editor.setDirty(true);\n editor.dispatch('Undo', { level });\n }\n return level;\n };\n const reset$1 = undoManager => {\n undoManager.clear();\n undoManager.add();\n };\n const hasUndo$1 = (editor, undoManager, index) => index.get() > 0 || undoManager.typing && undoManager.data[0] && !isEq$1(createFromEditor(editor), undoManager.data[0]);\n const hasRedo$1 = (undoManager, index) => index.get() < undoManager.data.length - 1 && !undoManager.typing;\n const transact$1 = (undoManager, locks, callback) => {\n endTyping(undoManager, locks);\n undoManager.beforeChange();\n undoManager.ignore(callback);\n return undoManager.add();\n };\n const ignore$1 = (locks, callback) => {\n try {\n locks.set(locks.get() + 1);\n callback();\n } finally {\n locks.set(locks.get() - 1);\n }\n };\n\n const addVisualInternal = (editor, elm) => {\n const dom = editor.dom;\n const scope = isNonNullable(elm) ? elm : editor.getBody();\n each$e(dom.select('table,a', scope), matchedElm => {\n switch (matchedElm.nodeName) {\n case 'TABLE':\n const cls = getVisualAidsTableClass(editor);\n const value = dom.getAttrib(matchedElm, 'border');\n if ((!value || value === '0') && editor.hasVisual) {\n dom.addClass(matchedElm, cls);\n } else {\n dom.removeClass(matchedElm, cls);\n }\n break;\n case 'A':\n if (!dom.getAttrib(matchedElm, 'href')) {\n const value = dom.getAttrib(matchedElm, 'name') || matchedElm.id;\n const cls = getVisualAidsAnchorClass(editor);\n if (value && editor.hasVisual) {\n dom.addClass(matchedElm, cls);\n } else {\n dom.removeClass(matchedElm, cls);\n }\n }\n break;\n }\n });\n editor.dispatch('VisualAid', {\n element: elm,\n hasVisual: editor.hasVisual\n });\n };\n\n const makePlainAdaptor = editor => ({\n init: { bindEvents: noop },\n undoManager: {\n beforeChange: (locks, beforeBookmark) => beforeChange$1(editor, locks, beforeBookmark),\n add: (undoManager, index, locks, beforeBookmark, level, event) => addUndoLevel$1(editor, undoManager, index, locks, beforeBookmark, level, event),\n undo: (undoManager, locks, index) => undo$1(editor, undoManager, locks, index),\n redo: (index, data) => redo$1(editor, index, data),\n clear: (undoManager, index) => clear$1(editor, undoManager, index),\n reset: undoManager => reset$1(undoManager),\n hasUndo: (undoManager, index) => hasUndo$1(editor, undoManager, index),\n hasRedo: (undoManager, index) => hasRedo$1(undoManager, index),\n transact: (undoManager, locks, callback) => transact$1(undoManager, locks, callback),\n ignore: (locks, callback) => ignore$1(locks, callback),\n extra: (undoManager, index, callback1, callback2) => extra$1(editor, undoManager, index, callback1, callback2)\n },\n formatter: {\n match: (name, vars, node, similar) => match$2(editor, name, vars, node, similar),\n matchAll: (names, vars) => matchAll(editor, names, vars),\n matchNode: (node, name, vars, similar) => matchNode(editor, node, name, vars, similar),\n canApply: name => canApply(editor, name),\n closest: names => closest(editor, names),\n apply: (name, vars, node) => applyFormat$1(editor, name, vars, node),\n remove: (name, vars, node, similar) => removeFormat$1(editor, name, vars, node, similar),\n toggle: (name, vars, node) => toggle(editor, name, vars, node),\n formatChanged: (registeredFormatListeners, formats, callback, similar, vars) => formatChangedInternal(editor, registeredFormatListeners, formats, callback, similar, vars)\n },\n editor: {\n getContent: args => getContentInternal(editor, args),\n setContent: (content, args) => setContentInternal(editor, content, args),\n insertContent: (value, details) => insertHtmlAtCaret(editor, value, details),\n addVisual: elm => addVisualInternal(editor, elm)\n },\n selection: { getContent: (format, args) => getSelectedContentInternal(editor, format, args) },\n autocompleter: {\n addDecoration: noop,\n removeDecoration: noop\n },\n raw: { getModel: () => Optional.none() }\n });\n const makeRtcAdaptor = rtcEditor => {\n const defaultVars = vars => isObject(vars) ? vars : {};\n const {init, undoManager, formatter, editor, selection, autocompleter, raw} = rtcEditor;\n return {\n init: { bindEvents: init.bindEvents },\n undoManager: {\n beforeChange: undoManager.beforeChange,\n add: undoManager.add,\n undo: undoManager.undo,\n redo: undoManager.redo,\n clear: undoManager.clear,\n reset: undoManager.reset,\n hasUndo: undoManager.hasUndo,\n hasRedo: undoManager.hasRedo,\n transact: (_undoManager, _locks, fn) => undoManager.transact(fn),\n ignore: (_locks, callback) => undoManager.ignore(callback),\n extra: (_undoManager, _index, callback1, callback2) => undoManager.extra(callback1, callback2)\n },\n formatter: {\n match: (name, vars, _node, similar) => formatter.match(name, defaultVars(vars), similar),\n matchAll: formatter.matchAll,\n matchNode: formatter.matchNode,\n canApply: name => formatter.canApply(name),\n closest: names => formatter.closest(names),\n apply: (name, vars, _node) => formatter.apply(name, defaultVars(vars)),\n remove: (name, vars, _node, _similar) => formatter.remove(name, defaultVars(vars)),\n toggle: (name, vars, _node) => formatter.toggle(name, defaultVars(vars)),\n formatChanged: (_rfl, formats, callback, similar, vars) => formatter.formatChanged(formats, callback, similar, vars)\n },\n editor: {\n getContent: args => editor.getContent(args),\n setContent: (content, args) => {\n return {\n content: editor.setContent(content, args),\n html: ''\n };\n },\n insertContent: (content, _details) => {\n editor.insertContent(content);\n return '';\n },\n addVisual: editor.addVisual\n },\n selection: { getContent: (_format, args) => selection.getContent(args) },\n autocompleter: {\n addDecoration: autocompleter.addDecoration,\n removeDecoration: autocompleter.removeDecoration\n },\n raw: { getModel: () => Optional.some(raw.getRawModel()) }\n };\n };\n const makeNoopAdaptor = () => {\n const nul = constant(null);\n const empty = constant('');\n return {\n init: { bindEvents: noop },\n undoManager: {\n beforeChange: noop,\n add: nul,\n undo: nul,\n redo: nul,\n clear: noop,\n reset: noop,\n hasUndo: never,\n hasRedo: never,\n transact: nul,\n ignore: noop,\n extra: noop\n },\n formatter: {\n match: never,\n matchAll: constant([]),\n matchNode: constant(undefined),\n canApply: never,\n closest: empty,\n apply: noop,\n remove: noop,\n toggle: noop,\n formatChanged: constant({ unbind: noop })\n },\n editor: {\n getContent: empty,\n setContent: constant({\n content: '',\n html: ''\n }),\n insertContent: constant(''),\n addVisual: noop\n },\n selection: { getContent: empty },\n autocompleter: {\n addDecoration: noop,\n removeDecoration: noop\n },\n raw: { getModel: constant(Optional.none()) }\n };\n };\n const isRtc = editor => has$2(editor.plugins, 'rtc');\n const getRtcSetup = editor => get$a(editor.plugins, 'rtc').bind(rtcPlugin => Optional.from(rtcPlugin.setup));\n const setup$t = editor => {\n const editorCast = editor;\n return getRtcSetup(editor).fold(() => {\n editorCast.rtcInstance = makePlainAdaptor(editor);\n return Optional.none();\n }, setup => {\n editorCast.rtcInstance = makeNoopAdaptor();\n return Optional.some(() => setup().then(rtcEditor => {\n editorCast.rtcInstance = makeRtcAdaptor(rtcEditor);\n return rtcEditor.rtc.isRemote;\n }));\n });\n };\n const getRtcInstanceWithFallback = editor => editor.rtcInstance ? editor.rtcInstance : makePlainAdaptor(editor);\n const getRtcInstanceWithError = editor => {\n const rtcInstance = editor.rtcInstance;\n if (!rtcInstance) {\n throw new Error('Failed to get RTC instance not yet initialized.');\n } else {\n return rtcInstance;\n }\n };\n const beforeChange = (editor, locks, beforeBookmark) => {\n getRtcInstanceWithError(editor).undoManager.beforeChange(locks, beforeBookmark);\n };\n const addUndoLevel = (editor, undoManager, index, locks, beforeBookmark, level, event) => getRtcInstanceWithError(editor).undoManager.add(undoManager, index, locks, beforeBookmark, level, event);\n const undo = (editor, undoManager, locks, index) => getRtcInstanceWithError(editor).undoManager.undo(undoManager, locks, index);\n const redo = (editor, index, data) => getRtcInstanceWithError(editor).undoManager.redo(index, data);\n const clear = (editor, undoManager, index) => {\n getRtcInstanceWithError(editor).undoManager.clear(undoManager, index);\n };\n const reset = (editor, undoManager) => {\n getRtcInstanceWithError(editor).undoManager.reset(undoManager);\n };\n const hasUndo = (editor, undoManager, index) => getRtcInstanceWithError(editor).undoManager.hasUndo(undoManager, index);\n const hasRedo = (editor, undoManager, index) => getRtcInstanceWithError(editor).undoManager.hasRedo(undoManager, index);\n const transact = (editor, undoManager, locks, callback) => getRtcInstanceWithError(editor).undoManager.transact(undoManager, locks, callback);\n const ignore = (editor, locks, callback) => {\n getRtcInstanceWithError(editor).undoManager.ignore(locks, callback);\n };\n const extra = (editor, undoManager, index, callback1, callback2) => {\n getRtcInstanceWithError(editor).undoManager.extra(undoManager, index, callback1, callback2);\n };\n const matchFormat = (editor, name, vars, node, similar) => getRtcInstanceWithError(editor).formatter.match(name, vars, node, similar);\n const matchAllFormats = (editor, names, vars) => getRtcInstanceWithError(editor).formatter.matchAll(names, vars);\n const matchNodeFormat = (editor, node, name, vars, similar) => getRtcInstanceWithError(editor).formatter.matchNode(node, name, vars, similar);\n const canApplyFormat = (editor, name) => getRtcInstanceWithError(editor).formatter.canApply(name);\n const closestFormat = (editor, names) => getRtcInstanceWithError(editor).formatter.closest(names);\n const applyFormat = (editor, name, vars, node) => {\n getRtcInstanceWithError(editor).formatter.apply(name, vars, node);\n };\n const removeFormat = (editor, name, vars, node, similar) => {\n getRtcInstanceWithError(editor).formatter.remove(name, vars, node, similar);\n };\n const toggleFormat = (editor, name, vars, node) => {\n getRtcInstanceWithError(editor).formatter.toggle(name, vars, node);\n };\n const formatChanged = (editor, registeredFormatListeners, formats, callback, similar, vars) => getRtcInstanceWithError(editor).formatter.formatChanged(registeredFormatListeners, formats, callback, similar, vars);\n const getContent$2 = (editor, args) => getRtcInstanceWithFallback(editor).editor.getContent(args);\n const setContent$2 = (editor, content, args) => getRtcInstanceWithFallback(editor).editor.setContent(content, args);\n const insertContent$1 = (editor, value, details) => getRtcInstanceWithFallback(editor).editor.insertContent(value, details);\n const getSelectedContent = (editor, format, args) => getRtcInstanceWithError(editor).selection.getContent(format, args);\n const addVisual$1 = (editor, elm) => getRtcInstanceWithError(editor).editor.addVisual(elm);\n const bindEvents = editor => getRtcInstanceWithError(editor).init.bindEvents();\n\n const getContent$1 = (editor, args = {}) => {\n const format = args.format ? args.format : 'html';\n return getSelectedContent(editor, format, args);\n };\n\n const removeEmpty = text => {\n if (text.dom.length === 0) {\n remove$4(text);\n return Optional.none();\n } else {\n return Optional.some(text);\n }\n };\n const walkPastBookmark = (node, start) => node.filter(elm => BookmarkManager.isBookmarkNode(elm.dom)).bind(start ? nextSibling : prevSibling);\n const merge$1 = (outer, inner, rng, start, schema) => {\n const outerElm = outer.dom;\n const innerElm = inner.dom;\n const oldLength = start ? outerElm.length : innerElm.length;\n if (start) {\n mergeTextNodes(outerElm, innerElm, schema, false, !start);\n rng.setStart(innerElm, oldLength);\n } else {\n mergeTextNodes(innerElm, outerElm, schema, false, !start);\n rng.setEnd(innerElm, oldLength);\n }\n };\n const normalizeTextIfRequired = (inner, start, schema) => {\n parent(inner).each(root => {\n const text = inner.dom;\n if (start && needsToBeNbspLeft(root, CaretPosition(text, 0), schema)) {\n normalizeWhitespaceAfter(text, 0, schema);\n } else if (!start && needsToBeNbspRight(root, CaretPosition(text, text.length), schema)) {\n normalizeWhitespaceBefore(text, text.length, schema);\n }\n });\n };\n const mergeAndNormalizeText = (outerNode, innerNode, rng, start, schema) => {\n outerNode.bind(outer => {\n const normalizer = start ? normalizeWhitespaceBefore : normalizeWhitespaceAfter;\n normalizer(outer.dom, start ? outer.dom.length : 0, schema);\n return innerNode.filter(isText$c).map(inner => merge$1(outer, inner, rng, start, schema));\n }).orThunk(() => {\n const innerTextNode = walkPastBookmark(innerNode, start).or(innerNode).filter(isText$c);\n return innerTextNode.map(inner => normalizeTextIfRequired(inner, start, schema));\n });\n };\n const rngSetContent = (rng, fragment, schema) => {\n const firstChild = Optional.from(fragment.firstChild).map(SugarElement.fromDom);\n const lastChild = Optional.from(fragment.lastChild).map(SugarElement.fromDom);\n rng.deleteContents();\n rng.insertNode(fragment);\n const prevText = firstChild.bind(prevSibling).filter(isText$c).bind(removeEmpty);\n const nextText = lastChild.bind(nextSibling).filter(isText$c).bind(removeEmpty);\n mergeAndNormalizeText(prevText, firstChild, rng, true, schema);\n mergeAndNormalizeText(nextText, lastChild, rng, false, schema);\n rng.collapse(false);\n };\n const setupArgs$2 = (args, content) => ({\n format: 'html',\n ...args,\n set: true,\n selection: true,\n content\n });\n const cleanContent = (editor, args) => {\n if (args.format !== 'raw') {\n const rng = editor.selection.getRng();\n const contextBlock = editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock);\n const contextArgs = contextBlock ? { context: contextBlock.nodeName.toLowerCase() } : {};\n const node = editor.parser.parse(args.content, {\n forced_root_block: false,\n ...contextArgs,\n ...args\n });\n return HtmlSerializer({ validate: false }, editor.schema).serialize(node);\n } else {\n return args.content;\n }\n };\n const setContent$1 = (editor, content, args = {}) => {\n const defaultedArgs = setupArgs$2(args, content);\n preProcessSetContent(editor, defaultedArgs).each(updatedArgs => {\n const cleanedContent = cleanContent(editor, updatedArgs);\n const rng = editor.selection.getRng();\n rngSetContent(rng, rng.createContextualFragment(cleanedContent), editor.schema);\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, rng);\n postProcessSetContent(editor, cleanedContent, updatedArgs);\n });\n };\n\n const deleteFromCallbackMap = (callbackMap, selector, callback) => {\n if (has$2(callbackMap, selector)) {\n const newCallbacks = filter$5(callbackMap[selector], cb => cb !== callback);\n if (newCallbacks.length === 0) {\n delete callbackMap[selector];\n } else {\n callbackMap[selector] = newCallbacks;\n }\n }\n };\n var SelectorChanged = (dom, editor) => {\n let selectorChangedData;\n let currentSelectors;\n const findMatchingNode = (selector, nodes) => find$2(nodes, node => dom.is(node, selector));\n const getParents = elem => dom.getParents(elem, undefined, dom.getRoot());\n const setup = () => {\n selectorChangedData = {};\n currentSelectors = {};\n editor.on('NodeChange', e => {\n const node = e.element;\n const parents = getParents(node);\n const matchedSelectors = {};\n each$d(selectorChangedData, (callbacks, selector) => {\n findMatchingNode(selector, parents).each(node => {\n if (!currentSelectors[selector]) {\n each$e(callbacks, callback => {\n callback(true, {\n node,\n selector,\n parents\n });\n });\n currentSelectors[selector] = callbacks;\n }\n matchedSelectors[selector] = callbacks;\n });\n });\n each$d(currentSelectors, (callbacks, selector) => {\n if (!matchedSelectors[selector]) {\n delete currentSelectors[selector];\n each$e(callbacks, callback => {\n callback(false, {\n node,\n selector,\n parents\n });\n });\n }\n });\n });\n };\n return {\n selectorChangedWithUnbind: (selector, callback) => {\n if (!selectorChangedData) {\n setup();\n }\n if (!selectorChangedData[selector]) {\n selectorChangedData[selector] = [];\n }\n selectorChangedData[selector].push(callback);\n findMatchingNode(selector, getParents(editor.selection.getStart())).each(() => {\n currentSelectors[selector] = selectorChangedData[selector];\n });\n return {\n unbind: () => {\n deleteFromCallbackMap(selectorChangedData, selector, callback);\n deleteFromCallbackMap(currentSelectors, selector, callback);\n }\n };\n }\n };\n };\n\n const isAttachedToDom = node => {\n return !!(node && node.ownerDocument) && contains(SugarElement.fromDom(node.ownerDocument), SugarElement.fromDom(node));\n };\n const isValidRange = rng => {\n if (!rng) {\n return false;\n } else {\n return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);\n }\n };\n const EditorSelection = (dom, win, serializer, editor) => {\n let selectedRange;\n let explicitRange;\n const {selectorChangedWithUnbind} = SelectorChanged(dom, editor);\n const setCursorLocation = (node, offset) => {\n const rng = dom.createRng();\n if (isNonNullable(node) && isNonNullable(offset)) {\n rng.setStart(node, offset);\n rng.setEnd(node, offset);\n setRng(rng);\n collapse(false);\n } else {\n moveEndPoint(dom, rng, editor.getBody(), true);\n setRng(rng);\n }\n };\n const getContent = args => getContent$1(editor, args);\n const setContent = (content, args) => setContent$1(editor, content, args);\n const getStart$1 = real => getStart(editor.getBody(), getRng$1(), real);\n const getEnd$1 = real => getEnd(editor.getBody(), getRng$1(), real);\n const getBookmark = (type, normalized) => bookmarkManager.getBookmark(type, normalized);\n const moveToBookmark = bookmark => bookmarkManager.moveToBookmark(bookmark);\n const select$1 = (node, content) => {\n select(dom, node, content).each(setRng);\n return node;\n };\n const isCollapsed = () => {\n const rng = getRng$1(), sel = getSel();\n if (!rng || rng.item) {\n return false;\n }\n if (rng.compareEndPoints) {\n return rng.compareEndPoints('StartToEnd', rng) === 0;\n }\n return !sel || rng.collapsed;\n };\n const isEditable = () => {\n if (editor.mode.isReadOnly()) {\n return false;\n }\n const rng = getRng$1();\n const fakeSelectedElements = editor.getBody().querySelectorAll('[data-mce-selected=\"1\"]');\n if (fakeSelectedElements.length > 0) {\n return forall(fakeSelectedElements, el => dom.isEditable(el.parentElement));\n } else {\n return isEditableRange(dom, rng);\n }\n };\n const collapse = toStart => {\n const rng = getRng$1();\n rng.collapse(!!toStart);\n setRng(rng);\n };\n const getSel = () => win.getSelection ? win.getSelection() : win.document.selection;\n const getRng$1 = () => {\n let rng;\n const tryCompareBoundaryPoints = (how, sourceRange, destinationRange) => {\n try {\n return sourceRange.compareBoundaryPoints(how, destinationRange);\n } catch (ex) {\n return -1;\n }\n };\n const doc = win.document;\n if (isNonNullable(editor.bookmark) && !hasFocus(editor)) {\n const bookmark = getRng(editor);\n if (bookmark.isSome()) {\n return bookmark.map(r => processRanges(editor, [r])[0]).getOr(doc.createRange());\n }\n }\n try {\n const selection = getSel();\n if (selection && !isRestrictedNode(selection.anchorNode)) {\n if (selection.rangeCount > 0) {\n rng = selection.getRangeAt(0);\n } else {\n rng = doc.createRange();\n }\n rng = processRanges(editor, [rng])[0];\n }\n } catch (ex) {\n }\n if (!rng) {\n rng = doc.createRange();\n }\n if (isDocument$1(rng.startContainer) && rng.collapsed) {\n const elm = dom.getRoot();\n rng.setStart(elm, 0);\n rng.setEnd(elm, 0);\n }\n if (selectedRange && explicitRange) {\n if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) {\n rng = explicitRange;\n } else {\n selectedRange = null;\n explicitRange = null;\n }\n }\n return rng;\n };\n const setRng = (rng, forward) => {\n if (!isValidRange(rng)) {\n return;\n }\n const sel = getSel();\n const evt = editor.dispatch('SetSelectionRange', {\n range: rng,\n forward\n });\n rng = evt.range;\n if (sel) {\n explicitRange = rng;\n try {\n sel.removeAllRanges();\n sel.addRange(rng);\n } catch (ex) {\n }\n if (forward === false && sel.extend) {\n sel.collapse(rng.endContainer, rng.endOffset);\n sel.extend(rng.startContainer, rng.startOffset);\n }\n selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n }\n if (!rng.collapsed && rng.startContainer === rng.endContainer && (sel === null || sel === void 0 ? void 0 : sel.setBaseAndExtent)) {\n if (rng.endOffset - rng.startOffset < 2) {\n if (rng.startContainer.hasChildNodes()) {\n const node = rng.startContainer.childNodes[rng.startOffset];\n if (node && node.nodeName === 'IMG') {\n sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset);\n if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) {\n sel.setBaseAndExtent(node, 0, node, 1);\n }\n }\n }\n }\n }\n editor.dispatch('AfterSetSelectionRange', {\n range: rng,\n forward\n });\n };\n const setNode = elm => {\n setContent(dom.getOuterHTML(elm));\n return elm;\n };\n const getNode$1 = () => getNode(editor.getBody(), getRng$1());\n const getSelectedBlocks$1 = (startElm, endElm) => getSelectedBlocks(dom, getRng$1(), startElm, endElm);\n const isForward = () => {\n const sel = getSel();\n const anchorNode = sel === null || sel === void 0 ? void 0 : sel.anchorNode;\n const focusNode = sel === null || sel === void 0 ? void 0 : sel.focusNode;\n if (!sel || !anchorNode || !focusNode || isRestrictedNode(anchorNode) || isRestrictedNode(focusNode)) {\n return true;\n }\n const anchorRange = dom.createRng();\n const focusRange = dom.createRng();\n try {\n anchorRange.setStart(anchorNode, sel.anchorOffset);\n anchorRange.collapse(true);\n focusRange.setStart(focusNode, sel.focusOffset);\n focusRange.collapse(true);\n } catch (e) {\n return true;\n }\n return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;\n };\n const normalize = () => {\n const rng = getRng$1();\n const sel = getSel();\n if (!hasMultipleRanges(sel) && hasAnyRanges(editor)) {\n const normRng = normalize$2(dom, rng);\n normRng.each(normRng => {\n setRng(normRng, isForward());\n });\n return normRng.getOr(rng);\n }\n return rng;\n };\n const selectorChanged = (selector, callback) => {\n selectorChangedWithUnbind(selector, callback);\n return exports;\n };\n const getScrollContainer = () => {\n let scrollContainer;\n let node = dom.getRoot();\n while (node && node.nodeName !== 'BODY') {\n if (node.scrollHeight > node.clientHeight) {\n scrollContainer = node;\n break;\n }\n node = node.parentNode;\n }\n return scrollContainer;\n };\n const scrollIntoView = (elm, alignToTop) => {\n if (isNonNullable(elm)) {\n scrollElementIntoView(editor, elm, alignToTop);\n } else {\n scrollRangeIntoView(editor, getRng$1(), alignToTop);\n }\n };\n const placeCaretAt = (clientX, clientY) => setRng(fromPoint(clientX, clientY, editor.getDoc()));\n const getBoundingClientRect = () => {\n const rng = getRng$1();\n return rng.collapsed ? CaretPosition.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();\n };\n const destroy = () => {\n win = selectedRange = explicitRange = null;\n controlSelection.destroy();\n };\n const expand = (options = { type: 'word' }) => setRng(RangeUtils(dom).expand(getRng$1(), options));\n const exports = {\n dom,\n win,\n serializer,\n editor,\n expand,\n collapse,\n setCursorLocation,\n getContent,\n setContent,\n getBookmark,\n moveToBookmark,\n select: select$1,\n isCollapsed,\n isEditable,\n isForward,\n setNode,\n getNode: getNode$1,\n getSel,\n setRng,\n getRng: getRng$1,\n getStart: getStart$1,\n getEnd: getEnd$1,\n getSelectedBlocks: getSelectedBlocks$1,\n normalize,\n selectorChanged,\n selectorChangedWithUnbind,\n getScrollContainer,\n scrollIntoView,\n placeCaretAt,\n getBoundingClientRect,\n destroy\n };\n const bookmarkManager = BookmarkManager(exports);\n const controlSelection = ControlSelection(exports, editor);\n exports.bookmarkManager = bookmarkManager;\n exports.controlSelection = controlSelection;\n return exports;\n };\n\n const addNodeFilter = (settings, htmlParser, schema) => {\n htmlParser.addNodeFilter('br', (nodes, _, args) => {\n const blockElements = Tools.extend({}, schema.getBlockElements());\n const nonEmptyElements = schema.getNonEmptyElements();\n const whitespaceElements = schema.getWhitespaceElements();\n blockElements.body = 1;\n const isBlock = node => node.name in blockElements || isTransparentAstBlock(schema, node);\n for (let i = 0, l = nodes.length; i < l; i++) {\n let node = nodes[i];\n let parent = node.parent;\n if (parent && isBlock(parent) && node === parent.lastChild) {\n let prev = node.prev;\n while (prev) {\n const prevName = prev.name;\n if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') {\n if (prevName === 'br') {\n node = null;\n }\n break;\n }\n prev = prev.prev;\n }\n if (node) {\n node.remove();\n if (isEmpty(schema, nonEmptyElements, whitespaceElements, parent)) {\n const elementRule = schema.getElementRule(parent.name);\n if (elementRule) {\n if (elementRule.removeEmpty) {\n parent.remove();\n } else if (elementRule.paddEmpty) {\n paddEmptyNode(settings, args, isBlock, parent);\n }\n }\n }\n }\n } else {\n let lastParent = node;\n while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) {\n lastParent = parent;\n if (blockElements[parent.name]) {\n break;\n }\n parent = parent.parent;\n }\n if (lastParent === parent) {\n const textNode = new AstNode('#text', 3);\n textNode.value = nbsp;\n node.replace(textNode);\n }\n }\n }\n });\n };\n\n const register$3 = (htmlParser, settings, dom) => {\n htmlParser.addAttributeFilter('data-mce-tabindex', (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n node.attr('tabindex', node.attr('data-mce-tabindex'));\n node.attr(name, null);\n }\n });\n htmlParser.addAttributeFilter('src,href,style', (nodes, name) => {\n const internalName = 'data-mce-' + name;\n const urlConverter = settings.url_converter;\n const urlConverterScope = settings.url_converter_scope;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n let value = node.attr(internalName);\n if (value !== undefined) {\n node.attr(name, value.length > 0 ? value : null);\n node.attr(internalName, null);\n } else {\n value = node.attr(name);\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n } else if (urlConverter) {\n value = urlConverter.call(urlConverterScope, value, name, node.name);\n }\n node.attr(name, value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('class', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n let value = node.attr('class');\n if (value) {\n value = value.replace(/(?:^|\\s)mce-item-\\w+(?!\\S)/g, '');\n node.attr('class', value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', (nodes, name, args) => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (node.attr('data-mce-type') === 'bookmark' && !args.cleanup) {\n const hasChildren = Optional.from(node.firstChild).exists(firstChild => {\n var _a;\n return !isZwsp((_a = firstChild.value) !== null && _a !== void 0 ? _a : '');\n });\n if (hasChildren) {\n node.unwrap();\n } else {\n node.remove();\n }\n }\n }\n });\n htmlParser.addNodeFilter('script,style', (nodes, name) => {\n var _a;\n const trim = value => {\n return value.replace(/()/g, '\\n').replace(/^[\\r\\n]*|[\\r\\n]*$/g, '').replace(/^\\s*(()?|\\s*\\/\\/\\s*\\]\\]>(-->)?|\\/\\/\\s*(-->)?|\\]\\]>|\\/\\*\\s*-->\\s*\\*\\/|\\s*-->\\s*)\\s*$/g, '');\n };\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const firstChild = node.firstChild;\n const value = (_a = firstChild === null || firstChild === void 0 ? void 0 : firstChild.value) !== null && _a !== void 0 ? _a : '';\n if (name === 'script') {\n const type = node.attr('type');\n if (type) {\n node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\\-/, ''));\n }\n if (settings.element_format === 'xhtml' && firstChild && value.length > 0) {\n firstChild.value = '// ';\n }\n } else {\n if (settings.element_format === 'xhtml' && firstChild && value.length > 0) {\n firstChild.value = '';\n }\n }\n }\n });\n htmlParser.addNodeFilter('#comment', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const value = node.value;\n if (settings.preserve_cdata && (value === null || value === void 0 ? void 0 : value.indexOf('[CDATA[')) === 0) {\n node.name = '#cdata';\n node.type = 4;\n node.value = dom.decode(value.replace(/^\\[CDATA\\[|\\]\\]$/g, ''));\n } else if ((value === null || value === void 0 ? void 0 : value.indexOf('mce:protected ')) === 0) {\n node.name = '#text';\n node.type = 3;\n node.raw = true;\n node.value = unescape(value).substr(14);\n }\n }\n });\n htmlParser.addNodeFilter('xml:namespace,input', (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (node.type === 7) {\n node.remove();\n } else if (node.type === 1) {\n if (name === 'input' && !node.attr('type')) {\n node.attr('type', 'text');\n }\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', nodes => {\n each$e(nodes, node => {\n if (node.attr('data-mce-type') === 'format-caret') {\n if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {\n node.remove();\n } else {\n node.unwrap();\n }\n }\n });\n });\n htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,data-mce-block,' + 'data-mce-type,data-mce-resize,data-mce-placeholder', (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n if (settings.remove_trailing_brs) {\n addNodeFilter(settings, htmlParser, htmlParser.schema);\n }\n };\n const trimTrailingBr = rootNode => {\n const isBr = node => {\n return (node === null || node === void 0 ? void 0 : node.name) === 'br';\n };\n const brNode1 = rootNode.lastChild;\n if (isBr(brNode1)) {\n const brNode2 = brNode1.prev;\n if (isBr(brNode2)) {\n brNode1.remove();\n brNode2.remove();\n }\n }\n };\n\n const preProcess$1 = (editor, node, args) => {\n let oldDoc;\n const dom = editor.dom;\n let clonedNode = node.cloneNode(true);\n const impl = document.implementation;\n if (impl.createHTMLDocument) {\n const doc = impl.createHTMLDocument('');\n Tools.each(clonedNode.nodeName === 'BODY' ? clonedNode.childNodes : [clonedNode], node => {\n doc.body.appendChild(doc.importNode(node, true));\n });\n if (clonedNode.nodeName !== 'BODY') {\n clonedNode = doc.body.firstChild;\n } else {\n clonedNode = doc.body;\n }\n oldDoc = dom.doc;\n dom.doc = doc;\n }\n firePreProcess(editor, {\n ...args,\n node: clonedNode\n });\n if (oldDoc) {\n dom.doc = oldDoc;\n }\n return clonedNode;\n };\n const shouldFireEvent = (editor, args) => {\n return isNonNullable(editor) && editor.hasEventListeners('PreProcess') && !args.no_events;\n };\n const process$1 = (editor, node, args) => {\n return shouldFireEvent(editor, args) ? preProcess$1(editor, node, args) : node;\n };\n\n const addTempAttr = (htmlParser, tempAttrs, name) => {\n if (Tools.inArray(tempAttrs, name) === -1) {\n htmlParser.addAttributeFilter(name, (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n tempAttrs.push(name);\n }\n };\n const postProcess = (editor, args, content) => {\n if (!args.no_events && editor) {\n const outArgs = firePostProcess(editor, {\n ...args,\n content\n });\n return outArgs.content;\n } else {\n return content;\n }\n };\n const getHtmlFromNode = (dom, node, args) => {\n const html = trim$2(args.getInner ? node.innerHTML : dom.getOuterHTML(node));\n return args.selection || isWsPreserveElement(SugarElement.fromDom(node)) ? html : Tools.trim(html);\n };\n const parseHtml = (htmlParser, html, args) => {\n const parserArgs = args.selection ? {\n forced_root_block: false,\n ...args\n } : args;\n const rootNode = htmlParser.parse(html, parserArgs);\n trimTrailingBr(rootNode);\n return rootNode;\n };\n const serializeNode = (settings, schema, node) => {\n const htmlSerializer = HtmlSerializer(settings, schema);\n return htmlSerializer.serialize(node);\n };\n const toHtml = (editor, settings, schema, rootNode, args) => {\n const content = serializeNode(settings, schema, rootNode);\n return postProcess(editor, args, content);\n };\n const DomSerializerImpl = (settings, editor) => {\n const tempAttrs = ['data-mce-selected'];\n const defaultedSettings = {\n entity_encoding: 'named',\n remove_trailing_brs: true,\n pad_empty_with_br: false,\n ...settings\n };\n const dom = editor && editor.dom ? editor.dom : DOMUtils.DOM;\n const schema = editor && editor.schema ? editor.schema : Schema(defaultedSettings);\n const htmlParser = DomParser(defaultedSettings, schema);\n register$3(htmlParser, defaultedSettings, dom);\n const serialize = (node, parserArgs = {}) => {\n const args = {\n format: 'html',\n ...parserArgs\n };\n const targetNode = process$1(editor, node, args);\n const html = getHtmlFromNode(dom, targetNode, args);\n const rootNode = parseHtml(htmlParser, html, args);\n return args.format === 'tree' ? rootNode : toHtml(editor, defaultedSettings, schema, rootNode, args);\n };\n return {\n schema,\n addNodeFilter: htmlParser.addNodeFilter,\n addAttributeFilter: htmlParser.addAttributeFilter,\n serialize: serialize,\n addRules: schema.addValidElements,\n setRules: schema.setValidElements,\n addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),\n getTempAttrs: constant(tempAttrs),\n getNodeFilters: htmlParser.getNodeFilters,\n getAttributeFilters: htmlParser.getAttributeFilters,\n removeNodeFilter: htmlParser.removeNodeFilter,\n removeAttributeFilter: htmlParser.removeAttributeFilter\n };\n };\n\n const DomSerializer = (settings, editor) => {\n const domSerializer = DomSerializerImpl(settings, editor);\n return {\n schema: domSerializer.schema,\n addNodeFilter: domSerializer.addNodeFilter,\n addAttributeFilter: domSerializer.addAttributeFilter,\n serialize: domSerializer.serialize,\n addRules: domSerializer.addRules,\n setRules: domSerializer.setRules,\n addTempAttr: domSerializer.addTempAttr,\n getTempAttrs: domSerializer.getTempAttrs,\n getNodeFilters: domSerializer.getNodeFilters,\n getAttributeFilters: domSerializer.getAttributeFilters,\n removeNodeFilter: domSerializer.removeNodeFilter,\n removeAttributeFilter: domSerializer.removeAttributeFilter\n };\n };\n\n const defaultFormat$1 = 'html';\n const setupArgs$1 = (args, format) => ({\n ...args,\n format,\n get: true,\n getInner: true\n });\n const getContent = (editor, args = {}) => {\n const format = args.format ? args.format : defaultFormat$1;\n const defaultedArgs = setupArgs$1(args, format);\n return preProcessGetContent(editor, defaultedArgs).fold(identity, updatedArgs => {\n const content = getContent$2(editor, updatedArgs);\n return postProcessGetContent(editor, content, updatedArgs);\n });\n };\n\n const defaultFormat = 'html';\n const setupArgs = (args, content) => ({\n format: defaultFormat,\n ...args,\n set: true,\n content\n });\n const setContent = (editor, content, args = {}) => {\n const defaultedArgs = setupArgs(args, content);\n return preProcessSetContent(editor, defaultedArgs).map(updatedArgs => {\n const result = setContent$2(editor, updatedArgs.content, updatedArgs);\n postProcessSetContent(editor, result.html, updatedArgs);\n return result.content;\n }).getOr(content);\n };\n\n const removedOptions = ('autoresize_on_init,content_editable_state,padd_empty_with_br,block_elements,' + 'boolean_attributes,editor_deselector,editor_selector,elements,file_browser_callback_types,filepicker_validator_handler,' + 'force_hex_style_colors,force_p_newlines,gecko_spellcheck,images_dataimg_filter,media_scripts,mode,move_caret_before_on_enter_elements,' + 'non_empty_elements,self_closing_elements,short_ended_elements,special,spellchecker_select_languages,spellchecker_whitelist,' + 'tab_focus,tabfocus_elements,table_responsive_width,text_block_elements,text_inline_elements,toolbar_drawer,types,validate,whitespace_elements,' + 'paste_enable_default_filters,paste_filter_drop,paste_word_valid_elements,paste_retain_style_properties,paste_convert_word_fake_lists,' + 'template_cdate_classes,template_mdate_classes,template_selected_content_classes,template_preview_replace_values,template_replace_values,templates,template_cdate_format,template_mdate_format').split(',');\n const deprecatedOptions = [];\n const removedPlugins = 'bbcode,colorpicker,contextmenu,fullpage,legacyoutput,spellchecker,template,textcolor,rtc'.split(',');\n const deprecatedPlugins = [];\n const getMatchingOptions = (options, searchingFor) => {\n const settingNames = filter$5(searchingFor, setting => has$2(options, setting));\n return sort(settingNames);\n };\n const getRemovedOptions = options => {\n const settingNames = getMatchingOptions(options, removedOptions);\n const forcedRootBlock = options.forced_root_block;\n if (forcedRootBlock === false || forcedRootBlock === '') {\n settingNames.push('forced_root_block (false only)');\n }\n return sort(settingNames);\n };\n const getDeprecatedOptions = options => getMatchingOptions(options, deprecatedOptions);\n const getMatchingPlugins = (options, searchingFor) => {\n const plugins = Tools.makeMap(options.plugins, ' ');\n const hasPlugin = plugin => has$2(plugins, plugin);\n const pluginNames = filter$5(searchingFor, hasPlugin);\n return sort(pluginNames);\n };\n const getRemovedPlugins = options => getMatchingPlugins(options, removedPlugins);\n const getDeprecatedPlugins = options => getMatchingPlugins(options, deprecatedPlugins.map(entry => entry.name));\n const logRemovedWarnings = (rawOptions, normalizedOptions) => {\n const removedOptions = getRemovedOptions(rawOptions);\n const removedPlugins = getRemovedPlugins(normalizedOptions);\n const hasRemovedPlugins = removedPlugins.length > 0;\n const hasRemovedOptions = removedOptions.length > 0;\n const isLegacyMobileTheme = normalizedOptions.theme === 'mobile';\n if (hasRemovedPlugins || hasRemovedOptions || isLegacyMobileTheme) {\n const listJoiner = '\\n- ';\n const themesMessage = isLegacyMobileTheme ? `\\n\\nThemes:${ listJoiner }mobile` : '';\n const pluginsMessage = hasRemovedPlugins ? `\\n\\nPlugins:${ listJoiner }${ removedPlugins.join(listJoiner) }` : '';\n const optionsMessage = hasRemovedOptions ? `\\n\\nOptions:${ listJoiner }${ removedOptions.join(listJoiner) }` : '';\n console.warn('The following deprecated features are currently enabled and have been removed in TinyMCE 7.0. These features will no longer work and should be removed from the TinyMCE configuration. ' + 'See https://www.tiny.cloud/docs/tinymce/7/migration-from-6x/ for more information.' + themesMessage + pluginsMessage + optionsMessage);\n }\n };\n const getPluginDescription = name => find$2(deprecatedPlugins, entry => entry.name === name).fold(() => name, entry => {\n if (entry.replacedWith) {\n return `${ name }, replaced by ${ entry.replacedWith }`;\n } else {\n return name;\n }\n });\n const logDeprecatedWarnings = (rawOptions, normalizedOptions) => {\n const deprecatedOptions = getDeprecatedOptions(rawOptions);\n const deprecatedPlugins = getDeprecatedPlugins(normalizedOptions);\n const hasDeprecatedPlugins = deprecatedPlugins.length > 0;\n const hasDeprecatedOptions = deprecatedOptions.length > 0;\n if (hasDeprecatedPlugins || hasDeprecatedOptions) {\n const listJoiner = '\\n- ';\n const pluginsMessage = hasDeprecatedPlugins ? `\\n\\nPlugins:${ listJoiner }${ deprecatedPlugins.map(getPluginDescription).join(listJoiner) }` : '';\n const optionsMessage = hasDeprecatedOptions ? `\\n\\nOptions:${ listJoiner }${ deprecatedOptions.join(listJoiner) }` : '';\n console.warn('The following deprecated features are currently enabled but will be removed soon.' + pluginsMessage + optionsMessage);\n }\n };\n const logWarnings = (rawOptions, normalizedOptions) => {\n logRemovedWarnings(rawOptions, normalizedOptions);\n logDeprecatedWarnings(rawOptions, normalizedOptions);\n };\n\n const DOM$8 = DOMUtils.DOM;\n const restoreOriginalStyles = editor => {\n DOM$8.setStyle(editor.id, 'display', editor.orgDisplay);\n };\n const safeDestroy = x => Optional.from(x).each(x => x.destroy());\n const clearDomReferences = editor => {\n const ed = editor;\n ed.contentAreaContainer = ed.formElement = ed.container = ed.editorContainer = null;\n ed.bodyElement = ed.contentDocument = ed.contentWindow = null;\n ed.iframeElement = ed.targetElm = null;\n const selection = editor.selection;\n if (selection) {\n const dom = selection.dom;\n ed.selection = selection.win = selection.dom = dom.doc = null;\n }\n };\n const restoreForm = editor => {\n const form = editor.formElement;\n if (form) {\n if (form._mceOldSubmit) {\n form.submit = form._mceOldSubmit;\n delete form._mceOldSubmit;\n }\n DOM$8.unbind(form, 'submit reset', editor.formEventDelegate);\n }\n };\n const remove$1 = editor => {\n if (!editor.removed) {\n const {_selectionOverrides, editorUpload} = editor;\n const body = editor.getBody();\n const element = editor.getElement();\n if (body) {\n editor.save({ is_removing: true });\n }\n editor.removed = true;\n editor.unbindAllNativeEvents();\n if (editor.hasHiddenInput && isNonNullable(element === null || element === void 0 ? void 0 : element.nextSibling)) {\n DOM$8.remove(element.nextSibling);\n }\n fireRemove(editor);\n editor.editorManager.remove(editor);\n if (!editor.inline && body) {\n restoreOriginalStyles(editor);\n }\n fireDetach(editor);\n DOM$8.remove(editor.getContainer());\n safeDestroy(_selectionOverrides);\n safeDestroy(editorUpload);\n editor.destroy();\n }\n };\n const destroy = (editor, automatic) => {\n const {selection, dom} = editor;\n if (editor.destroyed) {\n return;\n }\n if (!automatic && !editor.removed) {\n editor.remove();\n return;\n }\n if (!automatic) {\n editor.editorManager.off('beforeunload', editor._beforeUnload);\n if (editor.theme && editor.theme.destroy) {\n editor.theme.destroy();\n }\n safeDestroy(selection);\n safeDestroy(dom);\n }\n restoreForm(editor);\n clearDomReferences(editor);\n editor.destroyed = true;\n };\n\n const CreateIconManager = () => {\n const lookup = {};\n const add = (id, iconPack) => {\n lookup[id] = iconPack;\n };\n const get = id => {\n if (lookup[id]) {\n return lookup[id];\n } else {\n return { icons: {} };\n }\n };\n const has = id => has$2(lookup, id);\n return {\n add,\n get,\n has\n };\n };\n const IconManager = CreateIconManager();\n\n const ModelManager = AddOnManager.ModelManager;\n\n const getProp = (propName, elm) => {\n const rawElm = elm.dom;\n return rawElm[propName];\n };\n const getComputedSizeProp = (propName, elm) => parseInt(get$7(elm, propName), 10);\n const getClientWidth = curry(getProp, 'clientWidth');\n const getClientHeight = curry(getProp, 'clientHeight');\n const getMarginTop = curry(getComputedSizeProp, 'margin-top');\n const getMarginLeft = curry(getComputedSizeProp, 'margin-left');\n const getBoundingClientRect = elm => elm.dom.getBoundingClientRect();\n const isInsideElementContentArea = (bodyElm, clientX, clientY) => {\n const clientWidth = getClientWidth(bodyElm);\n const clientHeight = getClientHeight(bodyElm);\n return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight;\n };\n const transpose = (inline, elm, clientX, clientY) => {\n const clientRect = getBoundingClientRect(elm);\n const deltaX = inline ? clientRect.left + elm.dom.clientLeft + getMarginLeft(elm) : 0;\n const deltaY = inline ? clientRect.top + elm.dom.clientTop + getMarginTop(elm) : 0;\n const x = clientX - deltaX;\n const y = clientY - deltaY;\n return {\n x,\n y\n };\n };\n const isXYInContentArea = (editor, clientX, clientY) => {\n const bodyElm = SugarElement.fromDom(editor.getBody());\n const targetElm = editor.inline ? bodyElm : documentElement(bodyElm);\n const transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);\n return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);\n };\n const fromDomSafe = node => Optional.from(node).map(SugarElement.fromDom);\n const isEditorAttachedToDom = editor => {\n const rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();\n return fromDomSafe(rawContainer).map(inBody).getOr(false);\n };\n\n var NotificationManagerImpl = () => {\n const unimplemented = () => {\n throw new Error('Theme did not provide a NotificationManager implementation.');\n };\n return {\n open: unimplemented,\n close: unimplemented,\n getArgs: unimplemented\n };\n };\n\n const NotificationManager = editor => {\n const notifications = [];\n const getImplementation = () => {\n const theme = editor.theme;\n return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl();\n };\n const getTopNotification = () => {\n return Optional.from(notifications[0]);\n };\n const isEqual = (a, b) => {\n return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;\n };\n const reposition = () => {\n getTopNotification().each(notification => {\n notification.reposition();\n });\n };\n const addNotification = notification => {\n notifications.push(notification);\n };\n const closeNotification = notification => {\n findIndex$2(notifications, otherNotification => {\n return otherNotification === notification;\n }).each(index => {\n notifications.splice(index, 1);\n });\n };\n const open = (spec, fireEvent = true) => {\n if (editor.removed || !isEditorAttachedToDom(editor)) {\n return {};\n }\n if (fireEvent) {\n editor.dispatch('BeforeOpenNotification', { notification: spec });\n }\n return find$2(notifications, notification => {\n return isEqual(getImplementation().getArgs(notification), spec);\n }).getOrThunk(() => {\n editor.editorManager.setActive(editor);\n const notification = getImplementation().open(spec, () => {\n closeNotification(notification);\n }, () => hasEditorOrUiFocus(editor));\n addNotification(notification);\n reposition();\n editor.dispatch('OpenNotification', { notification: { ...notification } });\n return notification;\n });\n };\n const close = () => {\n getTopNotification().each(notification => {\n getImplementation().close(notification);\n closeNotification(notification);\n reposition();\n });\n };\n const getNotifications = constant(notifications);\n const registerEvents = editor => {\n editor.on('SkinLoaded', () => {\n const serviceMessage = getServiceMessage(editor);\n if (serviceMessage) {\n open({\n text: serviceMessage,\n type: 'warning',\n timeout: 0\n }, false);\n }\n reposition();\n });\n editor.on('show ResizeEditor ResizeWindow NodeChange ToggleView FullscreenStateChanged', () => {\n requestAnimationFrame(reposition);\n });\n editor.on('remove', () => {\n each$e(notifications.slice(), notification => {\n getImplementation().close(notification);\n });\n });\n editor.on('keydown', e => {\n var _a;\n const isF12 = ((_a = e.key) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'f12' || e.keyCode === 123;\n if (e.altKey && isF12) {\n e.preventDefault();\n getTopNotification().map(notificationApi => SugarElement.fromDom(notificationApi.getEl())).each(elm => focus$1(elm));\n }\n });\n };\n registerEvents(editor);\n return {\n open,\n close,\n getNotifications\n };\n };\n\n const PluginManager = AddOnManager.PluginManager;\n\n const ThemeManager = AddOnManager.ThemeManager;\n\n var WindowManagerImpl = () => {\n const unimplemented = () => {\n throw new Error('Theme did not provide a WindowManager implementation.');\n };\n return {\n open: unimplemented,\n openUrl: unimplemented,\n alert: unimplemented,\n confirm: unimplemented,\n close: unimplemented\n };\n };\n\n const WindowManager = editor => {\n let dialogs = [];\n const getImplementation = () => {\n const theme = editor.theme;\n return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl();\n };\n const funcBind = (scope, f) => {\n return (...args) => {\n return f ? f.apply(scope, args) : undefined;\n };\n };\n const fireOpenEvent = dialog => {\n editor.dispatch('OpenWindow', { dialog });\n };\n const fireCloseEvent = dialog => {\n editor.dispatch('CloseWindow', { dialog });\n };\n const addDialog = dialog => {\n dialogs.push(dialog);\n fireOpenEvent(dialog);\n };\n const closeDialog = dialog => {\n fireCloseEvent(dialog);\n dialogs = filter$5(dialogs, otherDialog => {\n return otherDialog !== dialog;\n });\n if (dialogs.length === 0) {\n editor.focus();\n }\n };\n const getTopDialog = () => {\n return Optional.from(dialogs[dialogs.length - 1]);\n };\n const storeSelectionAndOpenDialog = openDialog => {\n editor.editorManager.setActive(editor);\n store(editor);\n editor.ui.show();\n const dialog = openDialog();\n addDialog(dialog);\n return dialog;\n };\n const open = (args, params) => {\n return storeSelectionAndOpenDialog(() => getImplementation().open(args, params, closeDialog));\n };\n const openUrl = args => {\n return storeSelectionAndOpenDialog(() => getImplementation().openUrl(args, closeDialog));\n };\n const alert = (message, callback, scope) => {\n const windowManagerImpl = getImplementation();\n windowManagerImpl.alert(message, funcBind(scope ? scope : windowManagerImpl, callback));\n };\n const confirm = (message, callback, scope) => {\n const windowManagerImpl = getImplementation();\n windowManagerImpl.confirm(message, funcBind(scope ? scope : windowManagerImpl, callback));\n };\n const close = () => {\n getTopDialog().each(dialog => {\n getImplementation().close(dialog);\n closeDialog(dialog);\n });\n };\n editor.on('remove', () => {\n each$e(dialogs, dialog => {\n getImplementation().close(dialog);\n });\n });\n return {\n open,\n openUrl,\n alert,\n confirm,\n close\n };\n };\n\n const displayNotification = (editor, message) => {\n editor.notificationManager.open({\n type: 'error',\n text: message\n });\n };\n const displayError = (editor, message) => {\n if (editor._skinLoaded) {\n displayNotification(editor, message);\n } else {\n editor.on('SkinLoaded', () => {\n displayNotification(editor, message);\n });\n }\n };\n const uploadError = (editor, message) => {\n displayError(editor, I18n.translate([\n 'Failed to upload image: {0}',\n message\n ]));\n };\n const logError = (editor, errorType, msg) => {\n fireError(editor, errorType, { message: msg });\n console.error(msg);\n };\n const createLoadError = (type, url, name) => name ? `Failed to load ${ type }: ${ name } from url ${ url }` : `Failed to load ${ type } url: ${ url }`;\n const pluginLoadError = (editor, url, name) => {\n logError(editor, 'PluginLoadError', createLoadError('plugin', url, name));\n };\n const iconsLoadError = (editor, url, name) => {\n logError(editor, 'IconsLoadError', createLoadError('icons', url, name));\n };\n const languageLoadError = (editor, url, name) => {\n logError(editor, 'LanguageLoadError', createLoadError('language', url, name));\n };\n const themeLoadError = (editor, url, name) => {\n logError(editor, 'ThemeLoadError', createLoadError('theme', url, name));\n };\n const modelLoadError = (editor, url, name) => {\n logError(editor, 'ModelLoadError', createLoadError('model', url, name));\n };\n const pluginInitError = (editor, name, err) => {\n const message = I18n.translate([\n 'Failed to initialize plugin: {0}',\n name\n ]);\n fireError(editor, 'PluginLoadError', { message });\n initError(message, err);\n displayError(editor, message);\n };\n const initError = (message, ...x) => {\n const console = window.console;\n if (console) {\n if (console.error) {\n console.error(message, ...x);\n } else {\n console.log(message, ...x);\n }\n }\n };\n\n const isContentCssSkinName = url => /^[a-z0-9\\-]+$/i.test(url);\n const toContentSkinResourceName = url => 'content/' + url + '/content.css';\n const isBundledCssSkinName = url => tinymce.Resource.has(toContentSkinResourceName(url));\n const getContentCssUrls = editor => {\n return transformToUrls(editor, getContentCss(editor));\n };\n const getFontCssUrls = editor => {\n return transformToUrls(editor, getFontCss(editor));\n };\n const transformToUrls = (editor, cssLinks) => {\n const skinUrl = editor.editorManager.baseURL + '/skins/content';\n const suffix = editor.editorManager.suffix;\n const contentCssFile = `content${ suffix }.css`;\n return map$3(cssLinks, url => {\n if (isBundledCssSkinName(url)) {\n return url;\n } else if (isContentCssSkinName(url) && !editor.inline) {\n return `${ skinUrl }/${ url }/${ contentCssFile }`;\n } else {\n return editor.documentBaseURI.toAbsolute(url);\n }\n });\n };\n const appendContentCssFromSettings = editor => {\n editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor), getFontCssUrls(editor));\n };\n\n const getAllImages = elm => {\n return elm ? from(elm.getElementsByTagName('img')) : [];\n };\n const ImageScanner = (uploadStatus, blobCache) => {\n const cachedPromises = {};\n const findAll = (elm, predicate = always) => {\n const images = filter$5(getAllImages(elm), img => {\n const src = img.src;\n if (img.hasAttribute('data-mce-bogus')) {\n return false;\n }\n if (img.hasAttribute('data-mce-placeholder')) {\n return false;\n }\n if (!src || src === Env.transparentSrc) {\n return false;\n }\n if (startsWith(src, 'blob:')) {\n return !uploadStatus.isUploaded(src) && predicate(img);\n }\n if (startsWith(src, 'data:')) {\n return predicate(img);\n }\n return false;\n });\n const promises = map$3(images, img => {\n const imageSrc = img.src;\n if (has$2(cachedPromises, imageSrc)) {\n return cachedPromises[imageSrc].then(imageInfo => {\n if (isString(imageInfo)) {\n return imageInfo;\n } else {\n return {\n image: img,\n blobInfo: imageInfo.blobInfo\n };\n }\n });\n } else {\n const newPromise = imageToBlobInfo(blobCache, imageSrc).then(blobInfo => {\n delete cachedPromises[imageSrc];\n return {\n image: img,\n blobInfo\n };\n }).catch(error => {\n delete cachedPromises[imageSrc];\n return error;\n });\n cachedPromises[imageSrc] = newPromise;\n return newPromise;\n }\n });\n return Promise.all(promises);\n };\n return { findAll };\n };\n\n const UploadStatus = () => {\n const PENDING = 1, UPLOADED = 2;\n let blobUriStatuses = {};\n const createStatus = (status, resultUri) => {\n return {\n status,\n resultUri\n };\n };\n const hasBlobUri = blobUri => {\n return blobUri in blobUriStatuses;\n };\n const getResultUri = blobUri => {\n const result = blobUriStatuses[blobUri];\n return result ? result.resultUri : null;\n };\n const isPending = blobUri => {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;\n };\n const isUploaded = blobUri => {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;\n };\n const markPending = blobUri => {\n blobUriStatuses[blobUri] = createStatus(PENDING, null);\n };\n const markUploaded = (blobUri, resultUri) => {\n blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);\n };\n const removeFailed = blobUri => {\n delete blobUriStatuses[blobUri];\n };\n const destroy = () => {\n blobUriStatuses = {};\n };\n return {\n hasBlobUri,\n getResultUri,\n isPending,\n isUploaded,\n markPending,\n markUploaded,\n removeFailed,\n destroy\n };\n };\n\n let count = 0;\n const seed = () => {\n const rnd = () => {\n return Math.round(random() * 4294967295).toString(36);\n };\n const now = new Date().getTime();\n return 's' + now.toString(36) + rnd() + rnd() + rnd();\n };\n const uuid = prefix => {\n return prefix + count++ + seed();\n };\n\n const BlobCache = () => {\n let cache = [];\n const mimeToExt = mime => {\n const mimes = {\n 'image/jpeg': 'jpg',\n 'image/jpg': 'jpg',\n 'image/gif': 'gif',\n 'image/png': 'png',\n 'image/apng': 'apng',\n 'image/avif': 'avif',\n 'image/svg+xml': 'svg',\n 'image/webp': 'webp',\n 'image/bmp': 'bmp',\n 'image/tiff': 'tiff'\n };\n return mimes[mime.toLowerCase()] || 'dat';\n };\n const create = (o, blob, base64, name, filename) => {\n if (isString(o)) {\n const id = o;\n return toBlobInfo({\n id,\n name,\n filename,\n blob: blob,\n base64: base64\n });\n } else if (isObject(o)) {\n return toBlobInfo(o);\n } else {\n throw new Error('Unknown input type');\n }\n };\n const toBlobInfo = o => {\n if (!o.blob || !o.base64) {\n throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');\n }\n const id = o.id || uuid('blobid');\n const name = o.name || id;\n const blob = o.blob;\n return {\n id: constant(id),\n name: constant(name),\n filename: constant(o.filename || name + '.' + mimeToExt(blob.type)),\n blob: constant(blob),\n base64: constant(o.base64),\n blobUri: constant(o.blobUri || URL.createObjectURL(blob)),\n uri: constant(o.uri)\n };\n };\n const add = blobInfo => {\n if (!get(blobInfo.id())) {\n cache.push(blobInfo);\n }\n };\n const findFirst = predicate => find$2(cache, predicate).getOrUndefined();\n const get = id => findFirst(cachedBlobInfo => cachedBlobInfo.id() === id);\n const getByUri = blobUri => findFirst(blobInfo => blobInfo.blobUri() === blobUri);\n const getByData = (base64, type) => findFirst(blobInfo => blobInfo.base64() === base64 && blobInfo.blob().type === type);\n const removeByUri = blobUri => {\n cache = filter$5(cache, blobInfo => {\n if (blobInfo.blobUri() === blobUri) {\n URL.revokeObjectURL(blobInfo.blobUri());\n return false;\n }\n return true;\n });\n };\n const destroy = () => {\n each$e(cache, cachedBlobInfo => {\n URL.revokeObjectURL(cachedBlobInfo.blobUri());\n });\n cache = [];\n };\n return {\n create,\n add,\n get,\n getByUri,\n getByData,\n findFirst,\n removeByUri,\n destroy\n };\n };\n\n const Uploader = (uploadStatus, settings) => {\n const pendingPromises = {};\n const pathJoin = (path1, path2) => {\n if (path1) {\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n }\n return path2;\n };\n const defaultHandler = (blobInfo, progress) => new Promise((success, failure) => {\n const xhr = new XMLHttpRequest();\n xhr.open('POST', settings.url);\n xhr.withCredentials = settings.credentials;\n xhr.upload.onprogress = e => {\n progress(e.loaded / e.total * 100);\n };\n xhr.onerror = () => {\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n };\n xhr.onload = () => {\n if (xhr.status < 200 || xhr.status >= 300) {\n failure('HTTP Error: ' + xhr.status);\n return;\n }\n const json = JSON.parse(xhr.responseText);\n if (!json || !isString(json.location)) {\n failure('Invalid JSON: ' + xhr.responseText);\n return;\n }\n success(pathJoin(settings.basePath, json.location));\n };\n const formData = new FormData();\n formData.append('file', blobInfo.blob(), blobInfo.filename());\n xhr.send(formData);\n });\n const uploadHandler = isFunction(settings.handler) ? settings.handler : defaultHandler;\n const noUpload = () => new Promise(resolve => {\n resolve([]);\n });\n const handlerSuccess = (blobInfo, url) => ({\n url,\n blobInfo,\n status: true\n });\n const handlerFailure = (blobInfo, error) => ({\n url: '',\n blobInfo,\n status: false,\n error\n });\n const resolvePending = (blobUri, result) => {\n Tools.each(pendingPromises[blobUri], resolve => {\n resolve(result);\n });\n delete pendingPromises[blobUri];\n };\n const uploadBlobInfo = (blobInfo, handler, openNotification) => {\n uploadStatus.markPending(blobInfo.blobUri());\n return new Promise(resolve => {\n let notification;\n let progress;\n try {\n const closeNotification = () => {\n if (notification) {\n notification.close();\n progress = noop;\n }\n };\n const success = url => {\n closeNotification();\n uploadStatus.markUploaded(blobInfo.blobUri(), url);\n resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));\n resolve(handlerSuccess(blobInfo, url));\n };\n const failure = error => {\n closeNotification();\n uploadStatus.removeFailed(blobInfo.blobUri());\n resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));\n resolve(handlerFailure(blobInfo, error));\n };\n progress = percent => {\n if (percent < 0 || percent > 100) {\n return;\n }\n Optional.from(notification).orThunk(() => Optional.from(openNotification).map(apply$1)).each(n => {\n notification = n;\n n.progressBar.value(percent);\n });\n };\n handler(blobInfo, progress).then(success, err => {\n failure(isString(err) ? { message: err } : err);\n });\n } catch (ex) {\n resolve(handlerFailure(blobInfo, ex));\n }\n });\n };\n const isDefaultHandler = handler => handler === defaultHandler;\n const pendingUploadBlobInfo = blobInfo => {\n const blobUri = blobInfo.blobUri();\n return new Promise(resolve => {\n pendingPromises[blobUri] = pendingPromises[blobUri] || [];\n pendingPromises[blobUri].push(resolve);\n });\n };\n const uploadBlobs = (blobInfos, openNotification) => {\n blobInfos = Tools.grep(blobInfos, blobInfo => !uploadStatus.isUploaded(blobInfo.blobUri()));\n return Promise.all(Tools.map(blobInfos, blobInfo => uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, uploadHandler, openNotification)));\n };\n const upload = (blobInfos, openNotification) => !settings.url && isDefaultHandler(uploadHandler) ? noUpload() : uploadBlobs(blobInfos, openNotification);\n return { upload };\n };\n\n const openNotification = editor => () => editor.notificationManager.open({\n text: editor.translate('Image uploading...'),\n type: 'info',\n timeout: -1,\n progressBar: true\n });\n const createUploader = (editor, uploadStatus) => Uploader(uploadStatus, {\n url: getImageUploadUrl(editor),\n basePath: getImageUploadBasePath(editor),\n credentials: getImagesUploadCredentials(editor),\n handler: getImagesUploadHandler(editor)\n });\n const ImageUploader = editor => {\n const uploadStatus = UploadStatus();\n const uploader = createUploader(editor, uploadStatus);\n return { upload: (blobInfos, showNotification = true) => uploader.upload(blobInfos, showNotification ? openNotification(editor) : undefined) };\n };\n\n const isEmptyForPadding = (editor, element) => editor.dom.isEmpty(element.dom) && isNonNullable(editor.schema.getTextBlockElements()[name(element)]);\n const addPaddingToEmpty = editor => element => {\n if (isEmptyForPadding(editor, element)) {\n append$1(element, SugarElement.fromHtml('
    '));\n }\n };\n const EditorUpload = editor => {\n const blobCache = BlobCache();\n let uploader, imageScanner;\n const uploadStatus = UploadStatus();\n const urlFilters = [];\n const aliveGuard = callback => {\n return result => {\n if (editor.selection) {\n return callback(result);\n }\n return [];\n };\n };\n const cacheInvalidator = url => url + (url.indexOf('?') === -1 ? '?' : '&') + new Date().getTime();\n const replaceString = (content, search, replace) => {\n let index = 0;\n do {\n index = content.indexOf(search, index);\n if (index !== -1) {\n content = content.substring(0, index) + replace + content.substr(index + search.length);\n index += replace.length - search.length + 1;\n }\n } while (index !== -1);\n return content;\n };\n const replaceImageUrl = (content, targetUrl, replacementUrl) => {\n const replacementString = `src=\"${ replacementUrl }\"${ replacementUrl === Env.transparentSrc ? ' data-mce-placeholder=\"1\"' : '' }`;\n content = replaceString(content, `src=\"${ targetUrl }\"`, replacementString);\n content = replaceString(content, 'data-mce-src=\"' + targetUrl + '\"', 'data-mce-src=\"' + replacementUrl + '\"');\n return content;\n };\n const replaceUrlInUndoStack = (targetUrl, replacementUrl) => {\n each$e(editor.undoManager.data, level => {\n if (level.type === 'fragmented') {\n level.fragments = map$3(level.fragments, fragment => replaceImageUrl(fragment, targetUrl, replacementUrl));\n } else {\n level.content = replaceImageUrl(level.content, targetUrl, replacementUrl);\n }\n });\n };\n const replaceImageUriInView = (image, resultUri) => {\n const src = editor.convertURL(resultUri, 'src');\n replaceUrlInUndoStack(image.src, resultUri);\n setAll$1(SugarElement.fromDom(image), {\n 'src': shouldReuseFileName(editor) ? cacheInvalidator(resultUri) : resultUri,\n 'data-mce-src': src\n });\n };\n const uploadImages = () => {\n if (!uploader) {\n uploader = createUploader(editor, uploadStatus);\n }\n return scanForImages().then(aliveGuard(imageInfos => {\n const blobInfos = map$3(imageInfos, imageInfo => imageInfo.blobInfo);\n return uploader.upload(blobInfos, openNotification(editor)).then(aliveGuard(result => {\n const imagesToRemove = [];\n let shouldDispatchChange = false;\n const filteredResult = map$3(result, (uploadInfo, index) => {\n const {blobInfo, image} = imageInfos[index];\n let removed = false;\n if (uploadInfo.status && shouldReplaceBlobUris(editor)) {\n if (uploadInfo.url && !contains$1(image.src, uploadInfo.url)) {\n shouldDispatchChange = true;\n }\n blobCache.removeByUri(image.src);\n if (isRtc(editor)) ; else {\n replaceImageUriInView(image, uploadInfo.url);\n }\n } else if (uploadInfo.error) {\n if (uploadInfo.error.remove) {\n replaceUrlInUndoStack(image.src, Env.transparentSrc);\n imagesToRemove.push(image);\n removed = true;\n }\n uploadError(editor, uploadInfo.error.message);\n }\n return {\n element: image,\n status: uploadInfo.status,\n uploadUri: uploadInfo.url,\n blobInfo,\n removed\n };\n });\n if (imagesToRemove.length > 0 && !isRtc(editor)) {\n editor.undoManager.transact(() => {\n each$e(fromDom$1(imagesToRemove), sugarElement => {\n const parentOpt = parent(sugarElement);\n remove$4(sugarElement);\n parentOpt.each(addPaddingToEmpty(editor));\n blobCache.removeByUri(sugarElement.dom.src);\n });\n });\n } else if (shouldDispatchChange) {\n editor.undoManager.dispatchChange();\n }\n return filteredResult;\n }));\n }));\n };\n const uploadImagesAuto = () => isAutomaticUploadsEnabled(editor) ? uploadImages() : Promise.resolve([]);\n const isValidDataUriImage = imgElm => forall(urlFilters, filter => filter(imgElm));\n const addFilter = filter => {\n urlFilters.push(filter);\n };\n const scanForImages = () => {\n if (!imageScanner) {\n imageScanner = ImageScanner(uploadStatus, blobCache);\n }\n return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(result => {\n const filteredResult = filter$5(result, resultItem => {\n if (isString(resultItem)) {\n displayError(editor, resultItem);\n return false;\n } else if (resultItem.uriType === 'blob') {\n return false;\n } else {\n return true;\n }\n });\n if (isRtc(editor)) ; else {\n each$e(filteredResult, resultItem => {\n replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());\n resultItem.image.src = resultItem.blobInfo.blobUri();\n resultItem.image.removeAttribute('data-mce-src');\n });\n }\n return filteredResult;\n }));\n };\n const destroy = () => {\n blobCache.destroy();\n uploadStatus.destroy();\n imageScanner = uploader = null;\n };\n const replaceBlobUris = content => {\n return content.replace(/src=\"(blob:[^\"]+)\"/g, (match, blobUri) => {\n const resultUri = uploadStatus.getResultUri(blobUri);\n if (resultUri) {\n return 'src=\"' + resultUri + '\"';\n }\n let blobInfo = blobCache.getByUri(blobUri);\n if (!blobInfo) {\n blobInfo = foldl(editor.editorManager.get(), (result, editor) => {\n return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);\n }, undefined);\n }\n if (blobInfo) {\n const blob = blobInfo.blob();\n return 'src=\"data:' + blob.type + ';base64,' + blobInfo.base64() + '\"';\n }\n return match;\n });\n };\n editor.on('SetContent', () => {\n if (isAutomaticUploadsEnabled(editor)) {\n uploadImagesAuto();\n } else {\n scanForImages();\n }\n });\n editor.on('RawSaveContent', e => {\n e.content = replaceBlobUris(e.content);\n });\n editor.on('GetContent', e => {\n if (e.source_view || e.format === 'raw' || e.format === 'tree') {\n return;\n }\n e.content = replaceBlobUris(e.content);\n });\n editor.on('PostRender', () => {\n editor.parser.addNodeFilter('img', images => {\n each$e(images, img => {\n const src = img.attr('src');\n if (!src || blobCache.getByUri(src)) {\n return;\n }\n const resultUri = uploadStatus.getResultUri(src);\n if (resultUri) {\n img.attr('src', resultUri);\n }\n });\n });\n });\n return {\n blobCache,\n addFilter,\n uploadImages,\n uploadImagesAuto,\n scanForImages,\n destroy\n };\n };\n\n const get$1 = editor => {\n const dom = editor.dom;\n const schemaType = editor.schema.type;\n const formats = {\n valigntop: [{\n selector: 'td,th',\n styles: { verticalAlign: 'top' }\n }],\n valignmiddle: [{\n selector: 'td,th',\n styles: { verticalAlign: 'middle' }\n }],\n valignbottom: [{\n selector: 'td,th',\n styles: { verticalAlign: 'bottom' }\n }],\n alignleft: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-left',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'left' },\n inherit: false,\n preview: false\n },\n {\n selector: 'img,audio,video',\n collapsed: false,\n styles: { float: 'left' },\n preview: 'font-family font-size'\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginLeft: '0px',\n marginRight: 'auto'\n },\n onformat: table => {\n dom.setStyle(table, 'float', null);\n },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-preview-object,[data-ephox-embed-iri]',\n ceFalseOverride: true,\n styles: { float: 'left' }\n }\n ],\n aligncenter: [\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'center' },\n inherit: false,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-center',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'img,audio,video',\n collapsed: false,\n styles: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-preview-object',\n ceFalseOverride: true,\n styles: {\n display: 'table',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n },\n {\n selector: '[data-ephox-embed-iri]',\n ceFalseOverride: true,\n styles: {\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n }\n ],\n alignright: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-right',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'right' },\n inherit: false,\n preview: 'font-family font-size'\n },\n {\n selector: 'img,audio,video',\n collapsed: false,\n styles: { float: 'right' },\n preview: 'font-family font-size'\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginRight: '0px',\n marginLeft: 'auto'\n },\n onformat: table => {\n dom.setStyle(table, 'float', null);\n },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-preview-object,[data-ephox-embed-iri]',\n ceFalseOverride: true,\n styles: { float: 'right' },\n preview: false\n }\n ],\n alignjustify: [{\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'justify' },\n inherit: false,\n preview: 'font-family font-size'\n }],\n bold: [\n {\n inline: 'strong',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n },\n {\n inline: 'span',\n styles: { fontWeight: 'bold' }\n },\n {\n inline: 'b',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n }\n ],\n italic: [\n {\n inline: 'em',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n },\n {\n inline: 'span',\n styles: { fontStyle: 'italic' }\n },\n {\n inline: 'i',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n }\n ],\n underline: [\n {\n inline: 'span',\n styles: { textDecoration: 'underline' },\n exact: true\n },\n {\n inline: 'u',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n }\n ],\n strikethrough: (() => {\n const span = {\n inline: 'span',\n styles: { textDecoration: 'line-through' },\n exact: true\n };\n const strike = {\n inline: 'strike',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n };\n const s = {\n inline: 's',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n };\n return schemaType !== 'html4' ? [\n s,\n span,\n strike\n ] : [\n span,\n s,\n strike\n ];\n })(),\n forecolor: {\n inline: 'span',\n styles: { color: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n hilitecolor: {\n inline: 'span',\n styles: { backgroundColor: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n fontname: {\n inline: 'span',\n toggle: false,\n styles: { fontFamily: '%value' },\n clear_child_styles: true\n },\n fontsize: {\n inline: 'span',\n toggle: false,\n styles: { fontSize: '%value' },\n clear_child_styles: true\n },\n lineheight: {\n selector: 'h1,h2,h3,h4,h5,h6,p,li,td,th,div',\n styles: { lineHeight: '%value' }\n },\n fontsize_class: {\n inline: 'span',\n attributes: { class: '%value' }\n },\n blockquote: {\n block: 'blockquote',\n wrapper: true,\n remove: 'all'\n },\n subscript: { inline: 'sub' },\n superscript: { inline: 'sup' },\n code: { inline: 'code' },\n link: {\n inline: 'a',\n selector: 'a',\n remove: 'all',\n split: true,\n deep: true,\n onmatch: (node, _fmt, _itemName) => {\n return isElement$6(node) && node.hasAttribute('href');\n },\n onformat: (elm, _fmt, vars) => {\n Tools.each(vars, (value, key) => {\n dom.setAttrib(elm, key, value);\n });\n }\n },\n lang: {\n inline: 'span',\n clear_child_styles: true,\n remove_similar: true,\n attributes: {\n 'lang': '%value',\n 'data-mce-lang': vars => {\n var _a;\n return (_a = vars === null || vars === void 0 ? void 0 : vars.customValue) !== null && _a !== void 0 ? _a : null;\n }\n }\n },\n removeformat: [\n {\n selector: 'b,strong,em,i,font,u,strike,s,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins,small',\n remove: 'all',\n split: true,\n expand: false,\n block_expand: true,\n deep: true\n },\n {\n selector: 'span',\n attributes: [\n 'style',\n 'class'\n ],\n remove: 'empty',\n split: true,\n expand: false,\n deep: true\n },\n {\n selector: '*',\n attributes: [\n 'style',\n 'class'\n ],\n split: false,\n expand: false,\n deep: true\n }\n ]\n };\n Tools.each('p h1 h2 h3 h4 h5 h6 div address pre dt dd samp'.split(/\\s/), name => {\n formats[name] = {\n block: name,\n remove: 'all'\n };\n });\n return formats;\n };\n\n const genericBase = {\n remove_similar: true,\n inherit: false\n };\n const cellBase = {\n selector: 'td,th',\n ...genericBase\n };\n const cellFormats = {\n tablecellbackgroundcolor: {\n styles: { backgroundColor: '%value' },\n ...cellBase\n },\n tablecellverticalalign: {\n styles: { 'vertical-align': '%value' },\n ...cellBase\n },\n tablecellbordercolor: {\n styles: { borderColor: '%value' },\n ...cellBase\n },\n tablecellclass: {\n classes: ['%value'],\n ...cellBase\n },\n tableclass: {\n selector: 'table',\n classes: ['%value'],\n ...genericBase\n },\n tablecellborderstyle: {\n styles: { borderStyle: '%value' },\n ...cellBase\n },\n tablecellborderwidth: {\n styles: { borderWidth: '%value' },\n ...cellBase\n }\n };\n const get = constant(cellFormats);\n\n const FormatRegistry = editor => {\n const formats = {};\n const get$2 = name => isNonNullable(name) ? formats[name] : formats;\n const has = name => has$2(formats, name);\n const register = (name, format) => {\n if (name) {\n if (!isString(name)) {\n each$d(name, (format, name) => {\n register(name, format);\n });\n } else {\n if (!isArray$1(format)) {\n format = [format];\n }\n each$e(format, format => {\n if (isUndefined(format.deep)) {\n format.deep = !isSelectorFormat(format);\n }\n if (isUndefined(format.split)) {\n format.split = !isSelectorFormat(format) || isInlineFormat(format);\n }\n if (isUndefined(format.remove) && isSelectorFormat(format) && !isInlineFormat(format)) {\n format.remove = 'none';\n }\n if (isSelectorFormat(format) && isInlineFormat(format)) {\n format.mixed = true;\n format.block_expand = true;\n }\n if (isString(format.classes)) {\n format.classes = format.classes.split(/\\s+/);\n }\n });\n formats[name] = format;\n }\n }\n };\n const unregister = name => {\n if (name && formats[name]) {\n delete formats[name];\n }\n return formats;\n };\n register(get$1(editor));\n register(get());\n register(getFormats(editor));\n return {\n get: get$2,\n has,\n register,\n unregister\n };\n };\n\n const each$3 = Tools.each;\n const dom = DOMUtils.DOM;\n const isPreviewItem = item => isNonNullable(item) && isObject(item);\n const parsedSelectorToHtml = (ancestry, editor) => {\n const schema = editor && editor.schema || Schema({});\n const decorate = (elm, item) => {\n if (item.classes.length > 0) {\n dom.addClass(elm, item.classes.join(' '));\n }\n dom.setAttribs(elm, item.attrs);\n };\n const createElement = sItem => {\n const item = isString(sItem) ? {\n name: sItem,\n classes: [],\n attrs: {}\n } : sItem;\n const elm = dom.create(item.name);\n decorate(elm, item);\n return elm;\n };\n const getRequiredParent = (elm, candidate) => {\n const elmRule = schema.getElementRule(elm.nodeName.toLowerCase());\n const parentsRequired = elmRule === null || elmRule === void 0 ? void 0 : elmRule.parentsRequired;\n if (parentsRequired && parentsRequired.length) {\n return candidate && contains$2(parentsRequired, candidate) ? candidate : parentsRequired[0];\n } else {\n return false;\n }\n };\n const wrapInHtml = (elm, ancestors, siblings) => {\n let parentCandidate;\n const ancestor = ancestors[0];\n const ancestorName = isPreviewItem(ancestor) ? ancestor.name : undefined;\n const parentRequired = getRequiredParent(elm, ancestorName);\n if (parentRequired) {\n if (ancestorName === parentRequired) {\n parentCandidate = ancestor;\n ancestors = ancestors.slice(1);\n } else {\n parentCandidate = parentRequired;\n }\n } else if (ancestor) {\n parentCandidate = ancestor;\n ancestors = ancestors.slice(1);\n } else if (!siblings) {\n return elm;\n }\n const parent = parentCandidate ? createElement(parentCandidate) : dom.create('div');\n parent.appendChild(elm);\n if (siblings) {\n Tools.each(siblings, sibling => {\n const siblingElm = createElement(sibling);\n parent.insertBefore(siblingElm, elm);\n });\n }\n const parentSiblings = isPreviewItem(parentCandidate) ? parentCandidate.siblings : undefined;\n return wrapInHtml(parent, ancestors, parentSiblings);\n };\n const fragment = dom.create('div');\n if (ancestry.length > 0) {\n const item = ancestry[0];\n const elm = createElement(item);\n const siblings = isPreviewItem(item) ? item.siblings : undefined;\n fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), siblings));\n }\n return fragment;\n };\n const parseSelectorItem = item => {\n item = Tools.trim(item);\n let tagName = 'div';\n const obj = {\n name: tagName,\n classes: [],\n attrs: {},\n selector: item\n };\n if (item !== '*') {\n tagName = item.replace(/(?:([#\\.]|::?)([\\w\\-]+)|(\\[)([^\\]]+)\\]?)/g, ($0, $1, $2, $3, $4) => {\n switch ($1) {\n case '#':\n obj.attrs.id = $2;\n break;\n case '.':\n obj.classes.push($2);\n break;\n case ':':\n if (Tools.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {\n obj.attrs[$2] = $2;\n }\n break;\n }\n if ($3 === '[') {\n const m = $4.match(/([\\w\\-]+)(?:\\=\\\"([^\\\"]+))?/);\n if (m) {\n obj.attrs[m[1]] = m[2];\n }\n }\n return '';\n });\n }\n obj.name = tagName || 'div';\n return obj;\n };\n const parseSelector = selector => {\n if (!isString(selector)) {\n return [];\n }\n selector = selector.split(/\\s*,\\s*/)[0];\n selector = selector.replace(/\\s*(~\\+|~|\\+|>)\\s*/g, '$1');\n return Tools.map(selector.split(/(?:>|\\s+(?![^\\[\\]]+\\]))/), item => {\n const siblings = Tools.map(item.split(/(?:~\\+|~|\\+)/), parseSelectorItem);\n const obj = siblings.pop();\n if (siblings.length) {\n obj.siblings = siblings;\n }\n return obj;\n }).reverse();\n };\n const getCssText = (editor, format) => {\n let previewCss = '';\n let previewStyles = getPreviewStyles(editor);\n if (previewStyles === '') {\n return '';\n }\n const removeVars = val => {\n return isString(val) ? val.replace(/%(\\w+)/g, '') : '';\n };\n const getComputedStyle = (name, elm) => {\n return dom.getStyle(elm !== null && elm !== void 0 ? elm : editor.getBody(), name, true);\n };\n if (isString(format)) {\n const formats = editor.formatter.get(format);\n if (!formats) {\n return '';\n }\n format = formats[0];\n }\n if ('preview' in format) {\n const preview = format.preview;\n if (preview === false) {\n return '';\n } else {\n previewStyles = preview || previewStyles;\n }\n }\n let name = format.block || format.inline || 'span';\n let previewFrag;\n const items = parseSelector(format.selector);\n if (items.length > 0) {\n if (!items[0].name) {\n items[0].name = name;\n }\n name = format.selector;\n previewFrag = parsedSelectorToHtml(items, editor);\n } else {\n previewFrag = parsedSelectorToHtml([name], editor);\n }\n const previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;\n each$3(format.styles, (value, name) => {\n const newValue = removeVars(value);\n if (newValue) {\n dom.setStyle(previewElm, name, newValue);\n }\n });\n each$3(format.attributes, (value, name) => {\n const newValue = removeVars(value);\n if (newValue) {\n dom.setAttrib(previewElm, name, newValue);\n }\n });\n each$3(format.classes, value => {\n const newValue = removeVars(value);\n if (!dom.hasClass(previewElm, newValue)) {\n dom.addClass(previewElm, newValue);\n }\n });\n editor.dispatch('PreviewFormats');\n dom.setStyles(previewFrag, {\n position: 'absolute',\n left: -65535\n });\n editor.getBody().appendChild(previewFrag);\n const rawParentFontSize = getComputedStyle('fontSize');\n const parentFontSize = /px$/.test(rawParentFontSize) ? parseInt(rawParentFontSize, 10) : 0;\n each$3(previewStyles.split(' '), name => {\n let value = getComputedStyle(name, previewElm);\n if (name === 'background-color' && /transparent|rgba\\s*\\([^)]+,\\s*0\\)/.test(value)) {\n value = getComputedStyle(name);\n if (rgbaToHexString(value).toLowerCase() === '#ffffff') {\n return;\n }\n }\n if (name === 'color') {\n if (rgbaToHexString(value).toLowerCase() === '#000000') {\n return;\n }\n }\n if (name === 'font-size') {\n if (/em|%$/.test(value)) {\n if (parentFontSize === 0) {\n return;\n }\n const numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1);\n value = numValue * parentFontSize + 'px';\n }\n }\n if (name === 'border' && value) {\n previewCss += 'padding:0 2px;';\n }\n previewCss += name + ':' + value + ';';\n });\n editor.dispatch('AfterPreviewFormats');\n dom.remove(previewFrag);\n return previewCss;\n };\n\n const setup$s = editor => {\n editor.addShortcut('meta+b', '', 'Bold');\n editor.addShortcut('meta+i', '', 'Italic');\n editor.addShortcut('meta+u', '', 'Underline');\n for (let i = 1; i <= 6; i++) {\n editor.addShortcut('access+' + i, '', [\n 'FormatBlock',\n false,\n 'h' + i\n ]);\n }\n editor.addShortcut('access+7', '', [\n 'FormatBlock',\n false,\n 'p'\n ]);\n editor.addShortcut('access+8', '', [\n 'FormatBlock',\n false,\n 'div'\n ]);\n editor.addShortcut('access+9', '', [\n 'FormatBlock',\n false,\n 'address'\n ]);\n };\n\n const Formatter = editor => {\n const formats = FormatRegistry(editor);\n const formatChangeState = Cell({});\n setup$s(editor);\n setup$v(editor);\n if (!isRtc(editor)) {\n setup$u(formatChangeState, editor);\n }\n return {\n get: formats.get,\n has: formats.has,\n register: formats.register,\n unregister: formats.unregister,\n apply: (name, vars, node) => {\n applyFormat(editor, name, vars, node);\n },\n remove: (name, vars, node, similar) => {\n removeFormat(editor, name, vars, node, similar);\n },\n toggle: (name, vars, node) => {\n toggleFormat(editor, name, vars, node);\n },\n match: (name, vars, node, similar) => matchFormat(editor, name, vars, node, similar),\n closest: names => closestFormat(editor, names),\n matchAll: (names, vars) => matchAllFormats(editor, names, vars),\n matchNode: (node, name, vars, similar) => matchNodeFormat(editor, node, name, vars, similar),\n canApply: name => canApplyFormat(editor, name),\n formatChanged: (formats, callback, similar, vars) => formatChanged(editor, formatChangeState, formats, callback, similar, vars),\n getCssText: curry(getCssText, editor)\n };\n };\n\n const shouldIgnoreCommand = cmd => {\n switch (cmd.toLowerCase()) {\n case 'undo':\n case 'redo':\n case 'mcefocus':\n return true;\n default:\n return false;\n }\n };\n const registerEvents = (editor, undoManager, locks) => {\n const isFirstTypedCharacter = Cell(false);\n const addNonTypingUndoLevel = e => {\n setTyping(undoManager, false, locks);\n undoManager.add({}, e);\n };\n editor.on('init', () => {\n undoManager.add();\n });\n editor.on('BeforeExecCommand', e => {\n const cmd = e.command;\n if (!shouldIgnoreCommand(cmd)) {\n endTyping(undoManager, locks);\n undoManager.beforeChange();\n }\n });\n editor.on('ExecCommand', e => {\n const cmd = e.command;\n if (!shouldIgnoreCommand(cmd)) {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('ObjectResizeStart cut', () => {\n undoManager.beforeChange();\n });\n editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\n editor.on('dragend', addNonTypingUndoLevel);\n editor.on('keyup', e => {\n const keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n const isMeta = Env.os.isMacOS() && e.key === 'Meta';\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey || isMeta) {\n addNonTypingUndoLevel();\n editor.nodeChanged();\n }\n if (keyCode === 46 || keyCode === 8) {\n editor.nodeChanged();\n }\n if (isFirstTypedCharacter.get() && undoManager.typing && !isEq$1(createFromEditor(editor), undoManager.data[0])) {\n if (!editor.isDirty()) {\n editor.setDirty(true);\n }\n editor.dispatch('TypingUndo');\n isFirstTypedCharacter.set(false);\n editor.nodeChanged();\n }\n });\n editor.on('keydown', e => {\n const keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) {\n if (undoManager.typing) {\n addNonTypingUndoLevel(e);\n }\n return;\n }\n const modKey = e.ctrlKey && !e.altKey || e.metaKey;\n if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !undoManager.typing && !modKey) {\n undoManager.beforeChange();\n setTyping(undoManager, true, locks);\n undoManager.add({}, e);\n isFirstTypedCharacter.set(true);\n return;\n }\n const hasOnlyMetaOrCtrlModifier = Env.os.isMacOS() ? e.metaKey : e.ctrlKey && !e.altKey;\n if (hasOnlyMetaOrCtrlModifier) {\n undoManager.beforeChange();\n }\n });\n editor.on('mousedown', e => {\n if (undoManager.typing) {\n addNonTypingUndoLevel(e);\n }\n });\n const isInsertReplacementText = event => event.inputType === 'insertReplacementText';\n const isInsertTextDataNull = event => event.inputType === 'insertText' && event.data === null;\n const isInsertFromPasteOrDrop = event => event.inputType === 'insertFromPaste' || event.inputType === 'insertFromDrop';\n editor.on('input', e => {\n if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e) || isInsertFromPasteOrDrop(e))) {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('AddUndo Undo Redo ClearUndos', e => {\n if (!e.isDefaultPrevented()) {\n editor.nodeChanged();\n }\n });\n };\n const addKeyboardShortcuts = editor => {\n editor.addShortcut('meta+z', '', 'Undo');\n editor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\n };\n\n const UndoManager = editor => {\n const beforeBookmark = value$2();\n const locks = Cell(0);\n const index = Cell(0);\n const undoManager = {\n data: [],\n typing: false,\n beforeChange: () => {\n beforeChange(editor, locks, beforeBookmark);\n },\n add: (level, event) => {\n return addUndoLevel(editor, undoManager, index, locks, beforeBookmark, level, event);\n },\n dispatchChange: () => {\n editor.setDirty(true);\n const level = createFromEditor(editor);\n level.bookmark = getUndoBookmark(editor.selection);\n editor.dispatch('change', {\n level,\n lastLevel: get$b(undoManager.data, index.get()).getOrUndefined()\n });\n },\n undo: () => {\n return undo(editor, undoManager, locks, index);\n },\n redo: () => {\n return redo(editor, index, undoManager.data);\n },\n clear: () => {\n clear(editor, undoManager, index);\n },\n reset: () => {\n reset(editor, undoManager);\n },\n hasUndo: () => {\n return hasUndo(editor, undoManager, index);\n },\n hasRedo: () => {\n return hasRedo(editor, undoManager, index);\n },\n transact: callback => {\n return transact(editor, undoManager, locks, callback);\n },\n ignore: callback => {\n ignore(editor, locks, callback);\n },\n extra: (callback1, callback2) => {\n extra(editor, undoManager, index, callback1, callback2);\n }\n };\n if (!isRtc(editor)) {\n registerEvents(editor, undoManager, locks);\n }\n addKeyboardShortcuts(editor);\n return undoManager;\n };\n\n const nonTypingKeycodes = [\n 9,\n 27,\n VK.HOME,\n VK.END,\n 19,\n 20,\n 44,\n 144,\n 145,\n 33,\n 34,\n 45,\n 16,\n 17,\n 18,\n 91,\n 92,\n 93,\n VK.DOWN,\n VK.UP,\n VK.LEFT,\n VK.RIGHT\n ].concat(Env.browser.isFirefox() ? [224] : []);\n const placeholderAttr = 'data-mce-placeholder';\n const isKeyboardEvent = e => e.type === 'keydown' || e.type === 'keyup';\n const isDeleteEvent = e => {\n const keyCode = e.keyCode;\n return keyCode === VK.BACKSPACE || keyCode === VK.DELETE;\n };\n const isNonTypingKeyboardEvent = e => {\n if (isKeyboardEvent(e)) {\n const keyCode = e.keyCode;\n return !isDeleteEvent(e) && (VK.metaKeyPressed(e) || e.altKey || keyCode >= 112 && keyCode <= 123 || contains$2(nonTypingKeycodes, keyCode));\n } else {\n return false;\n }\n };\n const isTypingKeyboardEvent = e => isKeyboardEvent(e) && !(isDeleteEvent(e) || e.type === 'keyup' && e.keyCode === 229);\n const isVisuallyEmpty = (dom, rootElm, forcedRootBlock) => {\n if (dom.isEmpty(rootElm, undefined, {\n skipBogus: false,\n includeZwsp: true\n })) {\n const firstElement = rootElm.firstElementChild;\n if (!firstElement) {\n return true;\n } else if (dom.getStyle(rootElm.firstElementChild, 'padding-left') || dom.getStyle(rootElm.firstElementChild, 'padding-right')) {\n return false;\n } else {\n return forcedRootBlock === firstElement.nodeName.toLowerCase();\n }\n } else {\n return false;\n }\n };\n const setup$r = editor => {\n var _a;\n const dom = editor.dom;\n const rootBlock = getForcedRootBlock(editor);\n const placeholder = (_a = getPlaceholder(editor)) !== null && _a !== void 0 ? _a : '';\n const updatePlaceholder = (e, initial) => {\n if (isNonTypingKeyboardEvent(e)) {\n return;\n }\n const body = editor.getBody();\n const showPlaceholder = isTypingKeyboardEvent(e) ? false : isVisuallyEmpty(dom, body, rootBlock);\n const isPlaceholderShown = dom.getAttrib(body, placeholderAttr) !== '';\n if (isPlaceholderShown !== showPlaceholder || initial) {\n dom.setAttrib(body, placeholderAttr, showPlaceholder ? placeholder : null);\n firePlaceholderToggle(editor, showPlaceholder);\n editor.on(showPlaceholder ? 'keydown' : 'keyup', updatePlaceholder);\n editor.off(showPlaceholder ? 'keyup' : 'keydown', updatePlaceholder);\n }\n };\n if (isNotEmpty(placeholder)) {\n editor.on('init', e => {\n updatePlaceholder(e, true);\n editor.on('change SetContent ExecCommand', updatePlaceholder);\n editor.on('paste', e => Delay.setEditorTimeout(editor, () => updatePlaceholder(e)));\n });\n }\n };\n\n const blockPosition = (block, position) => ({\n block,\n position\n });\n const blockBoundary = (from, to) => ({\n from,\n to\n });\n const getBlockPosition = (rootNode, pos) => {\n const rootElm = SugarElement.fromDom(rootNode);\n const containerElm = SugarElement.fromDom(pos.container());\n return getParentBlock$2(rootElm, containerElm).map(block => blockPosition(block, pos));\n };\n const isNotAncestorial = blockBoundary => !(contains(blockBoundary.to.block, blockBoundary.from.block) || contains(blockBoundary.from.block, blockBoundary.to.block));\n const isDifferentBlocks = blockBoundary => !eq(blockBoundary.from.block, blockBoundary.to.block);\n const getClosestHost = (root, scope) => {\n const isRoot = node => eq(node, root);\n const isHost = node => isTableCell$2(node) || isContentEditableTrue$3(node.dom);\n return closest$4(scope, isHost, isRoot).filter(isElement$7).getOr(root);\n };\n const hasSameHost = (rootNode, blockBoundary) => {\n const root = SugarElement.fromDom(rootNode);\n return eq(getClosestHost(root, blockBoundary.from.block), getClosestHost(root, blockBoundary.to.block));\n };\n const isEditable$1 = blockBoundary => isContentEditableFalse$b(blockBoundary.from.block.dom) === false && isContentEditableFalse$b(blockBoundary.to.block.dom) === false;\n const hasValidBlocks = blockBoundary => {\n const isValidBlock = block => isTextBlock$2(block) || hasBlockAttr(block.dom) || isListItem$1(block);\n return isValidBlock(blockBoundary.from.block) && isValidBlock(blockBoundary.to.block);\n };\n const skipLastBr = (schema, rootNode, forward, blockPosition) => {\n if (isBr$6(blockPosition.position.getNode()) && !isEmpty$2(schema, blockPosition.block)) {\n return positionIn(false, blockPosition.block.dom).bind(lastPositionInBlock => {\n if (lastPositionInBlock.isEqual(blockPosition.position)) {\n return fromPosition(forward, rootNode, lastPositionInBlock).bind(to => getBlockPosition(rootNode, to));\n } else {\n return Optional.some(blockPosition);\n }\n }).getOr(blockPosition);\n } else {\n return blockPosition;\n }\n };\n const readFromRange = (schema, rootNode, forward, rng) => {\n const fromBlockPos = getBlockPosition(rootNode, CaretPosition.fromRangeStart(rng));\n const toBlockPos = fromBlockPos.bind(blockPos => fromPosition(forward, rootNode, blockPos.position).bind(to => getBlockPosition(rootNode, to).map(blockPos => skipLastBr(schema, rootNode, forward, blockPos))));\n return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(blockBoundary => isDifferentBlocks(blockBoundary) && hasSameHost(rootNode, blockBoundary) && isEditable$1(blockBoundary) && hasValidBlocks(blockBoundary) && isNotAncestorial(blockBoundary));\n };\n const read$1 = (schema, rootNode, forward, rng) => rng.collapsed ? readFromRange(schema, rootNode, forward, rng) : Optional.none();\n\n const getChildrenUntilBlockBoundary = (block, schema) => {\n const children = children$1(block);\n return findIndex$2(children, el => schema.isBlock(name(el))).fold(constant(children), index => children.slice(0, index));\n };\n const extractChildren = (block, schema) => {\n const children = getChildrenUntilBlockBoundary(block, schema);\n each$e(children, remove$4);\n return children;\n };\n const removeEmptyRoot = (schema, rootNode, block) => {\n const parents = parentsAndSelf(block, rootNode);\n return find$2(parents.reverse(), element => isEmpty$2(schema, element)).each(remove$4);\n };\n const isEmptyBefore = (schema, el) => filter$5(prevSiblings(el), el => !isEmpty$2(schema, el)).length === 0;\n const nestedBlockMerge = (rootNode, fromBlock, toBlock, schema, insertionPoint) => {\n if (isEmpty$2(schema, toBlock)) {\n fillWithPaddingBr(toBlock);\n return firstPositionIn(toBlock.dom);\n }\n if (isEmptyBefore(schema, insertionPoint) && isEmpty$2(schema, fromBlock)) {\n before$3(insertionPoint, SugarElement.fromTag('br'));\n }\n const position = prevPosition(toBlock.dom, CaretPosition.before(insertionPoint.dom));\n each$e(extractChildren(fromBlock, schema), child => {\n before$3(insertionPoint, child);\n });\n removeEmptyRoot(schema, rootNode, fromBlock);\n return position;\n };\n const isInline = (schema, node) => schema.isInline(name(node));\n const sidelongBlockMerge = (rootNode, fromBlock, toBlock, schema) => {\n if (isEmpty$2(schema, toBlock)) {\n if (isEmpty$2(schema, fromBlock)) {\n const getInlineToBlockDescendants = el => {\n const helper = (node, elements) => firstChild(node).fold(() => elements, child => isInline(schema, child) ? helper(child, elements.concat(shallow$1(child))) : elements);\n return helper(el, []);\n };\n const newFromBlockDescendants = foldr(getInlineToBlockDescendants(toBlock), (element, descendant) => {\n wrap$2(element, descendant);\n return descendant;\n }, createPaddingBr());\n empty(fromBlock);\n append$1(fromBlock, newFromBlockDescendants);\n }\n remove$4(toBlock);\n return firstPositionIn(fromBlock.dom);\n }\n const position = lastPositionIn(toBlock.dom);\n each$e(extractChildren(fromBlock, schema), child => {\n append$1(toBlock, child);\n });\n removeEmptyRoot(schema, rootNode, fromBlock);\n return position;\n };\n const findInsertionPoint = (toBlock, block) => {\n const parentsAndSelf$1 = parentsAndSelf(block, toBlock);\n return Optional.from(parentsAndSelf$1[parentsAndSelf$1.length - 1]);\n };\n const getInsertionPoint = (fromBlock, toBlock) => contains(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Optional.none();\n const trimBr = (first, block) => {\n positionIn(first, block.dom).bind(position => Optional.from(position.getNode())).map(SugarElement.fromDom).filter(isBr$5).each(remove$4);\n };\n const mergeBlockInto = (rootNode, fromBlock, toBlock, schema) => {\n trimBr(true, fromBlock);\n trimBr(false, toBlock);\n return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock, schema), curry(nestedBlockMerge, rootNode, fromBlock, toBlock, schema));\n };\n const mergeBlocks = (rootNode, forward, block1, block2, schema) => forward ? mergeBlockInto(rootNode, block2, block1, schema) : mergeBlockInto(rootNode, block1, block2, schema);\n\n const backspaceDelete$a = (editor, forward) => {\n const rootNode = SugarElement.fromDom(editor.getBody());\n const position = read$1(editor.schema, rootNode.dom, forward, editor.selection.getRng()).map(blockBoundary => () => {\n mergeBlocks(rootNode, forward, blockBoundary.from.block, blockBoundary.to.block, editor.schema).each(pos => {\n editor.selection.setRng(pos.toRange());\n });\n });\n return position;\n };\n\n const deleteRangeMergeBlocks = (rootNode, selection, schema) => {\n const rng = selection.getRng();\n return lift2(getParentBlock$2(rootNode, SugarElement.fromDom(rng.startContainer)), getParentBlock$2(rootNode, SugarElement.fromDom(rng.endContainer)), (block1, block2) => {\n if (!eq(block1, block2)) {\n return Optional.some(() => {\n rng.deleteContents();\n mergeBlocks(rootNode, true, block1, block2, schema).each(pos => {\n selection.setRng(pos.toRange());\n });\n });\n } else {\n return Optional.none();\n }\n }).getOr(Optional.none());\n };\n const isRawNodeInTable = (root, rawNode) => {\n const node = SugarElement.fromDom(rawNode);\n const isRoot = curry(eq, root);\n return ancestor$4(node, isTableCell$2, isRoot).isSome();\n };\n const isSelectionInTable = (root, rng) => isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);\n const isEverythingSelected = (root, rng) => {\n const noPrevious = prevPosition(root.dom, CaretPosition.fromRangeStart(rng)).isNone();\n const noNext = nextPosition(root.dom, CaretPosition.fromRangeEnd(rng)).isNone();\n return !isSelectionInTable(root, rng) && noPrevious && noNext;\n };\n const emptyEditor = editor => {\n return Optional.some(() => {\n editor.setContent('');\n editor.selection.setCursorLocation();\n });\n };\n const deleteRange$2 = editor => {\n const rootNode = SugarElement.fromDom(editor.getBody());\n const rng = editor.selection.getRng();\n return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection, editor.schema);\n };\n const backspaceDelete$9 = (editor, _forward) => editor.selection.isCollapsed() ? Optional.none() : deleteRange$2(editor);\n\n const showCaret = (direction, editor, node, before, scrollIntoView) => Optional.from(editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView));\n const getNodeRange = node => {\n const rng = node.ownerDocument.createRange();\n rng.selectNode(node);\n return rng;\n };\n const selectNode = (editor, node) => {\n const e = editor.dispatch('BeforeObjectSelected', { target: node });\n if (e.isDefaultPrevented()) {\n return Optional.none();\n }\n return Optional.some(getNodeRange(node));\n };\n const renderCaretAtRange = (editor, range, scrollIntoView) => {\n const normalizedRange = normalizeRange(1, editor.getBody(), range);\n const caretPosition = CaretPosition.fromRangeStart(normalizedRange);\n const caretPositionNode = caretPosition.getNode();\n if (isInlineFakeCaretTarget(caretPositionNode)) {\n return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);\n }\n const caretPositionBeforeNode = caretPosition.getNode(true);\n if (isInlineFakeCaretTarget(caretPositionBeforeNode)) {\n return showCaret(1, editor, caretPositionBeforeNode, false, false);\n }\n const ceRoot = getContentEditableRoot$1(editor.dom.getRoot(), caretPosition.getNode());\n if (isInlineFakeCaretTarget(ceRoot)) {\n return showCaret(1, editor, ceRoot, false, scrollIntoView);\n }\n return Optional.none();\n };\n const renderRangeCaret = (editor, range, scrollIntoView) => range.collapsed ? renderCaretAtRange(editor, range, scrollIntoView).getOr(range) : range;\n\n const isBeforeBoundary = pos => isBeforeContentEditableFalse(pos) || isBeforeMedia(pos);\n const isAfterBoundary = pos => isAfterContentEditableFalse(pos) || isAfterMedia(pos);\n const trimEmptyTextNode = (dom, node) => {\n if (isText$b(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n const deleteContentAndShowCaret = (editor, range, node, direction, forward, peekCaretPosition) => {\n showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true).each(caretRange => {\n if (range.collapsed) {\n const deleteRange = range.cloneRange();\n if (forward) {\n deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset);\n } else {\n deleteRange.setStart(caretRange.endContainer, caretRange.endOffset);\n }\n deleteRange.deleteContents();\n } else {\n range.deleteContents();\n }\n editor.selection.setRng(caretRange);\n });\n trimEmptyTextNode(editor.dom, node);\n };\n const deleteBoundaryText = (editor, forward) => {\n const range = editor.selection.getRng();\n if (!isText$b(range.commonAncestorContainer)) {\n return Optional.none();\n }\n const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n const caretWalker = CaretWalker(editor.getBody());\n const getNextPosFn = curry(getVisualCaretPosition, forward ? caretWalker.next : caretWalker.prev);\n const isBeforeFn = forward ? isBeforeBoundary : isAfterBoundary;\n const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n const nextCaretPosition = getNextPosFn(caretPosition);\n const normalizedNextCaretPosition = nextCaretPosition ? normalizePosition(forward, nextCaretPosition) : nextCaretPosition;\n if (!normalizedNextCaretPosition || !isMoveInsideSameBlock(caretPosition, normalizedNextCaretPosition)) {\n return Optional.none();\n } else if (isBeforeFn(normalizedNextCaretPosition)) {\n return Optional.some(() => deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, normalizedNextCaretPosition));\n }\n const peekCaretPosition = getNextPosFn(normalizedNextCaretPosition);\n if (peekCaretPosition && isBeforeFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(normalizedNextCaretPosition, peekCaretPosition)) {\n return Optional.some(() => deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition));\n }\n }\n return Optional.none();\n };\n const backspaceDelete$8 = (editor, forward) => deleteBoundaryText(editor, forward);\n\n const getEdgeCefPosition = (editor, atStart) => {\n const root = editor.getBody();\n return atStart ? firstPositionIn(root).filter(isBeforeContentEditableFalse) : lastPositionIn(root).filter(isAfterContentEditableFalse);\n };\n const isCefAtEdgeSelected = editor => {\n const rng = editor.selection.getRng();\n return !rng.collapsed && (getEdgeCefPosition(editor, true).exists(pos => pos.isEqual(CaretPosition.fromRangeStart(rng))) || getEdgeCefPosition(editor, false).exists(pos => pos.isEqual(CaretPosition.fromRangeEnd(rng))));\n };\n\n const isCompoundElement = node => isNonNullable(node) && (isTableCell$2(SugarElement.fromDom(node)) || isListItem$1(SugarElement.fromDom(node)));\n const DeleteAction = Adt.generate([\n { remove: ['element'] },\n { moveToElement: ['element'] },\n { moveToPosition: ['position'] }\n ]);\n const isAtContentEditableBlockCaret = (forward, from) => {\n const elm = from.getNode(!forward);\n const caretLocation = forward ? 'after' : 'before';\n return isElement$6(elm) && elm.getAttribute('data-mce-caret') === caretLocation;\n };\n const isDeleteFromCefDifferentBlocks = (root, forward, from, to, schema) => {\n const inSameBlock = elm => schema.isInline(elm.nodeName.toLowerCase()) && !isInSameBlock(from, to, root);\n return getRelativeCefElm(!forward, from).fold(() => getRelativeCefElm(forward, to).fold(never, inSameBlock), inSameBlock);\n };\n const deleteEmptyBlockOrMoveToCef = (schema, root, forward, from, to) => {\n const toCefElm = to.getNode(!forward);\n return getParentBlock$2(SugarElement.fromDom(root), SugarElement.fromDom(from.getNode())).map(blockElm => isEmpty$2(schema, blockElm) ? DeleteAction.remove(blockElm.dom) : DeleteAction.moveToElement(toCefElm)).orThunk(() => Optional.some(DeleteAction.moveToElement(toCefElm)));\n };\n const findCefPosition = (root, forward, from, schema) => fromPosition(forward, root, from).bind(to => {\n if (isCompoundElement(to.getNode())) {\n return Optional.none();\n } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to, schema)) {\n return Optional.none();\n } else if (forward && isContentEditableFalse$b(to.getNode())) {\n return deleteEmptyBlockOrMoveToCef(schema, root, forward, from, to);\n } else if (!forward && isContentEditableFalse$b(to.getNode(true))) {\n return deleteEmptyBlockOrMoveToCef(schema, root, forward, from, to);\n } else if (forward && isAfterContentEditableFalse(from)) {\n return Optional.some(DeleteAction.moveToPosition(to));\n } else if (!forward && isBeforeContentEditableFalse(from)) {\n return Optional.some(DeleteAction.moveToPosition(to));\n } else {\n return Optional.none();\n }\n });\n const getContentEditableBlockAction = (forward, elm) => {\n if (isNullable(elm)) {\n return Optional.none();\n } else if (forward && isContentEditableFalse$b(elm.nextSibling)) {\n return Optional.some(DeleteAction.moveToElement(elm.nextSibling));\n } else if (!forward && isContentEditableFalse$b(elm.previousSibling)) {\n return Optional.some(DeleteAction.moveToElement(elm.previousSibling));\n } else {\n return Optional.none();\n }\n };\n const skipMoveToActionFromInlineCefToContent = (root, from, deleteAction) => deleteAction.fold(elm => Optional.some(DeleteAction.remove(elm)), elm => Optional.some(DeleteAction.moveToElement(elm)), to => {\n if (isInSameBlock(from, to, root)) {\n return Optional.none();\n } else {\n return Optional.some(DeleteAction.moveToPosition(to));\n }\n });\n const getContentEditableAction = (root, forward, from, schema) => {\n if (isAtContentEditableBlockCaret(forward, from)) {\n return getContentEditableBlockAction(forward, from.getNode(!forward)).orThunk(() => findCefPosition(root, forward, from, schema));\n } else {\n return findCefPosition(root, forward, from, schema).bind(deleteAction => skipMoveToActionFromInlineCefToContent(root, from, deleteAction));\n }\n };\n const read = (root, forward, rng, schema) => {\n const normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);\n const from = CaretPosition.fromRangeStart(normalizedRange);\n const rootElement = SugarElement.fromDom(root);\n if (!forward && isAfterContentEditableFalse(from)) {\n return Optional.some(DeleteAction.remove(from.getNode(true)));\n } else if (forward && isBeforeContentEditableFalse(from)) {\n return Optional.some(DeleteAction.remove(from.getNode()));\n } else if (!forward && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from, schema)) {\n return findPreviousBr(rootElement, from, schema).map(br => DeleteAction.remove(br.getNode()));\n } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr$1(rootElement, from, schema)) {\n return findNextBr(rootElement, from, schema).map(br => DeleteAction.remove(br.getNode()));\n } else {\n return getContentEditableAction(root, forward, from, schema);\n }\n };\n\n const deleteElement$1 = (editor, forward) => element => {\n editor._selectionOverrides.hideFakeCaret();\n deleteElement$2(editor, forward, SugarElement.fromDom(element));\n return true;\n };\n const moveToElement = (editor, forward) => element => {\n const pos = forward ? CaretPosition.before(element) : CaretPosition.after(element);\n editor.selection.setRng(pos.toRange());\n return true;\n };\n const moveToPosition = editor => pos => {\n editor.selection.setRng(pos.toRange());\n return true;\n };\n const getAncestorCe = (editor, node) => Optional.from(getContentEditableRoot$1(editor.getBody(), node));\n const backspaceDeleteCaret = (editor, forward) => {\n const selectedNode = editor.selection.getNode();\n return getAncestorCe(editor, selectedNode).filter(isContentEditableFalse$b).fold(() => read(editor.getBody(), forward, editor.selection.getRng(), editor.schema).map(deleteAction => () => deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor))), () => Optional.some(noop));\n };\n const deleteOffscreenSelection = rootElement => {\n each$e(descendants(rootElement, '.mce-offscreen-selection'), remove$4);\n };\n const backspaceDeleteRange = (editor, forward) => {\n const selectedNode = editor.selection.getNode();\n if (isContentEditableFalse$b(selectedNode) && !isTableCell$3(selectedNode)) {\n const hasCefAncestor = getAncestorCe(editor, selectedNode.parentNode).filter(isContentEditableFalse$b);\n return hasCefAncestor.fold(() => Optional.some(() => {\n deleteOffscreenSelection(SugarElement.fromDom(editor.getBody()));\n deleteElement$2(editor, forward, SugarElement.fromDom(editor.selection.getNode()));\n paddEmptyBody(editor);\n }), () => Optional.some(noop));\n }\n if (isCefAtEdgeSelected(editor)) {\n return Optional.some(() => {\n deleteRangeContents(editor, editor.selection.getRng(), SugarElement.fromDom(editor.getBody()));\n });\n }\n return Optional.none();\n };\n const paddEmptyElement = editor => {\n const dom = editor.dom, selection = editor.selection;\n const ceRoot = getContentEditableRoot$1(editor.getBody(), selection.getNode());\n if (isContentEditableTrue$3(ceRoot) && dom.isBlock(ceRoot) && dom.isEmpty(ceRoot)) {\n const br = dom.create('br', { 'data-mce-bogus': '1' });\n dom.setHTML(ceRoot, '');\n ceRoot.appendChild(br);\n selection.setRng(CaretPosition.before(br).toRange());\n }\n return true;\n };\n const backspaceDelete$7 = (editor, forward) => {\n if (editor.selection.isCollapsed()) {\n return backspaceDeleteCaret(editor, forward);\n } else {\n return backspaceDeleteRange(editor, forward);\n }\n };\n\n const isTextEndpoint = endpoint => endpoint.hasOwnProperty('text');\n const isElementEndpoint = endpoint => endpoint.hasOwnProperty('marker');\n const getBookmark = (range, createMarker) => {\n const getEndpoint = (container, offset) => {\n if (isText$b(container)) {\n return {\n text: container,\n offset\n };\n } else {\n const marker = createMarker();\n const children = container.childNodes;\n if (offset < children.length) {\n container.insertBefore(marker, children[offset]);\n return {\n marker,\n before: true\n };\n } else {\n container.appendChild(marker);\n return {\n marker,\n before: false\n };\n }\n }\n };\n const end = getEndpoint(range.endContainer, range.endOffset);\n const start = getEndpoint(range.startContainer, range.startOffset);\n return {\n start,\n end\n };\n };\n const resolveBookmark = bm => {\n var _a, _b;\n const {start, end} = bm;\n const rng = new window.Range();\n if (isTextEndpoint(start)) {\n rng.setStart(start.text, start.offset);\n } else {\n if (isElementEndpoint(start)) {\n if (start.before) {\n rng.setStartBefore(start.marker);\n } else {\n rng.setStartAfter(start.marker);\n }\n (_a = start.marker.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(start.marker);\n }\n }\n if (isTextEndpoint(end)) {\n rng.setEnd(end.text, end.offset);\n } else {\n if (isElementEndpoint(end)) {\n if (end.before) {\n rng.setEndBefore(end.marker);\n } else {\n rng.setEndAfter(end.marker);\n }\n (_b = end.marker.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(end.marker);\n }\n }\n return rng;\n };\n\n const backspaceDelete$6 = (editor, forward) => {\n var _a;\n const dom = editor.dom;\n const startBlock = dom.getParent(editor.selection.getStart(), dom.isBlock);\n const endBlock = dom.getParent(editor.selection.getEnd(), dom.isBlock);\n const body = editor.getBody();\n const startBlockName = (_a = startBlock === null || startBlock === void 0 ? void 0 : startBlock.nodeName) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (startBlockName === 'div' && startBlock && endBlock && startBlock === body.firstChild && endBlock === body.lastChild && !dom.isEmpty(body)) {\n const wrapper = startBlock.cloneNode(false);\n const deleteAction = () => {\n if (forward) {\n execNativeForwardDeleteCommand(editor);\n } else {\n execNativeDeleteCommand(editor);\n }\n if (body.firstChild !== startBlock) {\n const bookmark = getBookmark(editor.selection.getRng(), () => document.createElement('span'));\n Array.from(body.childNodes).forEach(node => wrapper.appendChild(node));\n body.appendChild(wrapper);\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n return Optional.some(deleteAction);\n }\n return Optional.none();\n };\n\n const deleteCaret$2 = (editor, forward) => {\n const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n return fromPosition(forward, editor.getBody(), fromPos).filter(pos => forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos)).bind(pos => getChildNodeAtRelativeOffset(forward ? 0 : -1, pos)).map(elm => () => editor.selection.select(elm));\n };\n const backspaceDelete$5 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : Optional.none();\n\n const isText$2 = isText$b;\n const startsWithCaretContainer = node => isText$2(node) && node.data[0] === ZWSP$1;\n const endsWithCaretContainer = node => isText$2(node) && node.data[node.data.length - 1] === ZWSP$1;\n const createZwsp = node => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n return doc.createTextNode(ZWSP$1);\n };\n const insertBefore$1 = node => {\n var _a;\n if (isText$2(node.previousSibling)) {\n if (endsWithCaretContainer(node.previousSibling)) {\n return node.previousSibling;\n } else {\n node.previousSibling.appendData(ZWSP$1);\n return node.previousSibling;\n }\n } else if (isText$2(node)) {\n if (startsWithCaretContainer(node)) {\n return node;\n } else {\n node.insertData(0, ZWSP$1);\n return node;\n }\n } else {\n const newNode = createZwsp(node);\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, node);\n return newNode;\n }\n };\n const insertAfter$1 = node => {\n var _a, _b;\n if (isText$2(node.nextSibling)) {\n if (startsWithCaretContainer(node.nextSibling)) {\n return node.nextSibling;\n } else {\n node.nextSibling.insertData(0, ZWSP$1);\n return node.nextSibling;\n }\n } else if (isText$2(node)) {\n if (endsWithCaretContainer(node)) {\n return node;\n } else {\n node.appendData(ZWSP$1);\n return node;\n }\n } else {\n const newNode = createZwsp(node);\n if (node.nextSibling) {\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, node.nextSibling);\n } else {\n (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.appendChild(newNode);\n }\n return newNode;\n }\n };\n const insertInline = (before, node) => before ? insertBefore$1(node) : insertAfter$1(node);\n const insertInlineBefore = curry(insertInline, true);\n const insertInlineAfter = curry(insertInline, false);\n\n const insertInlinePos = (pos, before) => {\n if (isText$b(pos.container())) {\n return insertInline(before, pos.container());\n } else {\n return insertInline(before, pos.getNode());\n }\n };\n const isPosCaretContainer = (pos, caret) => {\n const caretNode = caret.get();\n return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode);\n };\n const renderCaret = (caret, location) => location.fold(element => {\n remove$2(caret.get());\n const text = insertInlineBefore(element);\n caret.set(text);\n return Optional.some(CaretPosition(text, text.length - 1));\n }, element => firstPositionIn(element).map(pos => {\n if (!isPosCaretContainer(pos, caret)) {\n remove$2(caret.get());\n const text = insertInlinePos(pos, true);\n caret.set(text);\n return CaretPosition(text, 1);\n } else {\n const node = caret.get();\n return CaretPosition(node, 1);\n }\n }), element => lastPositionIn(element).map(pos => {\n if (!isPosCaretContainer(pos, caret)) {\n remove$2(caret.get());\n const text = insertInlinePos(pos, false);\n caret.set(text);\n return CaretPosition(text, text.length - 1);\n } else {\n const node = caret.get();\n return CaretPosition(node, node.length - 1);\n }\n }), element => {\n remove$2(caret.get());\n const text = insertInlineAfter(element);\n caret.set(text);\n return Optional.some(CaretPosition(text, 1));\n });\n\n const evaluateUntil = (fns, args) => {\n for (let i = 0; i < fns.length; i++) {\n const result = fns[i].apply(null, args);\n if (result.isSome()) {\n return result;\n }\n }\n return Optional.none();\n };\n\n const Location = Adt.generate([\n { before: ['element'] },\n { start: ['element'] },\n { end: ['element'] },\n { after: ['element'] }\n ]);\n const rescope$1 = (rootNode, node) => {\n const parentBlock = getParentBlock$3(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n const before = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeForwards(pos);\n const scope = rescope$1(rootNode, nPos.container());\n return findRootInline(isInlineTarget, scope, nPos).fold(() => nextPosition(scope, nPos).bind(curry(findRootInline, isInlineTarget, scope)).map(inline => Location.before(inline)), Optional.none);\n };\n const isNotInsideFormatCaretContainer = (rootNode, elm) => getParentCaretContainer(rootNode, elm) === null;\n const findInsideRootInline = (isInlineTarget, rootNode, pos) => findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));\n const start$1 = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeBackwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(inline => {\n const prevPos = prevPosition(inline, nPos);\n return prevPos.isNone() ? Optional.some(Location.start(inline)) : Optional.none();\n });\n };\n const end = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeForwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(inline => {\n const nextPos = nextPosition(inline, nPos);\n return nextPos.isNone() ? Optional.some(Location.end(inline)) : Optional.none();\n });\n };\n const after = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeBackwards(pos);\n const scope = rescope$1(rootNode, nPos.container());\n return findRootInline(isInlineTarget, scope, nPos).fold(() => prevPosition(scope, nPos).bind(curry(findRootInline, isInlineTarget, scope)).map(inline => Location.after(inline)), Optional.none);\n };\n const isValidLocation = location => !isRtl(getElement(location));\n const readLocation = (isInlineTarget, rootNode, pos) => {\n const location = evaluateUntil([\n before,\n start$1,\n end,\n after\n ], [\n isInlineTarget,\n rootNode,\n pos\n ]);\n return location.filter(isValidLocation);\n };\n const getElement = location => location.fold(identity, identity, identity, identity);\n const getName = location => location.fold(constant('before'), constant('start'), constant('end'), constant('after'));\n const outside = location => location.fold(Location.before, Location.before, Location.after, Location.after);\n const inside = location => location.fold(Location.start, Location.start, Location.end, Location.end);\n const isEq = (location1, location2) => getName(location1) === getName(location2) && getElement(location1) === getElement(location2);\n const betweenInlines = (forward, isInlineTarget, rootNode, from, to, location) => lift2(findRootInline(isInlineTarget, rootNode, from), findRootInline(isInlineTarget, rootNode, to), (fromInline, toInline) => {\n if (fromInline !== toInline && hasSameParentBlock(rootNode, fromInline, toInline)) {\n return Location.after(forward ? fromInline : toInline);\n } else {\n return location;\n }\n }).getOr(location);\n const skipNoMovement = (fromLocation, toLocation) => fromLocation.fold(always, fromLocation => !isEq(fromLocation, toLocation));\n const findLocationTraverse = (forward, isInlineTarget, rootNode, fromLocation, pos) => {\n const from = normalizePosition(forward, pos);\n const to = fromPosition(forward, rootNode, from).map(curry(normalizePosition, forward));\n const location = to.fold(() => fromLocation.map(outside), to => readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation)));\n return location.filter(isValidLocation);\n };\n const findLocationSimple = (forward, location) => {\n if (forward) {\n return location.fold(compose(Optional.some, Location.start), Optional.none, compose(Optional.some, Location.after), Optional.none);\n } else {\n return location.fold(Optional.none, compose(Optional.some, Location.before), Optional.none, compose(Optional.some, Location.end));\n }\n };\n const findLocation$1 = (forward, isInlineTarget, rootNode, pos) => {\n const from = normalizePosition(forward, pos);\n const fromLocation = readLocation(isInlineTarget, rootNode, from);\n return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(() => findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos));\n };\n\n const hasSelectionModifyApi = editor => {\n return isFunction(editor.selection.getSel().modify);\n };\n const moveRel = (forward, selection, pos) => {\n const delta = forward ? 1 : -1;\n selection.setRng(CaretPosition(pos.container(), pos.offset() + delta).toRange());\n selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');\n return true;\n };\n const moveByWord = (forward, editor) => {\n const rng = editor.selection.getRng();\n const pos = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n if (!hasSelectionModifyApi(editor)) {\n return false;\n } else if (forward && isBeforeInline(pos)) {\n return moveRel(true, editor.selection, pos);\n } else if (!forward && isAfterInline(pos)) {\n return moveRel(false, editor.selection, pos);\n } else {\n return false;\n }\n };\n\n var BreakType;\n (function (BreakType) {\n BreakType[BreakType['Br'] = 0] = 'Br';\n BreakType[BreakType['Block'] = 1] = 'Block';\n BreakType[BreakType['Wrap'] = 2] = 'Wrap';\n BreakType[BreakType['Eol'] = 3] = 'Eol';\n }(BreakType || (BreakType = {})));\n const flip = (direction, positions) => direction === HDirection.Backwards ? reverse(positions) : positions;\n const walk$1 = (direction, caretWalker, pos) => direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos);\n const getBreakType = (scope, direction, currentPos, nextPos) => {\n if (isBr$6(nextPos.getNode(direction === HDirection.Forwards))) {\n return BreakType.Br;\n } else if (isInSameBlock(currentPos, nextPos) === false) {\n return BreakType.Block;\n } else {\n return BreakType.Wrap;\n }\n };\n const getPositionsUntil = (predicate, direction, scope, start) => {\n const caretWalker = CaretWalker(scope);\n let currentPos = start;\n const positions = [];\n while (currentPos) {\n const nextPos = walk$1(direction, caretWalker, currentPos);\n if (!nextPos) {\n break;\n }\n if (isBr$6(nextPos.getNode(false))) {\n if (direction === HDirection.Forwards) {\n return {\n positions: flip(direction, positions).concat([nextPos]),\n breakType: BreakType.Br,\n breakAt: Optional.some(nextPos)\n };\n } else {\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Br,\n breakAt: Optional.some(nextPos)\n };\n }\n }\n if (!nextPos.isVisible()) {\n currentPos = nextPos;\n continue;\n }\n if (predicate(currentPos, nextPos)) {\n const breakType = getBreakType(scope, direction, currentPos, nextPos);\n return {\n positions: flip(direction, positions),\n breakType,\n breakAt: Optional.some(nextPos)\n };\n }\n positions.push(nextPos);\n currentPos = nextPos;\n }\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Eol,\n breakAt: Optional.none()\n };\n };\n const getAdjacentLinePositions = (direction, getPositionsUntilBreak, scope, start) => getPositionsUntilBreak(scope, start).breakAt.map(pos => {\n const positions = getPositionsUntilBreak(scope, pos).positions;\n return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions);\n }).getOr([]);\n const findClosestHorizontalPositionFromPoint = (positions, x) => foldl(positions, (acc, newPos) => acc.fold(() => Optional.some(newPos), lastPos => lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), (lastRect, newRect) => {\n const lastDist = Math.abs(x - lastRect.left);\n const newDist = Math.abs(x - newRect.left);\n return newDist <= lastDist ? newPos : lastPos;\n }).or(acc)), Optional.none());\n const findClosestHorizontalPosition = (positions, pos) => head(pos.getClientRects()).bind(targetRect => findClosestHorizontalPositionFromPoint(positions, targetRect.left));\n const getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);\n const getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);\n const getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);\n const getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);\n const isAtFirstLine = (scope, pos) => getPositionsUntilPreviousLine(scope, pos).breakAt.isNone();\n const isAtLastLine = (scope, pos) => getPositionsUntilNextLine(scope, pos).breakAt.isNone();\n const getFirstLinePositions = scope => firstPositionIn(scope).map(pos => [pos].concat(getPositionsUntilNextLine(scope, pos).positions)).getOr([]);\n const getLastLinePositions = scope => lastPositionIn(scope).map(pos => getPositionsUntilPreviousLine(scope, pos).positions.concat(pos)).getOr([]);\n const getClosestPositionAbove = (scope, pos) => findClosestHorizontalPosition(getPositionsAbove(scope, pos), pos);\n const getClosestPositionBelow = (scope, pos) => findClosestHorizontalPosition(getPositionsBelow(scope, pos), pos);\n\n const isContentEditableFalse$5 = isContentEditableFalse$b;\n const distanceToRectLeft$1 = (clientRect, clientX) => Math.abs(clientRect.left - clientX);\n const distanceToRectRight$1 = (clientRect, clientX) => Math.abs(clientRect.right - clientX);\n const isNodeClientRect = rect => hasNonNullableKey(rect, 'node');\n const findClosestClientRect = (clientRects, clientX) => reduce(clientRects, (oldClientRect, clientRect) => {\n const oldDistance = Math.min(distanceToRectLeft$1(oldClientRect, clientX), distanceToRectRight$1(oldClientRect, clientX));\n const newDistance = Math.min(distanceToRectLeft$1(clientRect, clientX), distanceToRectRight$1(clientRect, clientX));\n if (newDistance === oldDistance && isNodeClientRect(clientRect) && isContentEditableFalse$5(clientRect.node)) {\n return clientRect;\n }\n if (newDistance < oldDistance) {\n return clientRect;\n }\n return oldClientRect;\n });\n\n const getNodeClientRects = node => {\n const toArrayWithNode = clientRects => {\n return map$3(clientRects, rect => {\n const clientRect = clone$1(rect);\n clientRect.node = node;\n return clientRect;\n });\n };\n if (isElement$6(node)) {\n return toArrayWithNode(node.getClientRects());\n } else if (isText$b(node)) {\n const rng = node.ownerDocument.createRange();\n rng.setStart(node, 0);\n rng.setEnd(node, node.data.length);\n return toArrayWithNode(rng.getClientRects());\n } else {\n return [];\n }\n };\n const getClientRects = nodes => bind$3(nodes, getNodeClientRects);\n\n var VDirection;\n (function (VDirection) {\n VDirection[VDirection['Up'] = -1] = 'Up';\n VDirection[VDirection['Down'] = 1] = 'Down';\n }(VDirection || (VDirection = {})));\n const findUntil = (direction, root, predicateFn, node) => {\n let currentNode = node;\n while (currentNode = findNode(currentNode, direction, isEditableCaretCandidate$1, root)) {\n if (predicateFn(currentNode)) {\n return;\n }\n }\n };\n const walkUntil = (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) => {\n let line = 0;\n const result = [];\n const add = node => {\n let clientRects = getClientRects([node]);\n if (direction === -1) {\n clientRects = clientRects.reverse();\n }\n for (let i = 0; i < clientRects.length; i++) {\n const clientRect = clientRects[i];\n if (isBeflowFn(clientRect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isAboveFn(clientRect, last$1(result))) {\n line++;\n }\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return true;\n }\n result.push(clientRect);\n }\n return false;\n };\n const targetClientRect = last$1(caretPosition.getClientRects());\n if (!targetClientRect) {\n return result;\n }\n const node = caretPosition.getNode();\n if (node) {\n add(node);\n findUntil(direction, root, add, node);\n }\n return result;\n };\n const aboveLineNumber = (lineNumber, clientRect) => clientRect.line > lineNumber;\n const isLineNumber = (lineNumber, clientRect) => clientRect.line === lineNumber;\n const upUntil = curry(walkUntil, VDirection.Up, isAbove$1, isBelow$1);\n const downUntil = curry(walkUntil, VDirection.Down, isBelow$1, isAbove$1);\n const getLastClientRect = caretPosition => {\n return last$1(caretPosition.getClientRects());\n };\n const positionsUntil = (direction, root, predicateFn, node) => {\n const caretWalker = CaretWalker(root);\n let walkFn;\n let isBelowFn;\n let isAboveFn;\n let caretPosition;\n const result = [];\n let line = 0;\n if (direction === 1) {\n walkFn = caretWalker.next;\n isBelowFn = isBelow$1;\n isAboveFn = isAbove$1;\n caretPosition = CaretPosition.after(node);\n } else {\n walkFn = caretWalker.prev;\n isBelowFn = isAbove$1;\n isAboveFn = isBelow$1;\n caretPosition = CaretPosition.before(node);\n }\n const targetClientRect = getLastClientRect(caretPosition);\n do {\n if (!caretPosition.isVisible()) {\n continue;\n }\n const rect = getLastClientRect(caretPosition);\n if (isAboveFn(rect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isBelowFn(rect, last$1(result))) {\n line++;\n }\n const clientRect = clone$1(rect);\n clientRect.position = caretPosition;\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return result;\n }\n result.push(clientRect);\n } while (caretPosition = walkFn(caretPosition));\n return result;\n };\n const isAboveLine = lineNumber => clientRect => aboveLineNumber(lineNumber, clientRect);\n const isLine = lineNumber => clientRect => isLineNumber(lineNumber, clientRect);\n\n const moveToRange = (editor, rng) => {\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, editor.selection.getRng());\n };\n const renderRangeCaretOpt = (editor, range, scrollIntoView) => Optional.some(renderRangeCaret(editor, range, scrollIntoView));\n const moveHorizontally = (editor, direction, range, isBefore, isAfter, isElement) => {\n const forwards = direction === HDirection.Forwards;\n const caretWalker = CaretWalker(editor.getBody());\n const getNextPosFn = curry(getVisualCaretPosition, forwards ? caretWalker.next : caretWalker.prev);\n const isBeforeFn = forwards ? isBefore : isAfter;\n if (!range.collapsed) {\n const node = getSelectedNode(range);\n if (isElement(node)) {\n return showCaret(direction, editor, node, direction === HDirection.Backwards, false);\n } else if (isCefAtEdgeSelected(editor)) {\n const newRange = range.cloneRange();\n newRange.collapse(direction === HDirection.Backwards);\n return Optional.from(newRange);\n }\n }\n const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n if (isBeforeFn(caretPosition)) {\n return selectNode(editor, caretPosition.getNode(!forwards));\n }\n let nextCaretPosition = getNextPosFn(caretPosition);\n const rangeIsInContainerBlock = isRangeInCaretContainerBlock(range);\n if (!nextCaretPosition) {\n return rangeIsInContainerBlock ? Optional.some(range) : Optional.none();\n } else {\n nextCaretPosition = normalizePosition(forwards, nextCaretPosition);\n }\n if (isBeforeFn(nextCaretPosition)) {\n return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, false);\n }\n const peekCaretPosition = getNextPosFn(nextCaretPosition);\n if (peekCaretPosition && isBeforeFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, false);\n }\n }\n if (rangeIsInContainerBlock) {\n return renderRangeCaretOpt(editor, nextCaretPosition.toRange(), false);\n }\n return Optional.none();\n };\n const moveVertically = (editor, direction, range, isBefore, isAfter, isElement) => {\n const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n const caretClientRect = last$1(caretPosition.getClientRects());\n const forwards = direction === VDirection.Down;\n const root = editor.getBody();\n if (!caretClientRect) {\n return Optional.none();\n }\n if (isCefAtEdgeSelected(editor)) {\n const caretPosition = forwards ? CaretPosition.fromRangeEnd(range) : CaretPosition.fromRangeStart(range);\n const getClosestFn = !forwards ? getClosestPositionAbove : getClosestPositionBelow;\n return getClosestFn(root, caretPosition).orThunk(() => Optional.from(caretPosition)).map(pos => pos.toRange());\n }\n const walkerFn = forwards ? downUntil : upUntil;\n const linePositions = walkerFn(root, isAboveLine(1), caretPosition);\n const nextLinePositions = filter$5(linePositions, isLine(1));\n const clientX = caretClientRect.left;\n const nextLineRect = findClosestClientRect(nextLinePositions, clientX);\n if (nextLineRect && isElement(nextLineRect.node)) {\n const dist1 = Math.abs(clientX - nextLineRect.left);\n const dist2 = Math.abs(clientX - nextLineRect.right);\n return showCaret(direction, editor, nextLineRect.node, dist1 < dist2, false);\n }\n let currentNode;\n if (isBefore(caretPosition)) {\n currentNode = caretPosition.getNode();\n } else if (isAfter(caretPosition)) {\n currentNode = caretPosition.getNode(true);\n } else {\n currentNode = getSelectedNode(range);\n }\n if (currentNode) {\n const caretPositions = positionsUntil(direction, root, isAboveLine(1), currentNode);\n let closestNextLineRect = findClosestClientRect(filter$5(caretPositions, isLine(1)), clientX);\n if (closestNextLineRect) {\n return renderRangeCaretOpt(editor, closestNextLineRect.position.toRange(), false);\n }\n closestNextLineRect = last$1(filter$5(caretPositions, isLine(0)));\n if (closestNextLineRect) {\n return renderRangeCaretOpt(editor, closestNextLineRect.position.toRange(), false);\n }\n }\n if (nextLinePositions.length === 0) {\n return getLineEndPoint(editor, forwards).filter(forwards ? isAfter : isBefore).map(pos => renderRangeCaret(editor, pos.toRange(), false));\n }\n return Optional.none();\n };\n const getLineEndPoint = (editor, forward) => {\n const rng = editor.selection.getRng();\n const from = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n const host = getEditingHost(from.container(), editor.getBody());\n if (forward) {\n const lineInfo = getPositionsUntilNextLine(host, from);\n return last$2(lineInfo.positions);\n } else {\n const lineInfo = getPositionsUntilPreviousLine(host, from);\n return head(lineInfo.positions);\n }\n };\n const moveToLineEndPoint$3 = (editor, forward, isElementPosition) => getLineEndPoint(editor, forward).filter(isElementPosition).exists(pos => {\n editor.selection.setRng(pos.toRange());\n return true;\n });\n\n const setCaretPosition = (editor, pos) => {\n const rng = editor.dom.createRng();\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n editor.selection.setRng(rng);\n };\n const setSelected = (state, elm) => {\n if (state) {\n elm.setAttribute('data-mce-selected', 'inline-boundary');\n } else {\n elm.removeAttribute('data-mce-selected');\n }\n };\n const renderCaretLocation = (editor, caret, location) => renderCaret(caret, location).map(pos => {\n setCaretPosition(editor, pos);\n return location;\n });\n const getPositionFromRange = (range, root, forward) => {\n const start = CaretPosition.fromRangeStart(range);\n if (range.collapsed) {\n return start;\n } else {\n const end = CaretPosition.fromRangeEnd(range);\n return forward ? prevPosition(root, end).getOr(end) : nextPosition(root, start).getOr(start);\n }\n };\n const findLocation = (editor, caret, forward) => {\n const rootNode = editor.getBody();\n const from = getPositionFromRange(editor.selection.getRng(), rootNode, forward);\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const location = findLocation$1(forward, isInlineTarget$1, rootNode, from);\n return location.bind(location => renderCaretLocation(editor, caret, location));\n };\n const toggleInlines = (isInlineTarget, dom, elms) => {\n const inlineBoundaries = map$3(descendants(SugarElement.fromDom(dom.getRoot()), '*[data-mce-selected=\"inline-boundary\"]'), e => e.dom);\n const selectedInlines = filter$5(inlineBoundaries, isInlineTarget);\n const targetInlines = filter$5(elms, isInlineTarget);\n each$e(difference(selectedInlines, targetInlines), curry(setSelected, false));\n each$e(difference(targetInlines, selectedInlines), curry(setSelected, true));\n };\n const safeRemoveCaretContainer = (editor, caret) => {\n const caretValue = caret.get();\n if (editor.selection.isCollapsed() && !editor.composing && caretValue) {\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n if (CaretPosition.isTextPosition(pos) && !isAtZwsp(pos)) {\n setCaretPosition(editor, removeAndReposition(caretValue, pos));\n caret.set(null);\n }\n }\n };\n const renderInsideInlineCaret = (isInlineTarget, editor, caret, elms) => {\n if (editor.selection.isCollapsed()) {\n const inlines = filter$5(elms, isInlineTarget);\n each$e(inlines, _inline => {\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n readLocation(isInlineTarget, editor.getBody(), pos).bind(location => renderCaretLocation(editor, caret, location));\n });\n }\n };\n const move$3 = (editor, caret, forward) => isInlineBoundariesEnabled(editor) ? findLocation(editor, caret, forward).isSome() : false;\n const moveWord = (forward, editor, _caret) => isInlineBoundariesEnabled(editor) ? moveByWord(forward, editor) : false;\n const setupSelectedState = editor => {\n const caret = Cell(null);\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n editor.on('NodeChange', e => {\n if (isInlineBoundariesEnabled(editor)) {\n toggleInlines(isInlineTarget$1, editor.dom, e.parents);\n safeRemoveCaretContainer(editor, caret);\n renderInsideInlineCaret(isInlineTarget$1, editor, caret, e.parents);\n }\n });\n return caret;\n };\n const moveNextWord = curry(moveWord, true);\n const movePrevWord = curry(moveWord, false);\n const moveToLineEndPoint$2 = (editor, forward, caret) => {\n if (isInlineBoundariesEnabled(editor)) {\n const linePoint = getLineEndPoint(editor, forward).getOrThunk(() => {\n const rng = editor.selection.getRng();\n return forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n });\n return readLocation(curry(isInlineTarget, editor), editor.getBody(), linePoint).exists(loc => {\n const outsideLoc = outside(loc);\n return renderCaret(caret, outsideLoc).exists(pos => {\n setCaretPosition(editor, pos);\n return true;\n });\n });\n } else {\n return false;\n }\n };\n\n const rangeFromPositions = (from, to) => {\n const range = document.createRange();\n range.setStart(from.container(), from.offset());\n range.setEnd(to.container(), to.offset());\n return range;\n };\n const hasOnlyTwoOrLessPositionsLeft = elm => lift2(firstPositionIn(elm), lastPositionIn(elm), (firstPos, lastPos) => {\n const normalizedFirstPos = normalizePosition(true, firstPos);\n const normalizedLastPos = normalizePosition(false, lastPos);\n return nextPosition(elm, normalizedFirstPos).forall(pos => pos.isEqual(normalizedLastPos));\n }).getOr(true);\n const setCaretLocation = (editor, caret) => location => renderCaret(caret, location).map(pos => () => setCaretPosition(editor, pos));\n const deleteFromTo = (editor, caret, from, to) => {\n const rootNode = editor.getBody();\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n editor.undoManager.ignore(() => {\n editor.selection.setRng(rangeFromPositions(from, to));\n execNativeDeleteCommand(editor);\n readLocation(isInlineTarget$1, rootNode, CaretPosition.fromRangeStart(editor.selection.getRng())).map(inside).bind(setCaretLocation(editor, caret)).each(call);\n });\n editor.nodeChanged();\n };\n const rescope = (rootNode, node) => {\n const parentBlock = getParentBlock$3(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n const backspaceDeleteCollapsed = (editor, caret, forward, from) => {\n const rootNode = rescope(editor.getBody(), from.container());\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const fromLocation = readLocation(isInlineTarget$1, rootNode, from);\n const location = fromLocation.bind(location => {\n if (forward) {\n return location.fold(constant(Optional.some(inside(location))), Optional.none, constant(Optional.some(outside(location))), Optional.none);\n } else {\n return location.fold(Optional.none, constant(Optional.some(outside(location))), Optional.none, constant(Optional.some(inside(location))));\n }\n });\n return location.map(setCaretLocation(editor, caret)).getOrThunk(() => {\n const toPosition = navigate(forward, rootNode, from);\n const toLocation = toPosition.bind(pos => readLocation(isInlineTarget$1, rootNode, pos));\n return lift2(fromLocation, toLocation, () => findRootInline(isInlineTarget$1, rootNode, from).bind(elm => {\n if (hasOnlyTwoOrLessPositionsLeft(elm)) {\n return Optional.some(() => {\n deleteElement$2(editor, forward, SugarElement.fromDom(elm));\n });\n } else {\n return Optional.none();\n }\n })).getOrThunk(() => toLocation.bind(() => toPosition.map(to => {\n return () => {\n if (forward) {\n deleteFromTo(editor, caret, from, to);\n } else {\n deleteFromTo(editor, caret, to, from);\n }\n };\n })));\n });\n };\n const backspaceDelete$4 = (editor, caret, forward) => {\n if (editor.selection.isCollapsed() && isInlineBoundariesEnabled(editor)) {\n const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n return backspaceDeleteCollapsed(editor, caret, forward, from);\n }\n return Optional.none();\n };\n\n const hasMultipleChildren = elm => childNodesCount(elm) > 1;\n const getParentsUntil = (editor, pred) => {\n const rootElm = SugarElement.fromDom(editor.getBody());\n const startElm = SugarElement.fromDom(editor.selection.getStart());\n const parents = parentsAndSelf(startElm, rootElm);\n return findIndex$2(parents, pred).fold(constant(parents), index => parents.slice(0, index));\n };\n const hasOnlyOneChild = elm => childNodesCount(elm) === 1;\n const getParentInlinesUntilMultichildInline = editor => getParentsUntil(editor, elm => editor.schema.isBlock(name(elm)) || hasMultipleChildren(elm));\n const getParentInlines = editor => getParentsUntil(editor, el => editor.schema.isBlock(name(el)));\n const getFormatNodes = (editor, parentInlines) => {\n const isFormatElement$1 = curry(isFormatElement, editor);\n return bind$3(parentInlines, elm => isFormatElement$1(elm) ? [elm.dom] : []);\n };\n const getFormatNodesAtStart = editor => {\n const parentInlines = getParentInlines(editor);\n return getFormatNodes(editor, parentInlines);\n };\n const deleteLastPosition = (forward, editor, target, parentInlines) => {\n const formatNodes = getFormatNodes(editor, parentInlines);\n if (formatNodes.length === 0) {\n deleteElement$2(editor, forward, target);\n } else {\n const pos = replaceWithCaretFormat(target.dom, formatNodes);\n editor.selection.setRng(pos.toRange());\n }\n };\n const deleteCaret$1 = (editor, forward) => {\n const parentInlines = filter$5(getParentInlinesUntilMultichildInline(editor), hasOnlyOneChild);\n return last$2(parentInlines).bind(target => {\n const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n if (willDeleteLastPositionInElement(forward, fromPos, target.dom) && !isEmptyCaretFormatElement(target)) {\n return Optional.some(() => deleteLastPosition(forward, editor, target, parentInlines));\n } else {\n return Optional.none();\n }\n });\n };\n const isBrInEmptyElement = (editor, elm) => {\n const parentElm = elm.parentElement;\n return isBr$6(elm) && !isNull(parentElm) && editor.dom.isEmpty(parentElm);\n };\n const isEmptyCaret = elm => isEmptyCaretFormatElement(SugarElement.fromDom(elm));\n const createCaretFormatAtStart = (editor, formatNodes) => {\n const startElm = editor.selection.getStart();\n const pos = isBrInEmptyElement(editor, startElm) || isEmptyCaret(startElm) ? replaceWithCaretFormat(startElm, formatNodes) : createCaretFormatAtStart$1(editor.selection.getRng(), formatNodes);\n editor.selection.setRng(pos.toRange());\n };\n const updateCaretFormat = (editor, updateFormats) => {\n const missingFormats = difference(updateFormats, getFormatNodesAtStart(editor));\n if (missingFormats.length > 0) {\n createCaretFormatAtStart(editor, missingFormats);\n }\n };\n const rangeStartsAtTextContainer = rng => isText$b(rng.startContainer);\n const rangeStartsAtStartOfTextContainer = rng => rng.startOffset === 0 && rangeStartsAtTextContainer(rng);\n const rangeStartParentIsFormatElement = (editor, rng) => {\n const startParent = rng.startContainer.parentElement;\n return !isNull(startParent) && isFormatElement(editor, SugarElement.fromDom(startParent));\n };\n const rangeStartAndEndHaveSameParent = rng => {\n const startParent = rng.startContainer.parentNode;\n const endParent = rng.endContainer.parentNode;\n return !isNull(startParent) && !isNull(endParent) && startParent.isEqualNode(endParent);\n };\n const rangeEndsAtEndOfEndContainer = rng => {\n const endContainer = rng.endContainer;\n return rng.endOffset === (isText$b(endContainer) ? endContainer.length : endContainer.childNodes.length);\n };\n const rangeEndsAtEndOfStartContainer = rng => rangeStartAndEndHaveSameParent(rng) && rangeEndsAtEndOfEndContainer(rng);\n const rangeEndsAfterEndOfStartContainer = rng => !rng.endContainer.isEqualNode(rng.commonAncestorContainer);\n const rangeEndsAtOrAfterEndOfStartContainer = rng => rangeEndsAtEndOfStartContainer(rng) || rangeEndsAfterEndOfStartContainer(rng);\n const requiresDeleteRangeOverride = editor => {\n const rng = editor.selection.getRng();\n return rangeStartsAtStartOfTextContainer(rng) && rangeStartParentIsFormatElement(editor, rng) && rangeEndsAtOrAfterEndOfStartContainer(rng);\n };\n const deleteRange$1 = editor => {\n if (requiresDeleteRangeOverride(editor)) {\n const formatNodes = getFormatNodesAtStart(editor);\n return Optional.some(() => {\n execNativeDeleteCommand(editor);\n updateCaretFormat(editor, formatNodes);\n });\n } else {\n return Optional.none();\n }\n };\n const backspaceDelete$3 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret$1(editor, forward) : deleteRange$1(editor);\n const hasAncestorInlineCaret = (elm, schema) => ancestor$2(elm, node => isCaretNode(node.dom), el => schema.isBlock(name(el)));\n const hasAncestorInlineCaretAtStart = editor => hasAncestorInlineCaret(SugarElement.fromDom(editor.selection.getStart()), editor.schema);\n const requiresRefreshCaretOverride = editor => {\n const rng = editor.selection.getRng();\n return rng.collapsed && (rangeStartsAtTextContainer(rng) || editor.dom.isEmpty(rng.startContainer)) && !hasAncestorInlineCaretAtStart(editor);\n };\n const refreshCaret = editor => {\n if (requiresRefreshCaretOverride(editor)) {\n createCaretFormatAtStart(editor, []);\n }\n return true;\n };\n\n const deleteElement = (editor, forward, element) => {\n if (isNonNullable(element)) {\n return Optional.some(() => {\n editor._selectionOverrides.hideFakeCaret();\n deleteElement$2(editor, forward, SugarElement.fromDom(element));\n });\n } else {\n return Optional.none();\n }\n };\n const deleteCaret = (editor, forward) => {\n const isNearMedia = forward ? isBeforeMedia : isAfterMedia;\n const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n const fromPos = getNormalizedRangeEndPoint(direction, editor.getBody(), editor.selection.getRng());\n if (isNearMedia(fromPos)) {\n return deleteElement(editor, forward, fromPos.getNode(!forward));\n } else {\n return Optional.from(normalizePosition(forward, fromPos)).filter(pos => isNearMedia(pos) && isMoveInsideSameBlock(fromPos, pos)).bind(pos => deleteElement(editor, forward, pos.getNode(!forward)));\n }\n };\n const deleteRange = (editor, forward) => {\n const selectedNode = editor.selection.getNode();\n return isMedia$2(selectedNode) ? deleteElement(editor, forward, selectedNode) : Optional.none();\n };\n const backspaceDelete$2 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret(editor, forward) : deleteRange(editor, forward);\n\n const isEditable = target => closest$4(target, elm => isContentEditableTrue$3(elm.dom) || isContentEditableFalse$b(elm.dom)).exists(elm => isContentEditableTrue$3(elm.dom));\n const parseIndentValue = value => toInt(value !== null && value !== void 0 ? value : '').getOr(0);\n const getIndentStyleName = (useMargin, element) => {\n const indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';\n const suffix = get$7(element, 'direction') === 'rtl' ? '-right' : '-left';\n return indentStyleName + suffix;\n };\n const indentElement = (dom, command, useMargin, value, unit, element) => {\n const indentStyleName = getIndentStyleName(useMargin, SugarElement.fromDom(element));\n const parsedValue = parseIndentValue(dom.getStyle(element, indentStyleName));\n if (command === 'outdent') {\n const styleValue = Math.max(0, parsedValue - value);\n dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');\n } else {\n const styleValue = parsedValue + value + unit;\n dom.setStyle(element, indentStyleName, styleValue);\n }\n };\n const validateBlocks = (editor, blocks) => forall(blocks, block => {\n const indentStyleName = getIndentStyleName(shouldIndentUseMargin(editor), block);\n const intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0);\n const contentEditable = editor.dom.getContentEditable(block.dom);\n return contentEditable !== 'false' && intentValue > 0;\n });\n const canOutdent = editor => {\n const blocks = getBlocksToIndent(editor);\n return !editor.mode.isReadOnly() && (blocks.length > 1 || validateBlocks(editor, blocks));\n };\n const isListComponent = el => isList(el) || isListItem$1(el);\n const parentIsListComponent = el => parent(el).exists(isListComponent);\n const getBlocksToIndent = editor => filter$5(fromDom$1(editor.selection.getSelectedBlocks()), el => !isListComponent(el) && !parentIsListComponent(el) && isEditable(el));\n const handle = (editor, command) => {\n var _a, _b;\n if (editor.mode.isReadOnly()) {\n return;\n }\n const {dom} = editor;\n const indentation = getIndentation(editor);\n const indentUnit = (_b = (_a = /[a-z%]+$/i.exec(indentation)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 'px';\n const indentValue = parseIndentValue(indentation);\n const useMargin = shouldIndentUseMargin(editor);\n each$e(getBlocksToIndent(editor), block => {\n indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom);\n });\n };\n const indent = editor => handle(editor, 'indent');\n const outdent = editor => handle(editor, 'outdent');\n\n const backspaceDelete$1 = editor => {\n if (editor.selection.isCollapsed() && canOutdent(editor)) {\n const dom = editor.dom;\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const block = dom.getParent(rng.startContainer, dom.isBlock);\n if (block !== null && isAtStartOfBlock(SugarElement.fromDom(block), pos, editor.schema)) {\n return Optional.some(() => outdent(editor));\n }\n }\n return Optional.none();\n };\n\n const findAction = (editor, caret, forward) => findMap([\n backspaceDelete$1,\n backspaceDelete$7,\n backspaceDelete$8,\n (editor, forward) => backspaceDelete$4(editor, caret, forward),\n backspaceDelete$a,\n backspaceDelete$b,\n backspaceDelete$5,\n backspaceDelete$2,\n backspaceDelete$9,\n backspaceDelete$3,\n backspaceDelete$6\n ], item => item(editor, forward)).filter(_ => editor.selection.isEditable());\n const deleteCommand = (editor, caret) => {\n const result = findAction(editor, caret, false);\n result.fold(() => {\n if (editor.selection.isEditable()) {\n execNativeDeleteCommand(editor);\n paddEmptyBody(editor);\n }\n }, call);\n };\n const forwardDeleteCommand = (editor, caret) => {\n const result = findAction(editor, caret, true);\n result.fold(() => {\n if (editor.selection.isEditable()) {\n execNativeForwardDeleteCommand(editor);\n }\n }, call);\n };\n const setup$q = (editor, caret) => {\n editor.addCommand('delete', () => {\n deleteCommand(editor, caret);\n });\n editor.addCommand('forwardDelete', () => {\n forwardDeleteCommand(editor, caret);\n });\n };\n\n const SIGNIFICANT_MOVE = 5;\n const LONGPRESS_DELAY = 400;\n const getTouch = event => {\n if (event.touches === undefined || event.touches.length !== 1) {\n return Optional.none();\n }\n return Optional.some(event.touches[0]);\n };\n const isFarEnough = (touch, data) => {\n const distX = Math.abs(touch.clientX - data.x);\n const distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n const setup$p = editor => {\n const startData = value$2();\n const longpressFired = Cell(false);\n const debounceLongpress = last(e => {\n editor.dispatch('longpress', {\n ...e,\n type: 'longpress'\n });\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n editor.on('touchstart', e => {\n getTouch(e).each(touch => {\n debounceLongpress.cancel();\n const data = {\n x: touch.clientX,\n y: touch.clientY,\n target: e.target\n };\n debounceLongpress.throttle(e);\n longpressFired.set(false);\n startData.set(data);\n });\n }, true);\n editor.on('touchmove', e => {\n debounceLongpress.cancel();\n getTouch(e).each(touch => {\n startData.on(data => {\n if (isFarEnough(touch, data)) {\n startData.clear();\n longpressFired.set(false);\n editor.dispatch('longpresscancel');\n }\n });\n });\n }, true);\n editor.on('touchend touchcancel', e => {\n debounceLongpress.cancel();\n if (e.type === 'touchcancel') {\n return;\n }\n startData.get().filter(data => data.target.isEqualNode(e.target)).each(() => {\n if (longpressFired.get()) {\n e.preventDefault();\n } else {\n editor.dispatch('tap', {\n ...e,\n type: 'tap'\n });\n }\n });\n }, true);\n };\n\n const isBlockElement = (blockElements, node) => has$2(blockElements, node.nodeName);\n const isValidTarget = (schema, node) => {\n if (isText$b(node)) {\n return true;\n } else if (isElement$6(node)) {\n return !isBlockElement(schema.getBlockElements(), node) && !isBookmarkNode$1(node) && !isTransparentBlock(schema, node) && !isNonHtmlElementRoot(node);\n } else {\n return false;\n }\n };\n const hasBlockParent = (blockElements, root, node) => {\n return exists(parents(SugarElement.fromDom(node), SugarElement.fromDom(root)), elm => {\n return isBlockElement(blockElements, elm.dom);\n });\n };\n const shouldRemoveTextNode = (blockElements, node) => {\n if (isText$b(node)) {\n if (node.data.length === 0) {\n return true;\n } else if (/^\\s+$/.test(node.data)) {\n return !node.nextSibling || isBlockElement(blockElements, node.nextSibling) || isNonHtmlElementRoot(node.nextSibling);\n }\n }\n return false;\n };\n const createRootBlock = editor => editor.dom.create(getForcedRootBlock(editor), getForcedRootBlockAttrs(editor));\n const addRootBlocks = editor => {\n const dom = editor.dom, selection = editor.selection;\n const schema = editor.schema;\n const blockElements = schema.getBlockElements();\n const startNode = selection.getStart();\n const rootNode = editor.getBody();\n let rootBlockNode;\n let tempNode;\n let bm = null;\n const forcedRootBlock = getForcedRootBlock(editor);\n if (!startNode || !isElement$6(startNode)) {\n return;\n }\n const rootNodeName = rootNode.nodeName.toLowerCase();\n if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, startNode)) {\n return;\n }\n if (rootNode.firstChild === rootNode.lastChild && isBr$6(rootNode.firstChild)) {\n rootBlockNode = createRootBlock(editor);\n rootBlockNode.appendChild(createPaddingBr().dom);\n rootNode.replaceChild(rootBlockNode, rootNode.firstChild);\n editor.selection.setCursorLocation(rootBlockNode, 0);\n editor.nodeChanged();\n return;\n }\n let node = rootNode.firstChild;\n while (node) {\n if (isElement$6(node)) {\n updateElement(schema, node);\n }\n if (isValidTarget(schema, node)) {\n if (shouldRemoveTextNode(blockElements, node)) {\n tempNode = node;\n node = node.nextSibling;\n dom.remove(tempNode);\n continue;\n }\n if (!rootBlockNode) {\n if (!bm && editor.hasFocus()) {\n bm = getBookmark(editor.selection.getRng(), () => document.createElement('span'));\n }\n if (!node.parentNode) {\n node = null;\n break;\n }\n rootBlockNode = createRootBlock(editor);\n rootNode.insertBefore(rootBlockNode, node);\n }\n tempNode = node;\n node = node.nextSibling;\n rootBlockNode.appendChild(tempNode);\n } else {\n rootBlockNode = null;\n node = node.nextSibling;\n }\n }\n if (bm) {\n editor.selection.setRng(resolveBookmark(bm));\n editor.nodeChanged();\n }\n };\n const insertEmptyLine = (editor, root, insertBlock) => {\n const block = SugarElement.fromDom(createRootBlock(editor));\n const br = createPaddingBr();\n append$1(block, br);\n insertBlock(root, block);\n const rng = document.createRange();\n rng.setStartBefore(br.dom);\n rng.setEndBefore(br.dom);\n return rng;\n };\n const setup$o = editor => {\n editor.on('NodeChange', () => addRootBlocks(editor));\n };\n\n const hasClass = checkClassName => node => (' ' + node.attr('class') + ' ').indexOf(checkClassName) !== -1;\n const replaceMatchWithSpan = (editor, content, cls) => {\n return function (match) {\n const args = arguments, index = args[args.length - 2];\n const prevChar = index > 0 ? content.charAt(index - 1) : '';\n if (prevChar === '\"') {\n return match;\n }\n if (prevChar === '>') {\n const findStartTagIndex = content.lastIndexOf('<', index);\n if (findStartTagIndex !== -1) {\n const tagHtml = content.substring(findStartTagIndex, index);\n if (tagHtml.indexOf('contenteditable=\"false\"') !== -1) {\n return match;\n }\n }\n }\n return '' + editor.dom.encode(typeof args[1] === 'string' ? args[1] : args[0]) + '';\n };\n };\n const convertRegExpsToNonEditable = (editor, nonEditableRegExps, e) => {\n let i = nonEditableRegExps.length, content = e.content;\n if (e.format === 'raw') {\n return;\n }\n while (i--) {\n content = content.replace(nonEditableRegExps[i], replaceMatchWithSpan(editor, content, getNonEditableClass(editor)));\n }\n e.content = content;\n };\n const isValidContent = (nonEditableRegExps, content) => {\n return forall(nonEditableRegExps, re => {\n const matches = content.match(re);\n return matches !== null && matches[0].length === content.length;\n });\n };\n const setup$n = editor => {\n const contentEditableAttrName = 'contenteditable';\n const editClass = ' ' + Tools.trim(getEditableClass(editor)) + ' ';\n const nonEditClass = ' ' + Tools.trim(getNonEditableClass(editor)) + ' ';\n const hasEditClass = hasClass(editClass);\n const hasNonEditClass = hasClass(nonEditClass);\n const nonEditableRegExps = getNonEditableRegExps(editor);\n if (nonEditableRegExps.length > 0) {\n editor.on('BeforeSetContent', e => {\n convertRegExpsToNonEditable(editor, nonEditableRegExps, e);\n });\n }\n editor.parser.addAttributeFilter('class', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (hasEditClass(node)) {\n node.attr(contentEditableAttrName, 'true');\n } else if (hasNonEditClass(node)) {\n node.attr(contentEditableAttrName, 'false');\n }\n }\n });\n editor.serializer.addAttributeFilter(contentEditableAttrName, nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (!hasEditClass(node) && !hasNonEditClass(node)) {\n continue;\n }\n const content = node.attr('data-mce-content');\n if (nonEditableRegExps.length > 0 && content) {\n if (isValidContent(nonEditableRegExps, content)) {\n node.name = '#text';\n node.type = 3;\n node.raw = true;\n node.value = content;\n } else {\n node.remove();\n }\n } else {\n node.attr(contentEditableAttrName, null);\n }\n }\n });\n };\n\n const findBlockCaretContainer = editor => descendant$1(SugarElement.fromDom(editor.getBody()), '*[data-mce-caret]').map(elm => elm.dom).getOrNull();\n const showBlockCaretContainer = (editor, blockCaretContainer) => {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n editor.selection.setRng(editor.selection.getRng());\n editor.selection.scrollIntoView(blockCaretContainer);\n }\n };\n const handleBlockContainer = (editor, e) => {\n const blockCaretContainer = findBlockCaretContainer(editor);\n if (!blockCaretContainer) {\n return;\n }\n if (e.type === 'compositionstart') {\n e.preventDefault();\n e.stopPropagation();\n showBlockCaretContainer(editor, blockCaretContainer);\n return;\n }\n if (hasContent(blockCaretContainer)) {\n showBlockCaretContainer(editor, blockCaretContainer);\n editor.undoManager.add();\n }\n };\n const setup$m = editor => {\n editor.on('keyup compositionstart', curry(handleBlockContainer, editor));\n };\n\n const isContentEditableFalse$4 = isContentEditableFalse$b;\n const moveToCeFalseHorizontally = (direction, editor, range) => moveHorizontally(editor, direction, range, isBeforeContentEditableFalse, isAfterContentEditableFalse, isContentEditableFalse$4);\n const moveToCeFalseVertically = (direction, editor, range) => {\n const isBefore = caretPosition => isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition);\n const isAfter = caretPosition => isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition);\n return moveVertically(editor, direction, range, isBefore, isAfter, isContentEditableFalse$4);\n };\n const createTextBlock = editor => {\n const textBlock = editor.dom.create(getForcedRootBlock(editor));\n textBlock.innerHTML = '
    ';\n return textBlock;\n };\n const exitPreBlock = (editor, direction, range) => {\n const caretWalker = CaretWalker(editor.getBody());\n const getVisualCaretPosition$1 = curry(getVisualCaretPosition, direction === 1 ? caretWalker.next : caretWalker.prev);\n if (range.collapsed) {\n const pre = editor.dom.getParent(range.startContainer, 'PRE');\n if (!pre) {\n return;\n }\n const caretPos = getVisualCaretPosition$1(CaretPosition.fromRangeStart(range));\n if (!caretPos) {\n const newBlock = SugarElement.fromDom(createTextBlock(editor));\n if (direction === 1) {\n after$4(SugarElement.fromDom(pre), newBlock);\n } else {\n before$3(SugarElement.fromDom(pre), newBlock);\n }\n editor.selection.select(newBlock.dom, true);\n editor.selection.collapse();\n }\n }\n };\n const getHorizontalRange = (editor, forward) => {\n const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n const range = editor.selection.getRng();\n return moveToCeFalseHorizontally(direction, editor, range).orThunk(() => {\n exitPreBlock(editor, direction, range);\n return Optional.none();\n });\n };\n const getVerticalRange = (editor, down) => {\n const direction = down ? 1 : -1;\n const range = editor.selection.getRng();\n return moveToCeFalseVertically(direction, editor, range).orThunk(() => {\n exitPreBlock(editor, direction, range);\n return Optional.none();\n });\n };\n const flipDirection = (selection, forward) => {\n const elm = forward ? selection.getEnd(true) : selection.getStart(true);\n return isRtl(elm) ? !forward : forward;\n };\n const moveH$2 = (editor, forward) => getHorizontalRange(editor, flipDirection(editor.selection, forward)).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n const moveV$4 = (editor, down) => getVerticalRange(editor, down).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n const moveToLineEndPoint$1 = (editor, forward) => {\n const isCefPosition = forward ? isAfterContentEditableFalse : isBeforeContentEditableFalse;\n return moveToLineEndPoint$3(editor, forward, isCefPosition);\n };\n const selectToEndPoint = (editor, forward) => getEdgeCefPosition(editor, !forward).map(pos => {\n const rng = pos.toRange();\n const curRng = editor.selection.getRng();\n if (forward) {\n rng.setStart(curRng.startContainer, curRng.startOffset);\n } else {\n rng.setEnd(curRng.endContainer, curRng.endOffset);\n }\n return rng;\n }).exists(rng => {\n moveToRange(editor, rng);\n return true;\n });\n\n const isTarget = node => contains$2(['figcaption'], name(node));\n const getClosestTargetBlock = (pos, root, schema) => {\n const isRoot = curry(eq, root);\n return closest$4(SugarElement.fromDom(pos.container()), el => schema.isBlock(name(el)), isRoot).filter(isTarget);\n };\n const isAtFirstOrLastLine = (root, forward, pos) => forward ? isAtLastLine(root.dom, pos) : isAtFirstLine(root.dom, pos);\n const moveCaretToNewEmptyLine = (editor, forward) => {\n const root = SugarElement.fromDom(editor.getBody());\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n return getClosestTargetBlock(pos, root, editor.schema).exists(() => {\n if (isAtFirstOrLastLine(root, forward, pos)) {\n const insertFn = forward ? append$1 : prepend;\n const rng = insertEmptyLine(editor, root, insertFn);\n editor.selection.setRng(rng);\n return true;\n } else {\n return false;\n }\n });\n };\n const moveV$3 = (editor, forward) => {\n if (editor.selection.isCollapsed()) {\n return moveCaretToNewEmptyLine(editor, forward);\n } else {\n return false;\n }\n };\n\n const moveUp = (editor, details, summary) => {\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (root.firstChild === details && isAtFirstLine(summary, pos)) {\n editor.execCommand('InsertNewBlockBefore');\n return true;\n } else {\n return false;\n }\n };\n const moveDown = (editor, details) => {\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (root.lastChild === details && isAtLastLine(details, pos)) {\n editor.execCommand('InsertNewBlockAfter');\n return true;\n } else {\n return false;\n }\n };\n const move$2 = (editor, forward) => {\n if (forward) {\n return Optional.from(editor.dom.getParent(editor.selection.getNode(), 'details')).map(details => moveDown(editor, details)).getOr(false);\n } else {\n return Optional.from(editor.dom.getParent(editor.selection.getNode(), 'summary')).bind(summary => Optional.from(editor.dom.getParent(summary, 'details')).map(details => moveUp(editor, details, summary))).getOr(false);\n }\n };\n const moveV$2 = (editor, forward) => move$2(editor, forward);\n\n const baseKeyPattern = {\n shiftKey: false,\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n keyCode: 0\n };\n const defaultPatterns = patterns => map$3(patterns, pattern => ({\n ...baseKeyPattern,\n ...pattern\n }));\n const defaultDelayedPatterns = patterns => map$3(patterns, pattern => ({\n ...baseKeyPattern,\n ...pattern\n }));\n const matchesEvent = (pattern, evt) => evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;\n const match$1 = (patterns, evt) => bind$3(defaultPatterns(patterns), pattern => matchesEvent(pattern, evt) ? [pattern] : []);\n const matchDelayed = (patterns, evt) => bind$3(defaultDelayedPatterns(patterns), pattern => matchesEvent(pattern, evt) ? [pattern] : []);\n const action = (f, ...x) => () => f.apply(null, x);\n const execute = (patterns, evt) => find$2(match$1(patterns, evt), pattern => pattern.action());\n const executeWithDelayedAction = (patterns, evt) => findMap(matchDelayed(patterns, evt), pattern => pattern.action());\n\n const moveH$1 = (editor, forward) => {\n const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n const range = editor.selection.getRng();\n return moveHorizontally(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n };\n const moveV$1 = (editor, down) => {\n const direction = down ? 1 : -1;\n const range = editor.selection.getRng();\n return moveVertically(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n };\n const moveToLineEndPoint = (editor, forward) => {\n const isNearMedia = forward ? isAfterMedia : isBeforeMedia;\n return moveToLineEndPoint$3(editor, forward, isNearMedia);\n };\n\n const adt = Adt.generate([\n { none: ['current'] },\n { first: ['current'] },\n {\n middle: [\n 'current',\n 'target'\n ]\n },\n { last: ['current'] }\n ]);\n const none = current => adt.none(current);\n const CellLocation = {\n ...adt,\n none\n };\n\n const firstLayer = (scope, selector) => {\n return filterFirstLayer(scope, selector, always);\n };\n const filterFirstLayer = (scope, selector, predicate) => {\n return bind$3(children$1(scope), x => {\n if (is$1(x, selector)) {\n return predicate(x) ? [x] : [];\n } else {\n return filterFirstLayer(x, selector, predicate);\n }\n });\n };\n\n const lookup$1 = (tags, element, isRoot = never) => {\n if (isRoot(element)) {\n return Optional.none();\n }\n if (contains$2(tags, name(element))) {\n return Optional.some(element);\n }\n const isRootOrUpperTable = elm => is$1(elm, 'table') || isRoot(elm);\n return ancestor$3(element, tags.join(','), isRootOrUpperTable);\n };\n const cell = (element, isRoot) => lookup$1([\n 'td',\n 'th'\n ], element, isRoot);\n const cells = ancestor => firstLayer(ancestor, 'th,td');\n const table = (element, isRoot) => closest$3(element, 'table', isRoot);\n\n const walk = (all, current, index, direction, isEligible = always) => {\n const forwards = direction === 1;\n if (!forwards && index <= 0) {\n return CellLocation.first(all[0]);\n } else if (forwards && index >= all.length - 1) {\n return CellLocation.last(all[all.length - 1]);\n } else {\n const newIndex = index + direction;\n const elem = all[newIndex];\n return isEligible(elem) ? CellLocation.middle(current, elem) : walk(all, current, newIndex, direction, isEligible);\n }\n };\n const detect = (current, isRoot) => {\n return table(current, isRoot).bind(table => {\n const all = cells(table);\n const index = findIndex$2(all, x => eq(current, x));\n return index.map(index => ({\n index,\n all\n }));\n });\n };\n const next = (current, isEligible, isRoot) => {\n const detection = detect(current, isRoot);\n return detection.fold(() => {\n return CellLocation.none(current);\n }, info => {\n return walk(info.all, current, info.index, 1, isEligible);\n });\n };\n const prev = (current, isEligible, isRoot) => {\n const detection = detect(current, isRoot);\n return detection.fold(() => {\n return CellLocation.none();\n }, info => {\n return walk(info.all, current, info.index, -1, isEligible);\n });\n };\n\n const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome();\n const isContentEditableFalse$3 = elem => isHTMLElement$1(elem) && get$9(elem, 'contenteditable') === 'false';\n const elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n const isCursorPosition = elem => {\n const hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem)) || isContentEditableFalse$3(elem);\n };\n\n const first = element => descendant$2(element, isCursorPosition);\n\n const deflate = (rect, delta) => ({\n left: rect.left - delta,\n top: rect.top - delta,\n right: rect.right + delta * 2,\n bottom: rect.bottom + delta * 2,\n width: rect.width + delta,\n height: rect.height + delta\n });\n const getCorners = (getYAxisValue, tds) => bind$3(tds, td => {\n const rect = deflate(clone$1(td.getBoundingClientRect()), -1);\n return [\n {\n x: rect.left,\n y: getYAxisValue(rect),\n cell: td\n },\n {\n x: rect.right,\n y: getYAxisValue(rect),\n cell: td\n }\n ];\n });\n const findClosestCorner = (corners, x, y) => foldl(corners, (acc, newCorner) => acc.fold(() => Optional.some(newCorner), oldCorner => {\n const oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y));\n const newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y));\n return Optional.some(newDist < oldDist ? newCorner : oldCorner);\n }), Optional.none());\n const getClosestCell = (getYAxisValue, isTargetCorner, table, x, y) => {\n const cells = descendants(SugarElement.fromDom(table), 'td,th,caption').map(e => e.dom);\n const corners = filter$5(getCorners(getYAxisValue, cells), corner => isTargetCorner(corner, y));\n return findClosestCorner(corners, x, y).map(corner => corner.cell);\n };\n const getBottomValue = rect => rect.bottom;\n const getTopValue = rect => rect.top;\n const isAbove = (corner, y) => corner.y < y;\n const isBelow = (corner, y) => corner.y > y;\n const getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove);\n const getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow);\n const findClosestPositionInAboveCell = (table, pos) => head(pos.getClientRects()).bind(rect => getClosestCellAbove(table, rect.left, rect.top)).bind(cell => findClosestHorizontalPosition(getLastLinePositions(cell), pos));\n const findClosestPositionInBelowCell = (table, pos) => last$2(pos.getClientRects()).bind(rect => getClosestCellBelow(table, rect.left, rect.top)).bind(cell => findClosestHorizontalPosition(getFirstLinePositions(cell), pos));\n\n const hasNextBreak = (getPositionsUntil, scope, lineInfo) => lineInfo.breakAt.exists(breakPos => getPositionsUntil(scope, breakPos).breakAt.isSome());\n const startsWithWrapBreak = lineInfo => lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0;\n const startsWithBrBreak = lineInfo => lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1;\n const isAtTableCellLine = (getPositionsUntil, scope, pos) => {\n const lineInfo = getPositionsUntil(scope, pos);\n if (startsWithWrapBreak(lineInfo) || !isBr$6(pos.getNode()) && startsWithBrBreak(lineInfo)) {\n return !hasNextBreak(getPositionsUntil, scope, lineInfo);\n } else {\n return lineInfo.breakAt.isNone();\n }\n };\n const isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine);\n const isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine);\n const isCaretAtStartOrEndOfTable = (forward, rng, table) => {\n const caretPos = CaretPosition.fromRangeStart(rng);\n return positionIn(!forward, table).exists(pos => pos.isEqual(caretPos));\n };\n const navigateHorizontally = (editor, forward, table, _td) => {\n const rng = editor.selection.getRng();\n const direction = forward ? 1 : -1;\n if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) {\n showCaret(direction, editor, table, !forward, false).each(newRng => {\n moveToRange(editor, newRng);\n });\n return true;\n }\n return false;\n };\n const getClosestAbovePosition = (root, table, start) => findClosestPositionInAboveCell(table, start).orThunk(() => head(start.getClientRects()).bind(rect => findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition.before(table)), rect.left))).getOr(CaretPosition.before(table));\n const getClosestBelowPosition = (root, table, start) => findClosestPositionInBelowCell(table, start).orThunk(() => head(start.getClientRects()).bind(rect => findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition.after(table)), rect.left))).getOr(CaretPosition.after(table));\n const getTable = (previous, pos) => {\n const node = pos.getNode(previous);\n return isTable$2(node) ? Optional.some(node) : Optional.none();\n };\n const renderBlock = (down, editor, table) => {\n editor.undoManager.transact(() => {\n const insertFn = down ? after$4 : before$3;\n const rng = insertEmptyLine(editor, SugarElement.fromDom(table), insertFn);\n moveToRange(editor, rng);\n });\n };\n const moveCaret = (editor, down, pos) => {\n const table = down ? getTable(true, pos) : getTable(false, pos);\n const last = down === false;\n table.fold(() => moveToRange(editor, pos.toRange()), table => positionIn(last, editor.getBody()).filter(lastPos => lastPos.isEqual(pos)).fold(() => moveToRange(editor, pos.toRange()), _ => renderBlock(down, editor, table)));\n };\n const navigateVertically = (editor, down, table, td) => {\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (!down && isAtFirstTableCellLine(td, pos)) {\n const newPos = getClosestAbovePosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else if (down && isAtLastTableCellLine(td, pos)) {\n const newPos = getClosestBelowPosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else {\n return false;\n }\n };\n const move$1 = (editor, forward, mover) => Optional.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(td => Optional.from(editor.dom.getParent(td, 'table')).map(table => mover(editor, forward, table, td))).getOr(false);\n const moveH = (editor, forward) => move$1(editor, forward, navigateHorizontally);\n const moveV = (editor, forward) => move$1(editor, forward, navigateVertically);\n const getCellFirstCursorPosition = cell => {\n const selection = SimSelection.exact(cell, 0, cell, 0);\n return toNative(selection);\n };\n const tabGo = (editor, isRoot, cell) => {\n return cell.fold(Optional.none, Optional.none, (_current, next) => {\n return first(next).map(cell => {\n return getCellFirstCursorPosition(cell);\n });\n }, current => {\n if (editor.mode.isReadOnly()) {\n return Optional.none();\n }\n editor.execCommand('mceTableInsertRowAfter');\n return tabForward(editor, isRoot, current);\n });\n };\n const tabForward = (editor, isRoot, cell) => tabGo(editor, isRoot, next(cell, isEditable$2));\n const tabBackward = (editor, isRoot, cell) => tabGo(editor, isRoot, prev(cell, isEditable$2));\n const handleTab = (editor, forward) => {\n const rootElements = [\n 'table',\n 'li',\n 'dl'\n ];\n const body = SugarElement.fromDom(editor.getBody());\n const isRoot = element => {\n const name$1 = name(element);\n return eq(element, body) || contains$2(rootElements, name$1);\n };\n const rng = editor.selection.getRng();\n const container = SugarElement.fromDom(!forward ? rng.startContainer : rng.endContainer);\n return cell(container, isRoot).map(cell => {\n table(cell, isRoot).each(table => {\n editor.model.table.clearSelectedCells(table.dom);\n });\n editor.selection.collapse(!forward);\n const navigation = !forward ? tabBackward : tabForward;\n const rng = navigation(editor, isRoot, cell);\n rng.each(range => {\n editor.selection.setRng(range);\n });\n return true;\n }).getOr(false);\n };\n\n const executeKeydownOverride$4 = (editor, caret, evt) => {\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n execute([\n {\n keyCode: VK.RIGHT,\n action: action(moveH$2, editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(moveH$2, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$4, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$4, editor, true)\n },\n ...isMac ? [\n {\n keyCode: VK.UP,\n action: action(selectToEndPoint, editor, false),\n metaKey: true,\n shiftKey: true\n },\n {\n keyCode: VK.DOWN,\n action: action(selectToEndPoint, editor, true),\n metaKey: true,\n shiftKey: true\n }\n ] : [],\n {\n keyCode: VK.RIGHT,\n action: action(moveH, editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(moveH, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV, editor, true)\n },\n {\n keyCode: VK.UP,\n action: action(moveV, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$2, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$2, editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: action(moveH$1, editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(moveH$1, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$1, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$1, editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: action(move$3, editor, caret, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(move$3, editor, caret, false)\n },\n {\n keyCode: VK.RIGHT,\n ctrlKey: !isMac,\n altKey: isMac,\n action: action(moveNextWord, editor, caret)\n },\n {\n keyCode: VK.LEFT,\n ctrlKey: !isMac,\n altKey: isMac,\n action: action(movePrevWord, editor, caret)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$3, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$3, editor, true)\n }\n ], evt).each(_ => {\n evt.preventDefault();\n });\n };\n const setup$l = (editor, caret) => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$4(editor, caret, evt);\n }\n });\n };\n\n const point = (container, offset) => ({\n container,\n offset\n });\n\n const DOM$7 = DOMUtils.DOM;\n const alwaysNext = startNode => node => startNode === node ? -1 : 0;\n const isBoundary = dom => node => dom.isBlock(node) || contains$2([\n 'BR',\n 'IMG',\n 'HR',\n 'INPUT'\n ], node.nodeName) || dom.getContentEditable(node) === 'false';\n const textBefore = (node, offset, rootNode) => {\n if (isText$b(node) && offset >= 0) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).map(prev => point(prev.container, prev.container.data.length));\n }\n };\n const textAfter = (node, offset, rootNode) => {\n if (isText$b(node) && offset >= node.length) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).map(prev => point(prev.container, 0));\n }\n };\n const scanLeft = (node, offset, rootNode) => {\n if (!isText$b(node)) {\n return Optional.none();\n }\n const text = node.data;\n if (offset >= 0 && offset <= text.length) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).bind(prev => {\n const prevText = prev.container.data;\n return scanLeft(prev.container, offset + prevText.length, rootNode);\n });\n }\n };\n const scanRight = (node, offset, rootNode) => {\n if (!isText$b(node)) {\n return Optional.none();\n }\n const text = node.data;\n if (offset <= text.length) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).bind(next => scanRight(next.container, offset - text.length, rootNode));\n }\n };\n const repeatLeft = (dom, node, offset, process, rootNode) => {\n const search = TextSeeker(dom, isBoundary(dom));\n return Optional.from(search.backwards(node, offset, process, rootNode));\n };\n\n const isValidTextRange = rng => rng.collapsed && isText$b(rng.startContainer);\n const getText = rng => trim$2(rng.toString().replace(/\\u00A0/g, ' '));\n const isWhitespace = chr => chr !== '' && ' \\xA0\\uFEFF\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n\n const stripTrigger = (text, trigger) => text.substring(trigger.length);\n const findTrigger = (text, index, trigger, includeWhitespace = false) => {\n let i;\n const firstChar = trigger.charAt(0);\n for (i = index - 1; i >= 0; i--) {\n const char = text.charAt(i);\n if (!includeWhitespace && isWhitespace(char)) {\n return Optional.none();\n }\n if (firstChar === char && contains$1(text, trigger, i, index)) {\n break;\n }\n }\n return Optional.some(i);\n };\n const getContext = (dom, initRange, trigger, includeWhitespace = false) => {\n if (!isValidTextRange(initRange)) {\n return Optional.none();\n }\n const buffer = {\n text: '',\n offset: 0\n };\n const findTriggerIndex = (element, offset, text) => {\n buffer.text = text + buffer.text;\n buffer.offset += offset;\n return findTrigger(buffer.text, buffer.offset, trigger, includeWhitespace).getOr(offset);\n };\n const root = dom.getParent(initRange.startContainer, dom.isBlock) || dom.getRoot();\n return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerIndex, root).bind(spot => {\n const range = initRange.cloneRange();\n range.setStart(spot.container, spot.offset);\n range.setEnd(initRange.endContainer, initRange.endOffset);\n if (range.collapsed) {\n return Optional.none();\n }\n const text = getText(range);\n const triggerIndex = text.lastIndexOf(trigger);\n if (triggerIndex !== 0) {\n return Optional.none();\n } else {\n return Optional.some({\n text: stripTrigger(text, trigger),\n range,\n trigger\n });\n }\n });\n };\n\n const isText$1 = node => node.nodeType === TEXT;\n const isElement = node => node.nodeType === ELEMENT;\n const toLast = node => {\n if (isText$1(node)) {\n return point(node, node.data.length);\n } else {\n const children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point(node, children.length);\n }\n };\n const toLeaf = (node, offset) => {\n const children = node.childNodes;\n if (children.length > 0 && offset < children.length) {\n return toLeaf(children[offset], 0);\n } else if (children.length > 0 && isElement(node) && children.length === offset) {\n return toLast(children[children.length - 1]);\n } else {\n return point(node, offset);\n }\n };\n\n const isPreviousCharContent = (dom, leaf) => {\n var _a;\n const root = (_a = dom.getParent(leaf.container, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();\n return repeatLeft(dom, leaf.container, leaf.offset, (_element, offset) => offset === 0 ? -1 : offset, root).filter(spot => {\n const char = spot.container.data.charAt(spot.offset - 1);\n return !isWhitespace(char);\n }).isSome();\n };\n const isStartOfWord = dom => rng => {\n const leaf = toLeaf(rng.startContainer, rng.startOffset);\n return !isPreviousCharContent(dom, leaf);\n };\n const getTriggerContext = (dom, initRange, database) => findMap(database.triggers, trigger => getContext(dom, initRange, trigger));\n const lookup = (editor, getDatabase) => {\n const database = getDatabase();\n const rng = editor.selection.getRng();\n return getTriggerContext(editor.dom, rng, database).bind(context => lookupWithContext(editor, getDatabase, context));\n };\n const lookupWithContext = (editor, getDatabase, context, fetchOptions = {}) => {\n var _a;\n const database = getDatabase();\n const rng = editor.selection.getRng();\n const startText = (_a = rng.startContainer.nodeValue) !== null && _a !== void 0 ? _a : '';\n const autocompleters = filter$5(database.lookupByTrigger(context.trigger), autocompleter => context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(() => isStartOfWord(editor.dom))(context.range, startText, context.text));\n if (autocompleters.length === 0) {\n return Optional.none();\n }\n const lookupData = Promise.all(map$3(autocompleters, ac => {\n const fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n return fetchResult.then(results => ({\n matchText: context.text,\n items: results,\n columns: ac.columns,\n onAction: ac.onAction,\n highlightOn: ac.highlightOn\n }));\n }));\n return Optional.some({\n lookupData,\n context\n });\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n const fold$1 = (res, onError, onValue) => res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n const partition = results => {\n const values = [];\n const errors = [];\n each$e(results, obj => {\n fold$1(obj, err => errors.push(err), val => values.push(val));\n });\n return {\n values,\n errors\n };\n };\n const mapError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n const map = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n const bind$1 = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n const bindError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n const svalue = v => ({\n stype: SimpleResultType.Value,\n svalue: v\n });\n const serror = e => ({\n stype: SimpleResultType.Error,\n serror: e\n });\n const toResult = res => fold$1(res, Result.error, Result.value);\n const fromResult = res => res.fold(serror, svalue);\n const SimpleResult = {\n fromResult,\n toResult,\n svalue,\n partition,\n serror,\n bind: bind$1,\n bindError,\n map,\n mapError,\n fold: fold$1\n };\n\n const formatObj = input => {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n const formatErrors = errors => {\n const es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: constant('... (only showing first ten failures)')\n }]) : errors;\n return map$3(es, e => {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n const nu = (path, getErrorInfo) => {\n return SimpleResult.serror([{\n path,\n getErrorInfo\n }]);\n };\n const missingRequired = (path, key, obj) => nu(path, () => 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj));\n const missingKey = (path, key) => nu(path, () => 'Choice schema did not contain choice key: \"' + key + '\"');\n const missingBranch = (path, branches, branch) => nu(path, () => 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches));\n const custom = (path, err) => nu(path, constant(err));\n\n const chooseFrom = (path, input, branches, ch) => {\n const fields = get$a(branches, ch);\n return fields.fold(() => missingBranch(path, branches, ch), vp => vp.extract(path.concat(['branch: ' + ch]), input));\n };\n const choose$1 = (key, branches) => {\n const extract = (path, input) => {\n const choice = get$a(input, key);\n return choice.fold(() => missingKey(path, key), chosen => chooseFrom(path, input, branches, chosen));\n };\n const toString = () => 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n return {\n extract,\n toString\n };\n };\n\n const shallow = (old, nu) => {\n return nu;\n };\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n const merge = baseMerge(shallow);\n\n const required = () => ({\n tag: 'required',\n process: {}\n });\n const defaultedThunk = fallbackThunk => ({\n tag: 'defaultedThunk',\n process: fallbackThunk\n });\n const defaulted$1 = fallback => defaultedThunk(constant(fallback));\n const asOption = () => ({\n tag: 'option',\n process: {}\n });\n\n const mergeValues = (values, base) => values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge.apply(undefined, values))) : SimpleResult.svalue(base);\n const mergeErrors = errors => compose(SimpleResult.serror, flatten)(errors);\n const consolidateObj = (objects, base) => {\n const partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors(partition.errors) : mergeValues(partition.values, base);\n };\n const consolidateArr = objects => {\n const partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n const ResultCombine = {\n consolidateObj,\n consolidateArr\n };\n\n const field$1 = (key, newKey, presence, prop) => ({\n tag: 'field',\n key,\n newKey,\n presence,\n prop\n });\n const customField$1 = (newKey, instantiator) => ({\n tag: 'custom',\n newKey,\n instantiator\n });\n const fold = (value, ifField, ifCustom) => {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n const value = validator => {\n const extract = (path, val) => {\n return SimpleResult.bindError(validator(val), err => custom(path, err));\n };\n const toString = constant('val');\n return {\n extract,\n toString\n };\n };\n const anyValue$1 = value(SimpleResult.svalue);\n\n const requiredAccess = (path, obj, key, bundle) => get$a(obj, key).fold(() => missingRequired(path, key, obj), bundle);\n const fallbackAccess = (obj, key, fallback, bundle) => {\n const v = get$a(obj, key).getOrThunk(() => fallback(obj));\n return bundle(v);\n };\n const optionAccess = (obj, key, bundle) => bundle(get$a(obj, key));\n const optionDefaultedAccess = (obj, key, fallback, bundle) => {\n const opt = get$a(obj, key).map(val => val === true ? fallback(obj) : val);\n return bundle(opt);\n };\n const extractField = (field, path, obj, key, prop) => {\n const bundle = av => prop.extract(path.concat([key]), av);\n const bundleAsOption = optValue => optValue.fold(() => SimpleResult.svalue(Optional.none()), ov => {\n const result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n case 'mergeWithThunk': {\n return fallbackAccess(obj, key, constant({}), v => {\n const result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n const extractFields = (path, obj, fields) => {\n const success = {};\n const errors = [];\n for (const field of fields) {\n fold(field, (key, newKey, presence, prop) => {\n const result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, err => {\n errors.push(...err);\n }, res => {\n success[newKey] = res;\n });\n }, (newKey, instantiator) => {\n success[newKey] = instantiator(obj);\n });\n }\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n const objOf = values => {\n const extract = (path, o) => extractFields(path, o, values);\n const toString = () => {\n const fieldStrings = map$3(values, value => fold(value, (key, _okey, _presence, prop) => key + ' -> ' + prop.toString(), (newKey, _instantiator) => 'state(' + newKey + ')'));\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract,\n toString\n };\n };\n const arrOf = prop => {\n const extract = (path, array) => {\n const results = map$3(array, (a, i) => prop.extract(path.concat(['[' + i + ']']), a));\n return ResultCombine.consolidateArr(results);\n };\n const toString = () => 'array(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n\n const valueOf = validator => value(v => validator(v).fold(SimpleResult.serror, SimpleResult.svalue));\n const extractValue = (label, prop, obj) => {\n const res = prop.extract([label], obj);\n return SimpleResult.mapError(res, errs => ({\n input: obj,\n errors: errs\n }));\n };\n const asRaw = (label, prop, obj) => SimpleResult.toResult(extractValue(label, prop, obj));\n const formatError = errInfo => {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n const choose = (key, branches) => choose$1(key, map$2(branches, objOf));\n\n const anyValue = constant(anyValue$1);\n const typedValue = (validator, expectedType) => value(a => {\n const actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror(`Expected type: ${ expectedType } but got: ${ actualType }`);\n });\n const number = typedValue(isNumber, 'number');\n const string = typedValue(isString, 'string');\n const boolean = typedValue(isBoolean, 'boolean');\n const functionProcessor = typedValue(isFunction, 'function');\n\n const field = field$1;\n const customField = customField$1;\n const validateEnum = values => valueOf(value => contains$2(values, value) ? Result.value(value) : Result.error(`Unsupported value: \"${ value }\", choose one of \"${ values.join(', ') }\".`));\n const requiredOf = (key, schema) => field(key, key, required(), schema);\n const requiredString = key => requiredOf(key, string);\n const requiredFunction = key => requiredOf(key, functionProcessor);\n const requiredArrayOf = (key, schema) => field(key, key, required(), arrOf(schema));\n const optionOf = (key, schema) => field(key, key, asOption(), schema);\n const optionString = key => optionOf(key, string);\n const optionFunction = key => optionOf(key, functionProcessor);\n const defaulted = (key, fallback) => field(key, key, defaulted$1(fallback), anyValue());\n const defaultedOf = (key, fallback, schema) => field(key, key, defaulted$1(fallback), schema);\n const defaultedNumber = (key, fallback) => defaultedOf(key, fallback, number);\n const defaultedString = (key, fallback) => defaultedOf(key, fallback, string);\n const defaultedStringEnum = (key, fallback, values) => defaultedOf(key, fallback, validateEnum(values));\n const defaultedBoolean = (key, fallback) => defaultedOf(key, fallback, boolean);\n const defaultedFunction = (key, fallback) => defaultedOf(key, fallback, functionProcessor);\n const defaultedArrayOf = (key, fallback, schema) => defaultedOf(key, fallback, arrOf(schema));\n\n const type = requiredString('type');\n const fetch$1 = requiredFunction('fetch');\n const onAction = requiredFunction('onAction');\n const onSetup = defaultedFunction('onSetup', () => noop);\n const optionalText = optionString('text');\n const optionalIcon = optionString('icon');\n const optionalTooltip = optionString('tooltip');\n const optionalLabel = optionString('label');\n const active = defaultedBoolean('active', false);\n const enabled = defaultedBoolean('enabled', true);\n const primary = defaultedBoolean('primary', false);\n const defaultedColumns = num => defaulted('columns', num);\n const defaultedType = type => defaultedString('type', type);\n\n const autocompleterSchema = objOf([\n type,\n requiredString('trigger'),\n defaultedNumber('minChars', 1),\n defaultedColumns(1),\n defaultedNumber('maxResults', 10),\n optionFunction('matches'),\n fetch$1,\n onAction,\n defaultedArrayOf('highlightOn', [], string)\n ]);\n const createAutocompleter = spec => asRaw('Autocompleter', autocompleterSchema, spec);\n\n const baseToolbarButtonFields = [\n enabled,\n optionalTooltip,\n optionalIcon,\n optionalText,\n onSetup,\n defaultedString('context', 'mode:design')\n ];\n\n const baseToolbarToggleButtonFields = [active].concat(baseToolbarButtonFields);\n\n const contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n const contextButtonFields = baseToolbarButtonFields.concat([\n defaultedType('contextformbutton'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaultedType('contextformbutton'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const launchButtonFields = baseToolbarButtonFields.concat([defaultedType('contextformbutton')]);\n const launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaultedType('contextformtogglebutton')]);\n const toggleOrNormal = choose('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n objOf([\n defaultedType('contextform'),\n defaultedFunction('initValue', constant('')),\n optionalLabel,\n requiredArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n\n const register$2 = editor => {\n const popups = editor.ui.registry.getAll().popups;\n const dataset = map$2(popups, popup => createAutocompleter(popup).fold(err => {\n throw new Error(formatError(err));\n }, identity));\n const triggers = stringArray(mapToArray(dataset, v => v.trigger));\n const datasetValues = values(dataset);\n const lookupByTrigger = trigger => filter$5(datasetValues, dv => dv.trigger === trigger);\n return {\n dataset,\n triggers,\n lookupByTrigger\n };\n };\n\n const setupEditorInput = (editor, api) => {\n const update = last(api.load, 50);\n editor.on('input', e => {\n if (e.inputType === 'insertCompositionText' && !editor.composing) {\n return;\n }\n update.throttle();\n });\n editor.on('keydown', e => {\n const keyCode = e.which;\n if (keyCode === 8) {\n update.throttle();\n } else if (keyCode === 27) {\n update.cancel();\n api.cancelIfNecessary();\n } else if (keyCode === 38 || keyCode === 40) {\n update.cancel();\n }\n }, true);\n editor.on('remove', update.cancel);\n };\n const setup$k = editor => {\n const activeAutocompleter = value$2();\n const uiActive = Cell(false);\n const isActive = activeAutocompleter.isSet;\n const cancelIfNecessary = () => {\n if (isActive()) {\n fireAutocompleterEnd(editor);\n uiActive.set(false);\n activeAutocompleter.clear();\n }\n };\n const commenceIfNecessary = context => {\n if (!isActive()) {\n activeAutocompleter.set({\n trigger: context.trigger,\n matchLength: context.text.length\n });\n }\n };\n const getAutocompleters = cached(() => register$2(editor));\n const doLookup = fetchOptions => activeAutocompleter.get().map(ac => getContext(editor.dom, editor.selection.getRng(), ac.trigger, true).bind(newContext => lookupWithContext(editor, getAutocompleters, newContext, fetchOptions))).getOrThunk(() => lookup(editor, getAutocompleters));\n const load = fetchOptions => {\n doLookup(fetchOptions).fold(cancelIfNecessary, lookupInfo => {\n commenceIfNecessary(lookupInfo.context);\n lookupInfo.lookupData.then(lookupData => {\n activeAutocompleter.get().map(ac => {\n const context = lookupInfo.context;\n if (ac.trigger !== context.trigger) {\n return;\n }\n activeAutocompleter.set({\n ...ac,\n matchLength: context.text.length\n });\n if (uiActive.get()) {\n fireAutocompleterUpdateActiveRange(editor, { range: context.range });\n fireAutocompleterUpdate(editor, { lookupData });\n } else {\n uiActive.set(true);\n fireAutocompleterUpdateActiveRange(editor, { range: context.range });\n fireAutocompleterStart(editor, { lookupData });\n }\n });\n });\n });\n };\n const isRangeInsideOrEqual = (innerRange, outerRange) => {\n const startComparison = innerRange.compareBoundaryPoints(window.Range.START_TO_START, outerRange);\n const endComparison = innerRange.compareBoundaryPoints(window.Range.END_TO_END, outerRange);\n return startComparison >= 0 && endComparison <= 0;\n };\n const readActiveRange = () => {\n return activeAutocompleter.get().bind(({trigger}) => {\n const selRange = editor.selection.getRng();\n return getContext(editor.dom, selRange, trigger, uiActive.get()).filter(({range}) => isRangeInsideOrEqual(selRange, range)).map(({range}) => range);\n });\n };\n editor.addCommand('mceAutocompleterReload', (_ui, value) => {\n const fetchOptions = isObject(value) ? value.fetchOptions : {};\n load(fetchOptions);\n });\n editor.addCommand('mceAutocompleterClose', cancelIfNecessary);\n editor.addCommand('mceAutocompleterRefreshActiveRange', () => {\n readActiveRange().each(range => {\n fireAutocompleterUpdateActiveRange(editor, { range });\n });\n });\n editor.editorCommands.addQueryStateHandler('mceAutoCompleterInRange', () => readActiveRange().isSome());\n setupEditorInput(editor, {\n cancelIfNecessary,\n load\n });\n };\n\n const browser$1 = detect$1().browser;\n const isSafari = browser$1.isSafari();\n const emptyNodeContents = node => fillWithPaddingBr(SugarElement.fromDom(node));\n const isEntireNodeSelected = (rng, node) => {\n var _a;\n return rng.startOffset === 0 && rng.endOffset === ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.length);\n };\n const getParentDetailsElementAtPos = (dom, pos) => Optional.from(dom.getParent(pos.container(), 'details'));\n const isInDetailsElement = (dom, pos) => getParentDetailsElementAtPos(dom, pos).isSome();\n const getDetailsElements = (dom, rng) => {\n const startDetails = Optional.from(dom.getParent(rng.startContainer, 'details'));\n const endDetails = Optional.from(dom.getParent(rng.endContainer, 'details'));\n if (startDetails.isSome() || endDetails.isSome()) {\n const startSummary = startDetails.bind(details => Optional.from(dom.select('summary', details)[0]));\n return Optional.some({\n startSummary,\n startDetails,\n endDetails\n });\n } else {\n return Optional.none();\n }\n };\n const isCaretInTheBeginningOf = (caretPos, element) => firstPositionIn(element).exists(pos => pos.isEqual(caretPos));\n const isCaretInTheEndOf = (caretPos, element) => {\n return lastPositionIn(element).exists(pos => {\n if (isBr$6(pos.getNode())) {\n return prevPosition(element, pos).exists(pos2 => pos2.isEqual(caretPos)) || pos.isEqual(caretPos);\n } else {\n return pos.isEqual(caretPos);\n }\n });\n };\n const isCaretAtStartOfSummary = (caretPos, detailsElements) => detailsElements.startSummary.exists(summary => isCaretInTheBeginningOf(caretPos, summary));\n const isCaretAtEndOfSummary = (caretPos, detailsElements) => detailsElements.startSummary.exists(summary => isCaretInTheEndOf(caretPos, summary));\n const isCaretInFirstPositionInBody = (caretPos, detailsElements) => detailsElements.startDetails.exists(details => prevPosition(details, caretPos).forall(pos => detailsElements.startSummary.exists(summary => !summary.contains(caretPos.container()) && summary.contains(pos.container()))));\n const isCaretInLastPositionInBody = (root, caretPos, detailsElements) => detailsElements.startDetails.exists(details => nextPosition(root, caretPos).forall(pos => !details.contains(pos.container())));\n const setCaretToPosition = (editor, position) => {\n const node = position.getNode();\n if (!isUndefined(node)) {\n editor.selection.setCursorLocation(node, position.offset());\n }\n };\n const moveCaretToDetailsPos = (editor, pos, forward) => {\n const details = editor.dom.getParent(pos.container(), 'details');\n if (details && !details.open) {\n const summary = editor.dom.select('summary', details)[0];\n if (summary) {\n const newPos = forward ? firstPositionIn(summary) : lastPositionIn(summary);\n newPos.each(pos => setCaretToPosition(editor, pos));\n }\n } else {\n setCaretToPosition(editor, pos);\n }\n };\n const isPartialDelete = (rng, detailsElements) => {\n const containsStart = element => element.contains(rng.startContainer);\n const containsEnd = element => element.contains(rng.endContainer);\n const startInSummary = detailsElements.startSummary.exists(containsStart);\n const endInSummary = detailsElements.startSummary.exists(containsEnd);\n const isPartiallySelectedDetailsElements = detailsElements.startDetails.forall(startDetails => detailsElements.endDetails.forall(endDetails => startDetails !== endDetails));\n const isInPartiallySelectedSummary = (startInSummary || endInSummary) && !(startInSummary && endInSummary);\n return isInPartiallySelectedSummary || isPartiallySelectedDetailsElements;\n };\n const shouldPreventDeleteIntoDetails = (editor, forward, granularity) => {\n const {dom, selection} = editor;\n const root = editor.getBody();\n if (granularity === 'character') {\n const caretPos = CaretPosition.fromRangeStart(selection.getRng());\n const parentBlock = dom.getParent(caretPos.container(), dom.isBlock);\n const parentDetailsAtCaret = getParentDetailsElementAtPos(dom, caretPos);\n const inEmptyParentBlock = parentBlock && dom.isEmpty(parentBlock);\n const isFirstBlock = isNull(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.previousSibling);\n const isLastBlock = isNull(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.nextSibling);\n if (inEmptyParentBlock) {\n const firstOrLast = forward ? isLastBlock : isFirstBlock;\n if (firstOrLast) {\n const isBeforeAfterDetails = navigate(!forward, root, caretPos).exists(pos => {\n return isInDetailsElement(dom, pos) && !equals(parentDetailsAtCaret, getParentDetailsElementAtPos(dom, pos));\n });\n if (isBeforeAfterDetails) {\n return true;\n }\n }\n }\n return navigate(forward, root, caretPos).fold(never, pos => {\n const parentDetailsAtNewPos = getParentDetailsElementAtPos(dom, pos);\n if (isInDetailsElement(dom, pos) && !equals(parentDetailsAtCaret, parentDetailsAtNewPos)) {\n if (!forward) {\n moveCaretToDetailsPos(editor, pos, false);\n }\n if (parentBlock && inEmptyParentBlock) {\n if (forward && isFirstBlock) {\n return true;\n } else if (!forward && isLastBlock) {\n return true;\n }\n moveCaretToDetailsPos(editor, pos, forward);\n editor.dom.remove(parentBlock);\n }\n return true;\n } else {\n return false;\n }\n });\n } else {\n return false;\n }\n };\n const shouldPreventDeleteSummaryAction = (editor, detailElements, forward, granularity) => {\n const selection = editor.selection;\n const rng = selection.getRng();\n const caretPos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (granularity === 'selection') {\n return isPartialDelete(rng, detailElements);\n } else if (forward) {\n return isCaretAtEndOfSummary(caretPos, detailElements) || isCaretInLastPositionInBody(root, caretPos, detailElements);\n } else {\n return isCaretAtStartOfSummary(caretPos, detailElements) || isCaretInFirstPositionInBody(caretPos, detailElements);\n }\n };\n const shouldPreventDeleteAction = (editor, forward, granularity) => getDetailsElements(editor.dom, editor.selection.getRng()).fold(() => shouldPreventDeleteIntoDetails(editor, forward, granularity), detailsElements => shouldPreventDeleteSummaryAction(editor, detailsElements, forward, granularity) || shouldPreventDeleteIntoDetails(editor, forward, granularity));\n const handleDeleteActionSafari = (editor, forward, granularity) => {\n const selection = editor.selection;\n const node = selection.getNode();\n const rng = selection.getRng();\n const caretPos = CaretPosition.fromRangeStart(rng);\n if (isSummary$1(node)) {\n if (granularity === 'selection' && isEntireNodeSelected(rng, node) || willDeleteLastPositionInElement(forward, caretPos, node)) {\n emptyNodeContents(node);\n } else {\n editor.undoManager.transact(() => {\n const sel = selection.getSel();\n let {anchorNode, anchorOffset, focusNode, focusOffset} = sel !== null && sel !== void 0 ? sel : {};\n const applySelection = () => {\n if (isNonNullable(anchorNode) && isNonNullable(anchorOffset) && isNonNullable(focusNode) && isNonNullable(focusOffset)) {\n sel === null || sel === void 0 ? void 0 : sel.setBaseAndExtent(anchorNode, anchorOffset, focusNode, focusOffset);\n }\n };\n const updateSelection = () => {\n anchorNode = sel === null || sel === void 0 ? void 0 : sel.anchorNode;\n anchorOffset = sel === null || sel === void 0 ? void 0 : sel.anchorOffset;\n focusNode = sel === null || sel === void 0 ? void 0 : sel.focusNode;\n focusOffset = sel === null || sel === void 0 ? void 0 : sel.focusOffset;\n };\n const appendAllChildNodes = (from, to) => {\n each$e(from.childNodes, child => {\n if (isNode(child)) {\n to.appendChild(child);\n }\n });\n };\n const container = editor.dom.create('span', { 'data-mce-bogus': '1' });\n appendAllChildNodes(node, container);\n node.appendChild(container);\n applySelection();\n if (granularity === 'word' || granularity === 'line') {\n sel === null || sel === void 0 ? void 0 : sel.modify('extend', forward ? 'right' : 'left', granularity);\n }\n if (!selection.isCollapsed() && isEntireNodeSelected(selection.getRng(), container)) {\n emptyNodeContents(node);\n } else {\n editor.execCommand(forward ? 'ForwardDelete' : 'Delete');\n updateSelection();\n appendAllChildNodes(container, node);\n applySelection();\n }\n editor.dom.remove(container);\n });\n }\n return true;\n } else {\n return false;\n }\n };\n const backspaceDelete = (editor, forward, granularity) => shouldPreventDeleteAction(editor, forward, granularity) || isSafari && handleDeleteActionSafari(editor, forward, granularity) ? Optional.some(noop) : Optional.none();\n\n const createAndFireInputEvent = eventType => (editor, inputType, specifics = {}) => {\n const target = editor.getBody();\n const overrides = {\n bubbles: true,\n composed: true,\n data: null,\n isComposing: false,\n detail: 0,\n view: null,\n target,\n currentTarget: target,\n eventPhase: Event.AT_TARGET,\n originalTarget: target,\n explicitOriginalTarget: target,\n isTrusted: false,\n srcElement: target,\n cancelable: false,\n preventDefault: noop,\n inputType\n };\n const input = clone$3(new InputEvent(eventType));\n return editor.dispatch(eventType, {\n ...input,\n ...overrides,\n ...specifics\n });\n };\n const fireInputEvent = createAndFireInputEvent('input');\n const fireBeforeInputEvent = createAndFireInputEvent('beforeinput');\n\n const platform$2 = detect$1();\n const os = platform$2.os;\n const isMacOSOriOS = os.isMacOS() || os.isiOS();\n const browser = platform$2.browser;\n const isFirefox = browser.isFirefox();\n const executeKeydownOverride$3 = (editor, caret, evt) => {\n const inputType = evt.keyCode === VK.BACKSPACE ? 'deleteContentBackward' : 'deleteContentForward';\n const isCollapsed = editor.selection.isCollapsed();\n const unmodifiedGranularity = isCollapsed ? 'character' : 'selection';\n const getModifiedGranularity = isWord => {\n if (isCollapsed) {\n return isWord ? 'word' : 'line';\n } else {\n return 'selection';\n }\n };\n executeWithDelayedAction([\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$1, editor)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$7, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$7, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$8, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$8, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$4, editor, caret, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$4, editor, caret, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$b, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$b, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete, editor, false, unmodifiedGranularity)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete, editor, true, unmodifiedGranularity)\n },\n ...isMacOSOriOS ? [\n {\n keyCode: VK.BACKSPACE,\n altKey: true,\n action: action(backspaceDelete, editor, false, getModifiedGranularity(true))\n },\n {\n keyCode: VK.DELETE,\n altKey: true,\n action: action(backspaceDelete, editor, true, getModifiedGranularity(true))\n },\n {\n keyCode: VK.BACKSPACE,\n metaKey: true,\n action: action(backspaceDelete, editor, false, getModifiedGranularity(false))\n }\n ] : [\n {\n keyCode: VK.BACKSPACE,\n ctrlKey: true,\n action: action(backspaceDelete, editor, false, getModifiedGranularity(true))\n },\n {\n keyCode: VK.DELETE,\n ctrlKey: true,\n action: action(backspaceDelete, editor, true, getModifiedGranularity(true))\n }\n ],\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$5, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$5, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$2, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$2, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$9, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$9, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$a, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$a, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$3, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$3, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$6, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$6, editor, true)\n }\n ], evt).filter(_ => editor.selection.isEditable()).each(applyAction => {\n evt.preventDefault();\n const beforeInput = fireBeforeInputEvent(editor, inputType);\n if (!beforeInput.isDefaultPrevented()) {\n applyAction();\n fireInputEvent(editor, inputType);\n }\n });\n };\n const executeKeyupOverride = (editor, evt, isBackspaceKeydown) => execute([\n {\n keyCode: VK.BACKSPACE,\n action: action(paddEmptyElement, editor)\n },\n {\n keyCode: VK.DELETE,\n action: action(paddEmptyElement, editor)\n },\n ...isMacOSOriOS ? [\n {\n keyCode: VK.BACKSPACE,\n altKey: true,\n action: action(refreshCaret, editor)\n },\n {\n keyCode: VK.DELETE,\n altKey: true,\n action: action(refreshCaret, editor)\n },\n ...isBackspaceKeydown ? [{\n keyCode: isFirefox ? 224 : 91,\n action: action(refreshCaret, editor)\n }] : []\n ] : [\n {\n keyCode: VK.BACKSPACE,\n ctrlKey: true,\n action: action(refreshCaret, editor)\n },\n {\n keyCode: VK.DELETE,\n ctrlKey: true,\n action: action(refreshCaret, editor)\n }\n ]\n ], evt);\n const setup$j = (editor, caret) => {\n let isBackspaceKeydown = false;\n editor.on('keydown', evt => {\n isBackspaceKeydown = evt.keyCode === VK.BACKSPACE;\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$3(editor, caret, evt);\n }\n });\n editor.on('keyup', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeyupOverride(editor, evt, isBackspaceKeydown);\n }\n isBackspaceKeydown = false;\n });\n };\n\n const firstNonWhiteSpaceNodeSibling = node => {\n while (node) {\n if (isElement$6(node) || isText$b(node) && node.data && /[\\r\\n\\s]/.test(node.data)) {\n return node;\n }\n node = node.nextSibling;\n }\n return null;\n };\n const moveToCaretPosition = (editor, root) => {\n const dom = editor.dom;\n const moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements();\n if (!root) {\n return;\n }\n if (/^(LI|DT|DD)$/.test(root.nodeName)) {\n const firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\n if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\n root.insertBefore(dom.doc.createTextNode(nbsp), root.firstChild);\n }\n }\n const rng = dom.createRng();\n root.normalize();\n if (root.hasChildNodes()) {\n const walker = new DomTreeWalker(root, root);\n let lastNode = root;\n let node;\n while (node = walker.current()) {\n if (isText$b(node)) {\n rng.setStart(node, 0);\n rng.setEnd(node, 0);\n break;\n }\n if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\n rng.setStartBefore(node);\n rng.setEndBefore(node);\n break;\n }\n lastNode = node;\n node = walker.next();\n }\n if (!node) {\n rng.setStart(lastNode, 0);\n rng.setEnd(lastNode, 0);\n }\n } else {\n if (isBr$6(root)) {\n if (root.nextSibling && dom.isBlock(root.nextSibling)) {\n rng.setStartBefore(root);\n rng.setEndBefore(root);\n } else {\n rng.setStartAfter(root);\n rng.setEndAfter(root);\n }\n } else {\n rng.setStart(root, 0);\n rng.setEnd(root, 0);\n }\n }\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, rng);\n };\n const getEditableRoot = (dom, node) => {\n const root = dom.getRoot();\n let editableRoot;\n let parent = node;\n while (parent !== root && parent && dom.getContentEditable(parent) !== 'false') {\n if (dom.getContentEditable(parent) === 'true') {\n editableRoot = parent;\n break;\n }\n parent = parent.parentNode;\n }\n return parent !== root ? editableRoot : root;\n };\n const getParentBlock$1 = editor => {\n return Optional.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));\n };\n const getParentBlockName = editor => {\n return getParentBlock$1(editor).fold(constant(''), parentBlock => {\n return parentBlock.nodeName.toUpperCase();\n });\n };\n const isListItemParentBlock = editor => {\n return getParentBlock$1(editor).filter(elm => {\n return isListItem$1(SugarElement.fromDom(elm));\n }).isSome();\n };\n const emptyBlock = elm => {\n elm.innerHTML = '
    ';\n };\n const applyAttributes = (editor, node, forcedRootBlockAttrs) => {\n const dom = editor.dom;\n Optional.from(forcedRootBlockAttrs.style).map(dom.parseStyle).each(attrStyles => {\n const currentStyles = getAllRaw(SugarElement.fromDom(node));\n const newStyles = {\n ...currentStyles,\n ...attrStyles\n };\n dom.setStyles(node, newStyles);\n });\n const attrClassesOpt = Optional.from(forcedRootBlockAttrs.class).map(attrClasses => attrClasses.split(/\\s+/));\n const currentClassesOpt = Optional.from(node.className).map(currentClasses => filter$5(currentClasses.split(/\\s+/), clazz => clazz !== ''));\n lift2(attrClassesOpt, currentClassesOpt, (attrClasses, currentClasses) => {\n const filteredClasses = filter$5(currentClasses, clazz => !contains$2(attrClasses, clazz));\n const newClasses = [\n ...attrClasses,\n ...filteredClasses\n ];\n dom.setAttrib(node, 'class', newClasses.join(' '));\n });\n const appliedAttrs = [\n 'style',\n 'class'\n ];\n const remainingAttrs = filter$4(forcedRootBlockAttrs, (_, attrs) => !contains$2(appliedAttrs, attrs));\n dom.setAttribs(node, remainingAttrs);\n };\n const setForcedBlockAttrs = (editor, node) => {\n const forcedRootBlockName = getForcedRootBlock(editor);\n if (forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\n const forcedRootBlockAttrs = getForcedRootBlockAttrs(editor);\n applyAttributes(editor, node, forcedRootBlockAttrs);\n }\n };\n const createNewBlock = (editor, container, parentBlock, editableRoot, keepStyles = true, name, styles) => {\n const dom = editor.dom;\n const schema = editor.schema;\n const newBlockName = getForcedRootBlock(editor);\n const parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n let node = container;\n const textInlineElements = schema.getTextInlineElements();\n let block;\n if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {\n block = dom.create(name || newBlockName, styles || {});\n } else {\n block = parentBlock.cloneNode(false);\n }\n let caretNode = block;\n if (!keepStyles) {\n dom.setAttrib(block, 'style', null);\n dom.setAttrib(block, 'class', null);\n } else {\n do {\n if (textInlineElements[node.nodeName]) {\n if (isCaretNode(node) || isBookmarkNode$1(node)) {\n continue;\n }\n const clonedNode = node.cloneNode(false);\n dom.setAttrib(clonedNode, 'id', '');\n if (block.hasChildNodes()) {\n clonedNode.appendChild(block.firstChild);\n block.appendChild(clonedNode);\n } else {\n caretNode = clonedNode;\n block.appendChild(clonedNode);\n }\n }\n } while ((node = node.parentNode) && node !== editableRoot);\n }\n setForcedBlockAttrs(editor, block);\n emptyBlock(caretNode);\n return block;\n };\n\n const getDetailsRoot = (editor, element) => editor.dom.getParent(element, isDetails);\n const isAtDetailsEdge = (root, element, isTextBlock) => {\n let node = element;\n while (node && node !== root && isNull(node.nextSibling)) {\n const parent = node.parentElement;\n if (!parent || !isTextBlock(parent)) {\n return isDetails(parent);\n }\n node = parent;\n }\n return false;\n };\n const isLastEmptyBlockInDetails = (editor, shiftKey, element) => !shiftKey && element.nodeName.toLowerCase() === getForcedRootBlock(editor) && editor.dom.isEmpty(element) && isAtDetailsEdge(editor.getBody(), element, el => has$2(editor.schema.getTextBlockElements(), el.nodeName.toLowerCase()));\n const insertNewLine = (editor, createNewBlock, parentBlock) => {\n var _a, _b, _c;\n const newBlock = createNewBlock(getForcedRootBlock(editor));\n const root = getDetailsRoot(editor, parentBlock);\n if (!root) {\n return;\n }\n editor.dom.insertAfter(newBlock, root);\n moveToCaretPosition(editor, newBlock);\n if (((_c = (_b = (_a = parentBlock.parentElement) === null || _a === void 0 ? void 0 : _a.childNodes) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 1) {\n editor.dom.remove(parentBlock);\n }\n };\n\n const hasFirstChild = (elm, name) => {\n return elm.firstChild && elm.firstChild.nodeName === name;\n };\n const isFirstChild = elm => {\n var _a;\n return ((_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === elm;\n };\n const hasParent = (elm, parentName) => {\n const parentNode = elm === null || elm === void 0 ? void 0 : elm.parentNode;\n return isNonNullable(parentNode) && parentNode.nodeName === parentName;\n };\n const isListBlock = elm => {\n return isNonNullable(elm) && /^(OL|UL|LI)$/.test(elm.nodeName);\n };\n const isListItem = elm => {\n return isNonNullable(elm) && /^(LI|DT|DD)$/.test(elm.nodeName);\n };\n const isNestedList = elm => {\n return isListBlock(elm) && isListBlock(elm.parentNode);\n };\n const getContainerBlock = containerBlock => {\n const containerBlockParent = containerBlock.parentNode;\n return isListItem(containerBlockParent) ? containerBlockParent : containerBlock;\n };\n const isFirstOrLastLi = (containerBlock, parentBlock, first) => {\n let node = containerBlock[first ? 'firstChild' : 'lastChild'];\n while (node) {\n if (isElement$6(node)) {\n break;\n }\n node = node[first ? 'nextSibling' : 'previousSibling'];\n }\n return node === parentBlock;\n };\n const getStyles = elm => foldl(mapToArray(getAllRaw(SugarElement.fromDom(elm)), (style, styleName) => `${ styleName }: ${ style };`), (acc, s) => acc + s, '');\n const insert$4 = (editor, createNewBlock, containerBlock, parentBlock, newBlockName) => {\n const dom = editor.dom;\n const rng = editor.selection.getRng();\n const containerParent = containerBlock.parentNode;\n if (containerBlock === editor.getBody() || !containerParent) {\n return;\n }\n if (isNestedList(containerBlock)) {\n newBlockName = 'LI';\n }\n const parentBlockStyles = isListItem(parentBlock) ? getStyles(parentBlock) : undefined;\n let newBlock = isListItem(parentBlock) && parentBlockStyles ? createNewBlock(newBlockName, { style: getStyles(parentBlock) }) : createNewBlock(newBlockName);\n if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {\n if (hasParent(containerBlock, 'LI')) {\n const containerBlockParent = getContainerBlock(containerBlock);\n dom.insertAfter(newBlock, containerBlockParent);\n if (isFirstChild(containerBlock)) {\n dom.remove(containerBlockParent);\n } else {\n dom.remove(containerBlock);\n }\n } else {\n dom.replace(newBlock, containerBlock);\n }\n } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) {\n if (hasParent(containerBlock, 'LI')) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n newBlock.appendChild(dom.doc.createTextNode(' '));\n newBlock.appendChild(containerBlock);\n } else {\n containerParent.insertBefore(newBlock, containerBlock);\n }\n dom.remove(parentBlock);\n } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n dom.remove(parentBlock);\n } else {\n containerBlock = getContainerBlock(containerBlock);\n const tmpRng = rng.cloneRange();\n tmpRng.setStartAfter(parentBlock);\n tmpRng.setEndAfter(containerBlock);\n const fragment = tmpRng.extractContents();\n if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) {\n const previousChildren = filter$5(map$3(newBlock.children, SugarElement.fromDom), not(isTag('br')));\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, containerBlock);\n each$e(previousChildren, child => prepend(SugarElement.fromDom(newBlock), child));\n if (parentBlockStyles) {\n newBlock.setAttribute('style', parentBlockStyles);\n }\n } else {\n dom.insertAfter(fragment, containerBlock);\n dom.insertAfter(newBlock, containerBlock);\n }\n dom.remove(parentBlock);\n }\n moveToCaretPosition(editor, newBlock);\n };\n\n const trimZwsp = fragment => {\n each$e(descendants$1(SugarElement.fromDom(fragment), isText$c), text => {\n const rawNode = text.dom;\n rawNode.nodeValue = trim$2(rawNode.data);\n });\n };\n const isWithinNonEditableList = (editor, node) => {\n const parentList = editor.dom.getParent(node, 'ol,ul,dl');\n return parentList !== null && editor.dom.getContentEditableParent(parentList) === 'false';\n };\n const isEmptyAnchor = (dom, elm) => {\n return elm && elm.nodeName === 'A' && dom.isEmpty(elm);\n };\n const containerAndPreviousSiblingName = (container, nodeName) => {\n return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName;\n };\n const containerAndNextSiblingName = (container, nodeName) => {\n return container.nodeName === nodeName || container.nextSibling && container.nextSibling.nodeName === nodeName;\n };\n const canSplitBlock = (dom, node) => {\n return isNonNullable(node) && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.isEditable(node.parentNode) && dom.getContentEditable(node) !== 'false';\n };\n const trimInlineElementsOnLeftSideOfBlock = (dom, nonEmptyElementsMap, block) => {\n var _a;\n const firstChilds = [];\n if (!block) {\n return;\n }\n let currentNode = block;\n while (currentNode = currentNode.firstChild) {\n if (dom.isBlock(currentNode)) {\n return;\n }\n if (isElement$6(currentNode) && !nonEmptyElementsMap[currentNode.nodeName.toLowerCase()]) {\n firstChilds.push(currentNode);\n }\n }\n let i = firstChilds.length;\n while (i--) {\n currentNode = firstChilds[i];\n if (!currentNode.hasChildNodes() || currentNode.firstChild === currentNode.lastChild && ((_a = currentNode.firstChild) === null || _a === void 0 ? void 0 : _a.nodeValue) === '') {\n dom.remove(currentNode);\n } else {\n if (isEmptyAnchor(dom, currentNode)) {\n dom.remove(currentNode);\n }\n }\n }\n };\n const normalizeZwspOffset = (start, container, offset) => {\n if (!isText$b(container)) {\n return offset;\n } else if (start) {\n return offset === 1 && container.data.charAt(offset - 1) === ZWSP$1 ? 0 : offset;\n } else {\n return offset === container.data.length - 1 && container.data.charAt(offset) === ZWSP$1 ? container.data.length : offset;\n }\n };\n const includeZwspInRange = rng => {\n const newRng = rng.cloneRange();\n newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset));\n newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset));\n return newRng;\n };\n const trimLeadingLineBreaks = node => {\n let currentNode = node;\n do {\n if (isText$b(currentNode)) {\n currentNode.data = currentNode.data.replace(/^[\\r\\n]+/, '');\n }\n currentNode = currentNode.firstChild;\n } while (currentNode);\n };\n const wrapSelfAndSiblingsInDefaultBlock = (editor, newBlockName, rng, container, offset) => {\n var _a, _b;\n const dom = editor.dom;\n const editableRoot = (_a = getEditableRoot(dom, container)) !== null && _a !== void 0 ? _a : dom.getRoot();\n let parentBlock = dom.getParent(container, dom.isBlock);\n if (!parentBlock || !canSplitBlock(dom, parentBlock)) {\n parentBlock = parentBlock || editableRoot;\n if (!parentBlock.hasChildNodes()) {\n const newBlock = dom.create(newBlockName);\n setForcedBlockAttrs(editor, newBlock);\n parentBlock.appendChild(newBlock);\n rng.setStart(newBlock, 0);\n rng.setEnd(newBlock, 0);\n return newBlock;\n }\n let node = container;\n while (node && node.parentNode !== parentBlock) {\n node = node.parentNode;\n }\n let startNode;\n while (node && !dom.isBlock(node)) {\n startNode = node;\n node = node.previousSibling;\n }\n const startNodeName = (_b = startNode === null || startNode === void 0 ? void 0 : startNode.parentElement) === null || _b === void 0 ? void 0 : _b.nodeName;\n if (startNode && startNodeName && editor.schema.isValidChild(startNodeName, newBlockName.toLowerCase())) {\n const startNodeParent = startNode.parentNode;\n const newBlock = dom.create(newBlockName);\n setForcedBlockAttrs(editor, newBlock);\n startNodeParent.insertBefore(newBlock, startNode);\n node = startNode;\n while (node && !dom.isBlock(node)) {\n const next = node.nextSibling;\n newBlock.appendChild(node);\n node = next;\n }\n rng.setStart(container, offset);\n rng.setEnd(container, offset);\n }\n }\n return container;\n };\n const addBrToBlockIfNeeded = (dom, block) => {\n block.normalize();\n const lastChild = block.lastChild;\n if (!lastChild || isElement$6(lastChild) && /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) {\n dom.add(block, 'br');\n }\n };\n const shouldEndContainer = (editor, container) => {\n const optionValue = shouldEndContainerOnEmptyBlock(editor);\n if (isNullable(container)) {\n return false;\n } else if (isString(optionValue)) {\n return contains$2(Tools.explode(optionValue), container.nodeName.toLowerCase());\n } else {\n return optionValue;\n }\n };\n const insert$3 = (editor, evt) => {\n let container;\n let offset;\n let parentBlockName;\n let containerBlock;\n let isAfterLastNodeInContainer = false;\n const dom = editor.dom;\n const schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();\n const rng = editor.selection.getRng();\n const newBlockName = getForcedRootBlock(editor);\n const start = SugarElement.fromDom(rng.startContainer);\n const child = child$1(start, rng.startOffset);\n const isCef = child.exists(element => isHTMLElement$1(element) && !isEditable$2(element));\n const collapsedAndCef = rng.collapsed && isCef;\n const createNewBlock$1 = (name, styles) => {\n return createNewBlock(editor, container, parentBlock, editableRoot, shouldKeepStyles(editor), name, styles);\n };\n const isCaretAtStartOrEndOfBlock = start => {\n const normalizedOffset = normalizeZwspOffset(start, container, offset);\n if (isText$b(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.data.length)) {\n return false;\n }\n if ((container.parentNode === parentBlock || container === parentBlock) && isAfterLastNodeInContainer && !start) {\n return true;\n }\n if (start && isElement$6(container) && container === parentBlock.firstChild) {\n return true;\n }\n if (containerAndPreviousSiblingName(container, 'TABLE') || containerAndPreviousSiblingName(container, 'HR')) {\n if (containerAndNextSiblingName(container, 'BR')) {\n return !start;\n }\n return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;\n }\n const walker = new DomTreeWalker(container, parentBlock);\n if (isText$b(container)) {\n if (start && normalizedOffset === 0) {\n walker.prev();\n } else if (!start && normalizedOffset === container.data.length) {\n walker.next();\n }\n }\n let node;\n while (node = walker.current()) {\n if (isElement$6(node)) {\n if (!node.getAttribute('data-mce-bogus')) {\n const name = node.nodeName.toLowerCase();\n if (nonEmptyElementsMap[name] && name !== 'br') {\n return false;\n }\n }\n } else if (isText$b(node) && !isWhitespaceText(node.data)) {\n return false;\n }\n if (start) {\n walker.prev();\n } else {\n walker.next();\n }\n }\n return true;\n };\n const insertNewBlockAfter = () => {\n let block;\n if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') {\n block = createNewBlock$1(newBlockName);\n } else {\n block = createNewBlock$1();\n }\n if (shouldEndContainer(editor, containerBlock) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock, undefined, { includeZwsp: true })) {\n block = dom.split(containerBlock, parentBlock);\n } else {\n dom.insertAfter(block, parentBlock);\n }\n moveToCaretPosition(editor, block);\n return block;\n };\n normalize$2(dom, rng).each(normRng => {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n container = rng.startContainer;\n offset = rng.startOffset;\n const shiftKey = !!(evt && evt.shiftKey);\n const ctrlKey = !!(evt && evt.ctrlKey);\n if (isElement$6(container) && container.hasChildNodes() && !collapsedAndCef) {\n isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && isText$b(container)) {\n offset = container.data.length;\n } else {\n offset = 0;\n }\n }\n const editableRoot = getEditableRoot(dom, container);\n if (!editableRoot || isWithinNonEditableList(editor, container)) {\n return;\n }\n if (!shiftKey) {\n container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset);\n }\n let parentBlock = dom.getParent(container, dom.isBlock) || dom.getRoot();\n containerBlock = isNonNullable(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.parentNode) ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n const containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n if (containerBlockName === 'LI' && !ctrlKey) {\n const liBlock = containerBlock;\n parentBlock = liBlock;\n containerBlock = liBlock.parentNode;\n parentBlockName = containerBlockName;\n }\n if (isElement$6(containerBlock) && isLastEmptyBlockInDetails(editor, shiftKey, parentBlock)) {\n return insertNewLine(editor, createNewBlock$1, parentBlock);\n }\n if (/^(LI|DT|DD)$/.test(parentBlockName) && isElement$6(containerBlock)) {\n if (dom.isEmpty(parentBlock)) {\n insert$4(editor, createNewBlock$1, containerBlock, parentBlock, newBlockName);\n return;\n }\n }\n if (!collapsedAndCef && (parentBlock === editor.getBody() || !canSplitBlock(dom, parentBlock))) {\n return;\n }\n const parentBlockParent = parentBlock.parentNode;\n let newBlock;\n if (collapsedAndCef) {\n newBlock = createNewBlock$1(newBlockName);\n child.fold(() => {\n append$1(start, SugarElement.fromDom(newBlock));\n }, child => {\n before$3(child, SugarElement.fromDom(newBlock));\n });\n editor.selection.setCursorLocation(newBlock, 0);\n } else if (isCaretContainerBlock$1(parentBlock)) {\n newBlock = showCaretContainerBlock(parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n setForcedBlockAttrs(editor, newBlock);\n moveToCaretPosition(editor, newBlock);\n } else if (isCaretAtStartOrEndOfBlock(false)) {\n newBlock = insertNewBlockAfter();\n } else if (isCaretAtStartOrEndOfBlock(true) && parentBlockParent) {\n const caretPos = CaretPosition.fromRangeStart(rng);\n const afterTable = isAfterTable(caretPos);\n const parentBlockSugar = SugarElement.fromDom(parentBlock);\n const afterBr = isAfterBr(parentBlockSugar, caretPos, editor.schema);\n const prevBrOpt = afterBr ? findPreviousBr(parentBlockSugar, caretPos, editor.schema).bind(pos => Optional.from(pos.getNode())) : Optional.none();\n newBlock = parentBlockParent.insertBefore(createNewBlock$1(), parentBlock);\n const root = containerAndPreviousSiblingName(parentBlock, 'HR') || afterTable ? newBlock : prevBrOpt.getOr(parentBlock);\n moveToCaretPosition(editor, root);\n } else {\n const tmpRng = includeZwspInRange(rng).cloneRange();\n tmpRng.setEndAfter(parentBlock);\n const fragment = tmpRng.extractContents();\n trimZwsp(fragment);\n trimLeadingLineBreaks(fragment);\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, parentBlock);\n trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock);\n addBrToBlockIfNeeded(dom, parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n newBlock.normalize();\n if (dom.isEmpty(newBlock)) {\n dom.remove(newBlock);\n insertNewBlockAfter();\n } else {\n setForcedBlockAttrs(editor, newBlock);\n moveToCaretPosition(editor, newBlock);\n }\n }\n dom.setAttrib(newBlock, 'id', '');\n editor.dispatch('NewBlock', { newBlock });\n };\n const fakeEventName$1 = 'insertParagraph';\n const blockbreak = {\n insert: insert$3,\n fakeEventName: fakeEventName$1\n };\n\n const hasRightSideContent = (schema, container, parentBlock) => {\n const walker = new DomTreeWalker(container, parentBlock);\n let node;\n const nonEmptyElementsMap = schema.getNonEmptyElements();\n while (node = walker.next()) {\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || isText$b(node) && node.length > 0) {\n return true;\n }\n }\n return false;\n };\n const moveSelectionToBr = (editor, brElm, extraBr) => {\n const rng = editor.dom.createRng();\n if (!extraBr) {\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n } else {\n rng.setStartBefore(brElm);\n rng.setEndBefore(brElm);\n }\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, rng);\n };\n const insertBrAtCaret = (editor, evt) => {\n const selection = editor.selection;\n const dom = editor.dom;\n const rng = selection.getRng();\n let brElm;\n let extraBr = false;\n normalize$2(dom, rng).each(normRng => {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n let offset = rng.startOffset;\n let container = rng.startContainer;\n if (isElement$6(container) && container.hasChildNodes()) {\n const isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && isText$b(container)) {\n offset = container.data.length;\n } else {\n offset = 0;\n }\n }\n let parentBlock = dom.getParent(container, dom.isBlock);\n const containerBlock = parentBlock && parentBlock.parentNode ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n const containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n const isControlKey = !!(evt && evt.ctrlKey);\n if (containerBlockName === 'LI' && !isControlKey) {\n parentBlock = containerBlock;\n }\n if (isText$b(container) && offset >= container.data.length) {\n if (!hasRightSideContent(editor.schema, container, parentBlock || dom.getRoot())) {\n brElm = dom.create('br');\n rng.insertNode(brElm);\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n extraBr = true;\n }\n }\n brElm = dom.create('br');\n rangeInsertNode(dom, rng, brElm);\n moveSelectionToBr(editor, brElm, extraBr);\n editor.undoManager.add();\n };\n const insertBrBefore = (editor, inline) => {\n const br = SugarElement.fromTag('br');\n before$3(SugarElement.fromDom(inline), br);\n editor.undoManager.add();\n };\n const insertBrAfter = (editor, inline) => {\n if (!hasBrAfter(editor.getBody(), inline)) {\n after$4(SugarElement.fromDom(inline), SugarElement.fromTag('br'));\n }\n const br = SugarElement.fromTag('br');\n after$4(SugarElement.fromDom(inline), br);\n moveSelectionToBr(editor, br.dom, false);\n editor.undoManager.add();\n };\n const isBeforeBr = pos => {\n return isBr$6(pos.getNode());\n };\n const hasBrAfter = (rootNode, startNode) => {\n if (isBeforeBr(CaretPosition.after(startNode))) {\n return true;\n } else {\n return nextPosition(rootNode, CaretPosition.after(startNode)).map(pos => {\n return isBr$6(pos.getNode());\n }).getOr(false);\n }\n };\n const isAnchorLink = elm => {\n return elm && elm.nodeName === 'A' && 'href' in elm;\n };\n const isInsideAnchor = location => {\n return location.fold(never, isAnchorLink, isAnchorLink, never);\n };\n const readInlineAnchorLocation = editor => {\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const position = CaretPosition.fromRangeStart(editor.selection.getRng());\n return readLocation(isInlineTarget$1, editor.getBody(), position).filter(isInsideAnchor);\n };\n const insertBrOutsideAnchor = (editor, location) => {\n location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);\n };\n const insert$2 = (editor, evt) => {\n const anchorLocation = readInlineAnchorLocation(editor);\n if (anchorLocation.isSome()) {\n anchorLocation.each(curry(insertBrOutsideAnchor, editor));\n } else {\n insertBrAtCaret(editor, evt);\n }\n };\n const fakeEventName = 'insertLineBreak';\n const linebreak = {\n insert: insert$2,\n fakeEventName\n };\n\n const matchesSelector = (editor, selector) => {\n return getParentBlock$1(editor).filter(parentBlock => {\n return selector.length > 0 && is$1(SugarElement.fromDom(parentBlock), selector);\n }).isSome();\n };\n const shouldInsertBr = editor => {\n return matchesSelector(editor, getBrNewLineSelector(editor));\n };\n const shouldBlockNewLine$1 = editor => {\n return matchesSelector(editor, getNoNewLineSelector(editor));\n };\n\n const newLineAction = Adt.generate([\n { br: [] },\n { block: [] },\n { none: [] }\n ]);\n const shouldBlockNewLine = (editor, _shiftKey) => {\n return shouldBlockNewLine$1(editor);\n };\n const inListBlock = requiredState => {\n return (editor, _shiftKey) => {\n return isListItemParentBlock(editor) === requiredState;\n };\n };\n const inBlock = (blockName, requiredState) => (editor, _shiftKey) => {\n const state = getParentBlockName(editor) === blockName.toUpperCase();\n return state === requiredState;\n };\n const inCefBlock = editor => {\n const editableRoot = getEditableRoot(editor.dom, editor.selection.getStart());\n return isNullable(editableRoot);\n };\n const inPreBlock = requiredState => inBlock('pre', requiredState);\n const inSummaryBlock = () => inBlock('summary', true);\n const shouldPutBrInPre = requiredState => {\n return (editor, _shiftKey) => {\n return shouldPutBrInPre$1(editor) === requiredState;\n };\n };\n const inBrContext = (editor, _shiftKey) => {\n return shouldInsertBr(editor);\n };\n const hasShiftKey = (_editor, shiftKey) => {\n return shiftKey;\n };\n const canInsertIntoEditableRoot = editor => {\n const forcedRootBlock = getForcedRootBlock(editor);\n const rootEditable = getEditableRoot(editor.dom, editor.selection.getStart());\n return isNonNullable(rootEditable) && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock);\n };\n const isInRootWithEmptyOrCEF = editor => {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const child = child$1(start, rng.startOffset);\n const isCefOpt = child.map(element => isHTMLElement$1(element) && !isEditable$2(element));\n return rng.collapsed && isCefOpt.getOr(true);\n };\n const match = (predicates, action) => {\n return (editor, shiftKey) => {\n const isMatch = foldl(predicates, (res, p) => {\n return res && p(editor, shiftKey);\n }, true);\n return isMatch ? Optional.some(action) : Optional.none();\n };\n };\n const getAction = (editor, evt) => {\n return evaluateUntil([\n match([shouldBlockNewLine], newLineAction.none()),\n match([\n inPreBlock(true),\n inCefBlock\n ], newLineAction.none()),\n match([inSummaryBlock()], newLineAction.br()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(false),\n hasShiftKey\n ], newLineAction.br()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(false)\n ], newLineAction.block()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(true),\n hasShiftKey\n ], newLineAction.block()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(true)\n ], newLineAction.br()),\n match([\n inListBlock(true),\n hasShiftKey\n ], newLineAction.br()),\n match([inListBlock(true)], newLineAction.block()),\n match([inBrContext], newLineAction.br()),\n match([hasShiftKey], newLineAction.br()),\n match([canInsertIntoEditableRoot], newLineAction.block()),\n match([isInRootWithEmptyOrCEF], newLineAction.block())\n ], [\n editor,\n !!(evt && evt.shiftKey)\n ]).getOr(newLineAction.none());\n };\n\n const insertBreak = (breakType, editor, evt) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n if (!editor.selection.isCollapsed()) {\n execEditorDeleteCommand(editor);\n }\n if (isNonNullable(evt)) {\n const event = fireBeforeInputEvent(editor, breakType.fakeEventName);\n if (event.isDefaultPrevented()) {\n return;\n }\n }\n breakType.insert(editor, evt);\n if (isNonNullable(evt)) {\n fireInputEvent(editor, breakType.fakeEventName);\n }\n };\n const insert$1 = (editor, evt) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n const br = () => insertBreak(linebreak, editor, evt);\n const block = () => insertBreak(blockbreak, editor, evt);\n const logicalAction = getAction(editor, evt);\n switch (getNewlineBehavior(editor)) {\n case 'linebreak':\n logicalAction.fold(br, br, noop);\n break;\n case 'block':\n logicalAction.fold(block, block, noop);\n break;\n case 'invert':\n logicalAction.fold(block, br, noop);\n break;\n default:\n logicalAction.fold(br, block, noop);\n break;\n }\n };\n\n const platform$1 = detect$1();\n const isIOSSafari = platform$1.os.isiOS() && platform$1.browser.isSafari();\n const handleEnterKeyEvent = (editor, event) => {\n if (event.isDefaultPrevented()) {\n return;\n }\n event.preventDefault();\n endTypingLevelIgnoreLocks(editor.undoManager);\n editor.undoManager.transact(() => {\n insert$1(editor, event);\n });\n };\n const isCaretAfterKoreanCharacter = rng => {\n if (!rng.collapsed) {\n return false;\n }\n const startContainer = rng.startContainer;\n if (isText$b(startContainer)) {\n const koreanCharRegex = /^[\\uAC00-\\uD7AF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uD7B0-\\uD7FF]$/;\n const char = startContainer.data.charAt(rng.startOffset - 1);\n return koreanCharRegex.test(char);\n } else {\n return false;\n }\n };\n const setup$i = editor => {\n let iOSSafariKeydownBookmark = Optional.none();\n const iOSSafariKeydownOverride = editor => {\n iOSSafariKeydownBookmark = Optional.some(editor.selection.getBookmark());\n editor.undoManager.add();\n };\n const iOSSafariKeyupOverride = (editor, event) => {\n editor.undoManager.undo();\n iOSSafariKeydownBookmark.fold(noop, b => editor.selection.moveToBookmark(b));\n handleEnterKeyEvent(editor, event);\n iOSSafariKeydownBookmark = Optional.none();\n };\n editor.on('keydown', event => {\n if (event.keyCode === VK.ENTER) {\n if (isIOSSafari && isCaretAfterKoreanCharacter(editor.selection.getRng())) {\n iOSSafariKeydownOverride(editor);\n } else {\n handleEnterKeyEvent(editor, event);\n }\n }\n });\n editor.on('keyup', event => {\n if (event.keyCode === VK.ENTER) {\n iOSSafariKeydownBookmark.each(() => iOSSafariKeyupOverride(editor, event));\n }\n });\n };\n\n const executeKeydownOverride$2 = (editor, caret, evt) => {\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n execute([\n {\n keyCode: VK.END,\n action: action(moveToLineEndPoint$1, editor, true)\n },\n {\n keyCode: VK.HOME,\n action: action(moveToLineEndPoint$1, editor, false)\n },\n ...!isMac ? [\n {\n keyCode: VK.HOME,\n action: action(selectToEndPoint, editor, false),\n ctrlKey: true,\n shiftKey: true\n },\n {\n keyCode: VK.END,\n action: action(selectToEndPoint, editor, true),\n ctrlKey: true,\n shiftKey: true\n }\n ] : [],\n {\n keyCode: VK.END,\n action: action(moveToLineEndPoint, editor, true)\n },\n {\n keyCode: VK.HOME,\n action: action(moveToLineEndPoint, editor, false)\n },\n {\n keyCode: VK.END,\n action: action(moveToLineEndPoint$2, editor, true, caret)\n },\n {\n keyCode: VK.HOME,\n action: action(moveToLineEndPoint$2, editor, false, caret)\n }\n ], evt).each(_ => {\n evt.preventDefault();\n });\n };\n const setup$h = (editor, caret) => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$2(editor, caret, evt);\n }\n });\n };\n\n const setup$g = editor => {\n editor.on('input', e => {\n if (!e.isComposing) {\n normalizeNbspsInEditor(editor);\n }\n });\n };\n\n const platform = detect$1();\n const executeKeyupAction = (editor, caret, evt) => {\n execute([\n {\n keyCode: VK.PAGE_UP,\n action: action(moveToLineEndPoint$2, editor, false, caret)\n },\n {\n keyCode: VK.PAGE_DOWN,\n action: action(moveToLineEndPoint$2, editor, true, caret)\n }\n ], evt);\n };\n const stopImmediatePropagation = e => e.stopImmediatePropagation();\n const isPageUpDown = evt => evt.keyCode === VK.PAGE_UP || evt.keyCode === VK.PAGE_DOWN;\n const setNodeChangeBlocker = (blocked, editor, block) => {\n if (block && !blocked.get()) {\n editor.on('NodeChange', stopImmediatePropagation, true);\n } else if (!block && blocked.get()) {\n editor.off('NodeChange', stopImmediatePropagation);\n }\n blocked.set(block);\n };\n const setup$f = (editor, caret) => {\n if (platform.os.isMacOS()) {\n return;\n }\n const blocked = Cell(false);\n editor.on('keydown', evt => {\n if (isPageUpDown(evt)) {\n setNodeChangeBlocker(blocked, editor, true);\n }\n });\n editor.on('keyup', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeyupAction(editor, caret, evt);\n }\n if (isPageUpDown(evt) && blocked.get()) {\n setNodeChangeBlocker(blocked, editor, false);\n editor.nodeChanged();\n }\n });\n };\n\n const setup$e = editor => {\n editor.on('beforeinput', e => {\n if (!editor.selection.isEditable() || exists(e.getTargetRanges(), rng => !isEditableRange(editor.dom, rng))) {\n e.preventDefault();\n }\n });\n };\n\n const insertTextAtPosition = (text, pos) => {\n const container = pos.container();\n const offset = pos.offset();\n if (isText$b(container)) {\n container.insertData(offset, text);\n return Optional.some(CaretPosition(container, offset + text.length));\n } else {\n return getElementFromPosition(pos).map(elm => {\n const textNode = SugarElement.fromText(text);\n if (pos.isAtEnd()) {\n after$4(elm, textNode);\n } else {\n before$3(elm, textNode);\n }\n return CaretPosition(textNode.dom, text.length);\n });\n }\n };\n const insertNbspAtPosition = curry(insertTextAtPosition, nbsp);\n const insertSpaceAtPosition = curry(insertTextAtPosition, ' ');\n\n const insertSpaceOrNbspAtPosition = (root, pos, schema) => needsToHaveNbsp(root, pos, schema) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n const locationToCaretPosition = root => location => location.fold(element => prevPosition(root.dom, CaretPosition.before(element)), element => firstPositionIn(element), element => lastPositionIn(element), element => nextPosition(root.dom, CaretPosition.after(element)));\n const insertInlineBoundarySpaceOrNbsp = (root, pos, schema) => checkPos => needsToHaveNbsp(root, checkPos, schema) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n const setSelection = editor => pos => {\n editor.selection.setRng(pos.toRange());\n editor.nodeChanged();\n };\n const isInsideSummary = (domUtils, node) => domUtils.isEditable(domUtils.getParent(node, 'summary'));\n const insertSpaceOrNbspAtSelection = editor => {\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n const root = SugarElement.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const caretPosition = CaretPosition.fromRangeStart(editor.selection.getRng());\n return readLocation(isInlineTarget$1, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).map(checkPos => () => insertInlineBoundarySpaceOrNbsp(root, pos, editor.schema)(checkPos).each(setSelection(editor)));\n } else {\n return Optional.none();\n }\n };\n const insertSpaceInSummaryAtSelectionOnFirefox = editor => {\n const insertSpaceThunk = () => {\n const root = SugarElement.fromDom(editor.getBody());\n if (!editor.selection.isCollapsed()) {\n editor.getDoc().execCommand('Delete');\n }\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n insertSpaceOrNbspAtPosition(root, pos, editor.schema).each(setSelection(editor));\n };\n return someIf(Env.browser.isFirefox() && editor.selection.isEditable() && isInsideSummary(editor.dom, editor.selection.getRng().startContainer), insertSpaceThunk);\n };\n\n const executeKeydownOverride$1 = (editor, evt) => {\n executeWithDelayedAction([\n {\n keyCode: VK.SPACEBAR,\n action: action(insertSpaceOrNbspAtSelection, editor)\n },\n {\n keyCode: VK.SPACEBAR,\n action: action(insertSpaceInSummaryAtSelectionOnFirefox, editor)\n }\n ], evt).each(applyAction => {\n evt.preventDefault();\n const event = fireBeforeInputEvent(editor, 'insertText', { data: ' ' });\n if (!event.isDefaultPrevented()) {\n applyAction();\n fireInputEvent(editor, 'insertText', { data: ' ' });\n }\n });\n };\n const setup$d = editor => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$1(editor, evt);\n }\n });\n };\n\n const tableTabNavigation = editor => {\n if (hasTableTabNavigation(editor)) {\n return [\n {\n keyCode: VK.TAB,\n action: action(handleTab, editor, true)\n },\n {\n keyCode: VK.TAB,\n shiftKey: true,\n action: action(handleTab, editor, false)\n }\n ];\n } else {\n return [];\n }\n };\n const executeKeydownOverride = (editor, evt) => {\n execute([...tableTabNavigation(editor)], evt).each(_ => {\n evt.preventDefault();\n });\n };\n const setup$c = editor => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride(editor, evt);\n }\n });\n };\n\n const setup$b = editor => {\n editor.addShortcut('Meta+P', '', 'mcePrint');\n setup$k(editor);\n if (isRtc(editor)) {\n return Cell(null);\n } else {\n const caret = setupSelectedState(editor);\n setup$e(editor);\n setup$m(editor);\n setup$l(editor, caret);\n setup$j(editor, caret);\n setup$i(editor);\n setup$d(editor);\n setup$g(editor);\n setup$c(editor);\n setup$h(editor, caret);\n setup$f(editor, caret);\n return caret;\n }\n };\n\n class NodeChange {\n constructor(editor) {\n this.lastPath = [];\n this.editor = editor;\n let lastRng;\n const self = this;\n if (!('onselectionchange' in editor.getDoc())) {\n editor.on('NodeChange click mouseup keyup focus', e => {\n const nativeRng = editor.selection.getRng();\n const fakeRng = {\n startContainer: nativeRng.startContainer,\n startOffset: nativeRng.startOffset,\n endContainer: nativeRng.endContainer,\n endOffset: nativeRng.endOffset\n };\n if (e.type === 'nodechange' || !isEq$4(fakeRng, lastRng)) {\n editor.dispatch('SelectionChange');\n }\n lastRng = fakeRng;\n });\n }\n editor.on('contextmenu', () => {\n store(editor);\n editor.dispatch('SelectionChange');\n });\n editor.on('SelectionChange', () => {\n const startElm = editor.selection.getStart(true);\n if (!startElm) {\n return;\n }\n if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {\n editor.nodeChanged({ selectionChange: true });\n }\n });\n editor.on('mouseup', e => {\n if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {\n if (editor.selection.getNode().nodeName === 'IMG') {\n Delay.setEditorTimeout(editor, () => {\n editor.nodeChanged();\n });\n } else {\n editor.nodeChanged();\n }\n }\n });\n }\n nodeChanged(args = {}) {\n const editor = this.editor;\n const selection = editor.selection;\n let node;\n if (editor.initialized && selection && !shouldDisableNodeChange(editor)) {\n const root = editor.getBody();\n node = selection.getStart(true) || root;\n if (node.ownerDocument !== editor.getDoc() || !editor.dom.isChildOf(node, root)) {\n node = root;\n }\n const parents = [];\n editor.dom.getParent(node, node => {\n if (node === root) {\n return true;\n } else {\n parents.push(node);\n return false;\n }\n });\n editor.dispatch('NodeChange', {\n ...args,\n element: node,\n parents\n });\n }\n }\n isSameElementPath(startElm) {\n let i;\n const editor = this.editor;\n const currentPath = reverse(editor.dom.getParents(startElm, always, editor.getBody()));\n if (currentPath.length === this.lastPath.length) {\n for (i = currentPath.length; i >= 0; i--) {\n if (currentPath[i] !== this.lastPath[i]) {\n break;\n }\n }\n if (i === -1) {\n this.lastPath = currentPath;\n return true;\n }\n }\n this.lastPath = currentPath;\n return false;\n }\n }\n\n const imageId = generate$1('image');\n const getDragImage = transfer => {\n const dt = transfer;\n return Optional.from(dt[imageId]);\n };\n const setDragImage = (transfer, imageData) => {\n const dt = transfer;\n dt[imageId] = imageData;\n };\n\n const eventId = generate$1('event');\n const getEvent = transfer => {\n const dt = transfer;\n return Optional.from(dt[eventId]);\n };\n const mkSetEventFn = type => transfer => {\n const dt = transfer;\n dt[eventId] = type;\n };\n const setEvent = (transfer, type) => mkSetEventFn(type)(transfer);\n const setDragstartEvent = mkSetEventFn(0);\n const setDropEvent = mkSetEventFn(2);\n const setDragendEvent = mkSetEventFn(1);\n const checkEvent = expectedType => transfer => {\n const dt = transfer;\n return Optional.from(dt[eventId]).exists(type => type === expectedType);\n };\n const isInDragStartEvent = checkEvent(0);\n\n const createEmptyFileList = () => Object.freeze({\n length: 0,\n item: _ => null\n });\n\n const modeId = generate$1('mode');\n const getMode = transfer => {\n const dt = transfer;\n return Optional.from(dt[modeId]);\n };\n const mkSetModeFn = mode => transfer => {\n const dt = transfer;\n dt[modeId] = mode;\n };\n const setMode$1 = (transfer, mode) => mkSetModeFn(mode)(transfer);\n const setReadWriteMode = mkSetModeFn(0);\n const setReadOnlyMode = mkSetModeFn(2);\n const setProtectedMode = mkSetModeFn(1);\n const checkMode = expectedMode => transfer => {\n const dt = transfer;\n return Optional.from(dt[modeId]).exists(mode => mode === expectedMode);\n };\n const isInReadWriteMode = checkMode(0);\n const isInProtectedMode = checkMode(1);\n\n const normalizeItems = (dataTransfer, itemsImpl) => ({\n ...itemsImpl,\n get length() {\n return itemsImpl.length;\n },\n add: (data, type) => {\n if (isInReadWriteMode(dataTransfer)) {\n if (isString(data)) {\n if (!isUndefined(type)) {\n return itemsImpl.add(data, type);\n }\n } else {\n return itemsImpl.add(data);\n }\n }\n return null;\n },\n remove: idx => {\n if (isInReadWriteMode(dataTransfer)) {\n itemsImpl.remove(idx);\n }\n },\n clear: () => {\n if (isInReadWriteMode(dataTransfer)) {\n itemsImpl.clear();\n }\n }\n });\n\n const validDropEffects = [\n 'none',\n 'copy',\n 'link',\n 'move'\n ];\n const validEffectAlloweds = [\n 'none',\n 'copy',\n 'copyLink',\n 'copyMove',\n 'link',\n 'linkMove',\n 'move',\n 'all',\n 'uninitialized'\n ];\n const createDataTransfer = () => {\n const dataTransferImpl = new window.DataTransfer();\n let dropEffect = 'move';\n let effectAllowed = 'all';\n const dataTransfer = {\n get dropEffect() {\n return dropEffect;\n },\n set dropEffect(effect) {\n if (contains$2(validDropEffects, effect)) {\n dropEffect = effect;\n }\n },\n get effectAllowed() {\n return effectAllowed;\n },\n set effectAllowed(allowed) {\n if (isInDragStartEvent(dataTransfer) && contains$2(validEffectAlloweds, allowed)) {\n effectAllowed = allowed;\n }\n },\n get items() {\n return normalizeItems(dataTransfer, dataTransferImpl.items);\n },\n get files() {\n if (isInProtectedMode(dataTransfer)) {\n return createEmptyFileList();\n } else {\n return dataTransferImpl.files;\n }\n },\n get types() {\n return dataTransferImpl.types;\n },\n setDragImage: (image, x, y) => {\n if (isInReadWriteMode(dataTransfer)) {\n setDragImage(dataTransfer, {\n image,\n x,\n y\n });\n dataTransferImpl.setDragImage(image, x, y);\n }\n },\n getData: format => {\n if (isInProtectedMode(dataTransfer)) {\n return '';\n } else {\n return dataTransferImpl.getData(format);\n }\n },\n setData: (format, data) => {\n if (isInReadWriteMode(dataTransfer)) {\n dataTransferImpl.setData(format, data);\n }\n },\n clearData: format => {\n if (isInReadWriteMode(dataTransfer)) {\n dataTransferImpl.clearData(format);\n }\n }\n };\n setReadWriteMode(dataTransfer);\n return dataTransfer;\n };\n const cloneDataTransfer = original => {\n const clone = createDataTransfer();\n const originalMode = getMode(original);\n setReadOnlyMode(original);\n setDragstartEvent(clone);\n clone.dropEffect = original.dropEffect;\n clone.effectAllowed = original.effectAllowed;\n getDragImage(original).each(imageData => clone.setDragImage(imageData.image, imageData.x, imageData.y));\n each$e(original.types, type => {\n if (type !== 'Files') {\n clone.setData(type, original.getData(type));\n }\n });\n each$e(original.files, file => clone.items.add(file));\n getEvent(original).each(type => {\n setEvent(clone, type);\n });\n originalMode.each(mode => {\n setMode$1(original, mode);\n setMode$1(clone, mode);\n });\n return clone;\n };\n\n const getHtmlData = dataTransfer => {\n const html = dataTransfer.getData('text/html');\n return html === '' ? Optional.none() : Optional.some(html);\n };\n const setHtmlData = (dataTransfer, html) => dataTransfer.setData('text/html', html);\n\n const internalMimeType = 'x-tinymce/html';\n const internalHtmlMime = constant(internalMimeType);\n const internalMark = '';\n const mark = html => internalMark + html;\n const unmark = html => html.replace(internalMark, '');\n const isMarked = html => html.indexOf(internalMark) !== -1;\n\n const isPlainText = text => {\n return !/<(?:\\/?(?!(?:div|p|br|span)>)\\w+|(?:(?!(?:span style=\"white-space:\\s?pre;?\">)|br\\s?\\/>))\\w+\\s[^>]+)>/i.test(text);\n };\n const openContainer = (rootTag, rootAttrs) => {\n let tag = '<' + rootTag;\n const attrs = mapToArray(rootAttrs, (value, key) => key + '=\"' + Entities.encodeAllRaw(value) + '\"');\n if (attrs.length) {\n tag += ' ' + attrs.join(' ');\n }\n return tag + '>';\n };\n const toBlockElements = (text, rootTag, rootAttrs) => {\n const blocks = text.split(/\\n\\n/);\n const tagOpen = openContainer(rootTag, rootAttrs);\n const tagClose = '';\n const paragraphs = map$3(blocks, p => {\n return p.split(/\\n/).join('
    ');\n });\n const stitch = p => {\n return tagOpen + p + tagClose;\n };\n return paragraphs.length === 1 ? paragraphs[0] : map$3(paragraphs, stitch).join('');\n };\n\n const pasteBinDefaultContent = '%MCEPASTEBIN%';\n const create$6 = (editor, lastRngCell) => {\n const {dom, selection} = editor;\n const body = editor.getBody();\n lastRngCell.set(selection.getRng());\n const pasteBinElm = dom.add(editor.getBody(), 'div', {\n 'id': 'mcepastebin',\n 'class': 'mce-pastebin',\n 'contentEditable': true,\n 'data-mce-bogus': 'all',\n 'style': 'position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0'\n }, pasteBinDefaultContent);\n if (Env.browser.isFirefox()) {\n dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535);\n }\n dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', e => {\n e.stopPropagation();\n });\n pasteBinElm.focus();\n selection.select(pasteBinElm, true);\n };\n const remove = (editor, lastRngCell) => {\n const dom = editor.dom;\n if (getEl(editor)) {\n let pasteBinClone;\n const lastRng = lastRngCell.get();\n while (pasteBinClone = getEl(editor)) {\n dom.remove(pasteBinClone);\n dom.unbind(pasteBinClone);\n }\n if (lastRng) {\n editor.selection.setRng(lastRng);\n }\n }\n lastRngCell.set(null);\n };\n const getEl = editor => editor.dom.get('mcepastebin');\n const isPasteBin = elm => isNonNullable(elm) && elm.id === 'mcepastebin';\n const getHtml = editor => {\n const dom = editor.dom;\n const copyAndRemove = (toElm, fromElm) => {\n toElm.appendChild(fromElm);\n dom.remove(fromElm, true);\n };\n const [pasteBinElm, ...pasteBinClones] = filter$5(editor.getBody().childNodes, isPasteBin);\n each$e(pasteBinClones, pasteBinClone => {\n copyAndRemove(pasteBinElm, pasteBinClone);\n });\n const dirtyWrappers = dom.select('div[id=mcepastebin]', pasteBinElm);\n for (let i = dirtyWrappers.length - 1; i >= 0; i--) {\n const cleanWrapper = dom.create('div');\n pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]);\n copyAndRemove(cleanWrapper, dirtyWrappers[i]);\n }\n return pasteBinElm ? pasteBinElm.innerHTML : '';\n };\n const isDefaultPasteBinContent = content => content === pasteBinDefaultContent;\n const PasteBin = editor => {\n const lastRng = Cell(null);\n return {\n create: () => create$6(editor, lastRng),\n remove: () => remove(editor, lastRng),\n getEl: () => getEl(editor),\n getHtml: () => getHtml(editor),\n getLastRng: lastRng.get\n };\n };\n\n const filter$1 = (content, items) => {\n Tools.each(items, v => {\n if (is$4(v, RegExp)) {\n content = content.replace(v, '');\n } else {\n content = content.replace(v[0], v[1]);\n }\n });\n return content;\n };\n const innerText = html => {\n const schema = Schema();\n const domParser = DomParser({}, schema);\n let text = '';\n const voidElements = schema.getVoidElements();\n const ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' ');\n const blockElements = schema.getBlockElements();\n const walk = node => {\n const name = node.name, currentNode = node;\n if (name === 'br') {\n text += '\\n';\n return;\n }\n if (name === 'wbr') {\n return;\n }\n if (voidElements[name]) {\n text += ' ';\n }\n if (ignoreElements[name]) {\n text += ' ';\n return;\n }\n if (node.type === 3) {\n text += node.value;\n }\n if (!(node.name in schema.getVoidElements())) {\n let currentNode = node.firstChild;\n if (currentNode) {\n do {\n walk(currentNode);\n } while (currentNode = currentNode.next);\n }\n }\n if (blockElements[name] && currentNode.next) {\n text += '\\n';\n if (name === 'p') {\n text += '\\n';\n }\n }\n };\n html = filter$1(html, [//g]);\n walk(domParser.parse(html));\n return text;\n };\n const trimHtml = html => {\n const trimSpaces = (all, s1, s2) => {\n if (!s1 && !s2) {\n return ' ';\n }\n return nbsp;\n };\n html = filter$1(html, [\n /^[\\s\\S]*]*>\\s*|\\s*<\\/body[^>]*>[\\s\\S]*$/ig,\n /|/g,\n [\n /( ?)\\u00a0<\\/span>( ?)/g,\n trimSpaces\n ],\n /
    /g,\n /
    $/i\n ]);\n return html;\n };\n const createIdGenerator = prefix => {\n let count = 0;\n return () => {\n return prefix + count++;\n };\n };\n const getImageMimeType = ext => {\n const lowerExt = ext.toLowerCase();\n const mimeOverrides = {\n jpg: 'jpeg',\n jpe: 'jpeg',\n jfi: 'jpeg',\n jif: 'jpeg',\n jfif: 'jpeg',\n pjpeg: 'jpeg',\n pjp: 'jpeg',\n svg: 'svg+xml'\n };\n return Tools.hasOwn(mimeOverrides, lowerExt) ? 'image/' + mimeOverrides[lowerExt] : 'image/' + lowerExt;\n };\n\n const preProcess = (editor, html) => {\n const parser = DomParser({\n sanitize: shouldSanitizeXss(editor),\n sandbox_iframes: shouldSandboxIframes(editor),\n sandbox_iframes_exclusions: getSandboxIframesExclusions(editor),\n convert_unsafe_embeds: shouldConvertUnsafeEmbeds(editor)\n }, editor.schema);\n parser.addNodeFilter('meta', nodes => {\n Tools.each(nodes, node => {\n node.remove();\n });\n });\n const fragment = parser.parse(html, {\n forced_root_block: false,\n isRootContent: true\n });\n return HtmlSerializer({ validate: true }, editor.schema).serialize(fragment);\n };\n const processResult = (content, cancelled) => ({\n content,\n cancelled\n });\n const postProcessFilter = (editor, html, internal) => {\n const tempBody = editor.dom.create('div', { style: 'display:none' }, html);\n const postProcessArgs = firePastePostProcess(editor, tempBody, internal);\n return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented());\n };\n const filterContent = (editor, content, internal) => {\n const preProcessArgs = firePastePreProcess(editor, content, internal);\n const filteredContent = preProcess(editor, preProcessArgs.content);\n if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) {\n return postProcessFilter(editor, filteredContent, internal);\n } else {\n return processResult(filteredContent, preProcessArgs.isDefaultPrevented());\n }\n };\n const process = (editor, html, internal) => {\n return filterContent(editor, html, internal);\n };\n\n const pasteHtml$1 = (editor, html) => {\n editor.insertContent(html, {\n merge: shouldPasteMergeFormats(editor),\n paste: true\n });\n return true;\n };\n const isAbsoluteUrl = url => /^https?:\\/\\/[\\w\\-\\/+=.,!;:&%@^~(){}?#]+$/i.test(url);\n const isImageUrl = (editor, url) => {\n return isAbsoluteUrl(url) && exists(getAllowedImageFileTypes(editor), type => endsWith(url.toLowerCase(), `.${ type.toLowerCase() }`));\n };\n const createImage = (editor, url, pasteHtmlFn) => {\n editor.undoManager.extra(() => {\n pasteHtmlFn(editor, url);\n }, () => {\n editor.insertContent('');\n });\n return true;\n };\n const createLink = (editor, url, pasteHtmlFn) => {\n editor.undoManager.extra(() => {\n pasteHtmlFn(editor, url);\n }, () => {\n editor.execCommand('mceInsertLink', false, url);\n });\n return true;\n };\n const linkSelection = (editor, html, pasteHtmlFn) => !editor.selection.isCollapsed() && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtmlFn) : false;\n const insertImage = (editor, html, pasteHtmlFn) => isImageUrl(editor, html) ? createImage(editor, html, pasteHtmlFn) : false;\n const smartInsertContent = (editor, html) => {\n Tools.each([\n linkSelection,\n insertImage,\n pasteHtml$1\n ], action => {\n return !action(editor, html, pasteHtml$1);\n });\n };\n const insertContent = (editor, html, pasteAsText) => {\n if (pasteAsText || !isSmartPasteEnabled(editor)) {\n pasteHtml$1(editor, html);\n } else {\n smartInsertContent(editor, html);\n }\n };\n\n const uniqueId = createIdGenerator('mceclip');\n const createPasteDataTransfer = html => {\n const dataTransfer = createDataTransfer();\n setHtmlData(dataTransfer, html);\n setReadOnlyMode(dataTransfer);\n return dataTransfer;\n };\n const doPaste = (editor, content, internal, pasteAsText, shouldSimulateInputEvent) => {\n const res = process(editor, content, internal);\n if (!res.cancelled) {\n const content = res.content;\n const doPasteAction = () => insertContent(editor, content, pasteAsText);\n if (shouldSimulateInputEvent) {\n const args = fireBeforeInputEvent(editor, 'insertFromPaste', { dataTransfer: createPasteDataTransfer(content) });\n if (!args.isDefaultPrevented()) {\n doPasteAction();\n fireInputEvent(editor, 'insertFromPaste');\n }\n } else {\n doPasteAction();\n }\n }\n };\n const pasteHtml = (editor, html, internalFlag, shouldSimulateInputEvent) => {\n const internal = internalFlag ? internalFlag : isMarked(html);\n doPaste(editor, unmark(html), internal, false, shouldSimulateInputEvent);\n };\n const pasteText = (editor, text, shouldSimulateInputEvent) => {\n const encodedText = editor.dom.encode(text).replace(/\\r\\n/g, '\\n');\n const normalizedText = normalize$4(encodedText, getPasteTabSpaces(editor));\n const html = toBlockElements(normalizedText, getForcedRootBlock(editor), getForcedRootBlockAttrs(editor));\n doPaste(editor, html, false, true, shouldSimulateInputEvent);\n };\n const getDataTransferItems = dataTransfer => {\n const items = {};\n if (dataTransfer && dataTransfer.types) {\n for (let i = 0; i < dataTransfer.types.length; i++) {\n const contentType = dataTransfer.types[i];\n try {\n items[contentType] = dataTransfer.getData(contentType);\n } catch (ex) {\n items[contentType] = '';\n }\n }\n }\n return items;\n };\n const hasContentType = (clipboardContent, mimeType) => mimeType in clipboardContent && clipboardContent[mimeType].length > 0;\n const hasHtmlOrText = content => hasContentType(content, 'text/html') || hasContentType(content, 'text/plain');\n const extractFilename = (editor, str) => {\n const m = str.match(/([\\s\\S]+?)(?:\\.[a-z0-9.]+)$/i);\n return isNonNullable(m) ? editor.dom.encode(m[1]) : undefined;\n };\n const createBlobInfo = (editor, blobCache, file, base64) => {\n const id = uniqueId();\n const useFileName = shouldReuseFileName(editor) && isNonNullable(file.name);\n const name = useFileName ? extractFilename(editor, file.name) : id;\n const filename = useFileName ? file.name : undefined;\n const blobInfo = blobCache.create(id, file, base64, name, filename);\n blobCache.add(blobInfo);\n return blobInfo;\n };\n const pasteImage = (editor, imageItem) => {\n parseDataUri(imageItem.uri).each(({data, type, base64Encoded}) => {\n const base64 = base64Encoded ? data : btoa(data);\n const file = imageItem.file;\n const blobCache = editor.editorUpload.blobCache;\n const existingBlobInfo = blobCache.getByData(base64, type);\n const blobInfo = existingBlobInfo !== null && existingBlobInfo !== void 0 ? existingBlobInfo : createBlobInfo(editor, blobCache, file, base64);\n pasteHtml(editor, ``, false, true);\n });\n };\n const isClipboardEvent = event => event.type === 'paste';\n const readFilesAsDataUris = items => Promise.all(map$3(items, file => {\n return blobToDataUri(file).then(uri => ({\n file,\n uri\n }));\n }));\n const isImage = editor => {\n const allowedExtensions = getAllowedImageFileTypes(editor);\n return file => startsWith(file.type, 'image/') && exists(allowedExtensions, extension => {\n return getImageMimeType(extension) === file.type;\n });\n };\n const getImagesFromDataTransfer = (editor, dataTransfer) => {\n const items = dataTransfer.items ? bind$3(from(dataTransfer.items), item => {\n return item.kind === 'file' ? [item.getAsFile()] : [];\n }) : [];\n const files = dataTransfer.files ? from(dataTransfer.files) : [];\n return filter$5(items.length > 0 ? items : files, isImage(editor));\n };\n const pasteImageData = (editor, e, rng) => {\n const dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer;\n if (shouldPasteDataImages(editor) && dataTransfer) {\n const images = getImagesFromDataTransfer(editor, dataTransfer);\n if (images.length > 0) {\n e.preventDefault();\n readFilesAsDataUris(images).then(fileResults => {\n if (rng) {\n editor.selection.setRng(rng);\n }\n each$e(fileResults, result => {\n pasteImage(editor, result);\n });\n });\n return true;\n }\n }\n return false;\n };\n const isBrokenAndroidClipboardEvent = e => {\n var _a, _b;\n return Env.os.isAndroid() && ((_b = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length) === 0;\n };\n const isKeyboardPasteEvent = e => VK.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45;\n const insertClipboardContent = (editor, clipboardContent, html, plainTextMode, shouldSimulateInputEvent) => {\n let content = trimHtml(html);\n const isInternal = hasContentType(clipboardContent, internalHtmlMime()) || isMarked(html);\n const isPlainTextHtml = !isInternal && isPlainText(content);\n const isAbsoluteUrl$1 = isAbsoluteUrl(content);\n if (isDefaultPasteBinContent(content) || !content.length || isPlainTextHtml && !isAbsoluteUrl$1) {\n plainTextMode = true;\n }\n if (plainTextMode || isAbsoluteUrl$1) {\n if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) {\n content = clipboardContent['text/plain'];\n } else {\n content = innerText(content);\n }\n }\n if (isDefaultPasteBinContent(content)) {\n return;\n }\n if (plainTextMode) {\n pasteText(editor, content, shouldSimulateInputEvent);\n } else {\n pasteHtml(editor, content, isInternal, shouldSimulateInputEvent);\n }\n };\n const registerEventHandlers = (editor, pasteBin, pasteFormat) => {\n let keyboardPastePlainTextState;\n const getLastRng = () => pasteBin.getLastRng() || editor.selection.getRng();\n editor.on('keydown', e => {\n if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86;\n }\n });\n editor.on('paste', e => {\n if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {\n return;\n }\n const plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState;\n keyboardPastePlainTextState = false;\n const clipboardContent = getDataTransferItems(e.clipboardData);\n if (!hasHtmlOrText(clipboardContent) && pasteImageData(editor, e, getLastRng())) {\n return;\n }\n if (hasContentType(clipboardContent, 'text/html')) {\n e.preventDefault();\n insertClipboardContent(editor, clipboardContent, clipboardContent['text/html'], plainTextMode, true);\n } else if (hasContentType(clipboardContent, 'text/plain') && hasContentType(clipboardContent, 'text/uri-list')) {\n e.preventDefault();\n insertClipboardContent(editor, clipboardContent, clipboardContent['text/plain'], plainTextMode, true);\n } else {\n pasteBin.create();\n Delay.setEditorTimeout(editor, () => {\n const html = pasteBin.getHtml();\n pasteBin.remove();\n insertClipboardContent(editor, clipboardContent, html, plainTextMode, false);\n }, 0);\n }\n });\n };\n const registerDataImageFilter = editor => {\n const isWebKitFakeUrl = src => startsWith(src, 'webkit-fake-url');\n const isDataUri = src => startsWith(src, 'data:');\n const isPasteInsert = args => {\n var _a;\n return ((_a = args.data) === null || _a === void 0 ? void 0 : _a.paste) === true;\n };\n editor.parser.addNodeFilter('img', (nodes, name, args) => {\n if (!shouldPasteDataImages(editor) && isPasteInsert(args)) {\n for (const node of nodes) {\n const src = node.attr('src');\n if (isString(src) && !node.attr('data-mce-object') && src !== Env.transparentSrc) {\n if (isWebKitFakeUrl(src)) {\n node.remove();\n } else if (!shouldAllowHtmlDataUrls(editor) && isDataUri(src)) {\n node.remove();\n }\n }\n }\n }\n });\n };\n const registerEventsAndFilters = (editor, pasteBin, pasteFormat) => {\n registerEventHandlers(editor, pasteBin, pasteFormat);\n registerDataImageFilter(editor);\n };\n\n const togglePlainTextPaste = (editor, pasteFormat) => {\n if (pasteFormat.get() === 'text') {\n pasteFormat.set('html');\n firePastePlainTextToggle(editor, false);\n } else {\n pasteFormat.set('text');\n firePastePlainTextToggle(editor, true);\n }\n editor.focus();\n };\n const register$1 = (editor, pasteFormat) => {\n editor.addCommand('mceTogglePlainTextPaste', () => {\n togglePlainTextPaste(editor, pasteFormat);\n });\n editor.addCommand('mceInsertClipboardContent', (ui, value) => {\n if (value.html) {\n pasteHtml(editor, value.html, value.internal, false);\n }\n if (value.text) {\n pasteText(editor, value.text, false);\n }\n });\n };\n\n const setHtml5Clipboard = (clipboardData, html, text) => {\n if (clipboardData) {\n try {\n clipboardData.clearData();\n clipboardData.setData('text/html', html);\n clipboardData.setData('text/plain', text);\n clipboardData.setData(internalHtmlMime(), html);\n return true;\n } catch (e) {\n return false;\n }\n } else {\n return false;\n }\n };\n const setClipboardData = (evt, data, fallback, done) => {\n if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) {\n evt.preventDefault();\n done();\n } else {\n fallback(data.html, done);\n }\n };\n const fallback = editor => (html, done) => {\n const {dom, selection} = editor;\n const outer = dom.create('div', {\n 'contenteditable': 'false',\n 'data-mce-bogus': 'all'\n });\n const inner = dom.create('div', { contenteditable: 'true' }, html);\n dom.setStyles(outer, {\n position: 'fixed',\n top: '0',\n left: '-3000px',\n width: '1000px',\n overflow: 'hidden'\n });\n outer.appendChild(inner);\n dom.add(editor.getBody(), outer);\n const range = selection.getRng();\n inner.focus();\n const offscreenRange = dom.createRng();\n offscreenRange.selectNodeContents(inner);\n selection.setRng(offscreenRange);\n Delay.setEditorTimeout(editor, () => {\n selection.setRng(range);\n dom.remove(outer);\n done();\n }, 0);\n };\n const getData = editor => ({\n html: mark(editor.selection.getContent({ contextual: true })),\n text: editor.selection.getContent({ format: 'text' })\n });\n const isTableSelection = editor => !!editor.dom.getParent(editor.selection.getStart(), 'td[data-mce-selected],th[data-mce-selected]', editor.getBody());\n const hasSelectedContent = editor => !editor.selection.isCollapsed() || isTableSelection(editor);\n const cut = editor => evt => {\n if (!evt.isDefaultPrevented() && hasSelectedContent(editor) && editor.selection.isEditable()) {\n setClipboardData(evt, getData(editor), fallback(editor), () => {\n if (Env.browser.isChromium() || Env.browser.isFirefox()) {\n const rng = editor.selection.getRng();\n Delay.setEditorTimeout(editor, () => {\n editor.selection.setRng(rng);\n editor.execCommand('Delete');\n }, 0);\n } else {\n editor.execCommand('Delete');\n }\n });\n }\n };\n const copy = editor => evt => {\n if (!evt.isDefaultPrevented() && hasSelectedContent(editor)) {\n setClipboardData(evt, getData(editor), fallback(editor), noop);\n }\n };\n const register = editor => {\n editor.on('cut', cut(editor));\n editor.on('copy', copy(editor));\n };\n\n const getCaretRangeFromEvent = (editor, e) => {\n var _a, _b;\n return RangeUtils.getCaretRangeFromPoint((_a = e.clientX) !== null && _a !== void 0 ? _a : 0, (_b = e.clientY) !== null && _b !== void 0 ? _b : 0, editor.getDoc());\n };\n const isPlainTextFileUrl = content => {\n const plainTextContent = content['text/plain'];\n return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false;\n };\n const setFocusedRange = (editor, rng) => {\n editor.focus();\n if (rng) {\n editor.selection.setRng(rng);\n }\n };\n const hasImage = dataTransfer => exists(dataTransfer.files, file => /^image\\//.test(file.type));\n const needsCustomInternalDrop = (dom, schema, target, dropContent) => {\n const parentTransparent = dom.getParent(target, node => isTransparentBlock(schema, node));\n const inSummary = !isNull(dom.getParent(target, 'summary'));\n if (inSummary) {\n return true;\n } else if (parentTransparent && has$2(dropContent, 'text/html')) {\n const fragment = new DOMParser().parseFromString(dropContent['text/html'], 'text/html').body;\n return !isNull(fragment.querySelector(parentTransparent.nodeName.toLowerCase()));\n } else {\n return false;\n }\n };\n const setupSummaryDeleteByDragFix = editor => {\n editor.on('input', e => {\n const hasNoSummary = el => isNull(el.querySelector('summary'));\n if (e.inputType === 'deleteByDrag') {\n const brokenDetailElements = filter$5(editor.dom.select('details'), hasNoSummary);\n each$e(brokenDetailElements, details => {\n if (isBr$6(details.firstChild)) {\n details.firstChild.remove();\n }\n const summary = editor.dom.create('summary');\n summary.appendChild(createPaddingBr().dom);\n details.prepend(summary);\n });\n }\n });\n };\n const setup$a = (editor, draggingInternallyState) => {\n if (shouldPasteBlockDrop(editor)) {\n editor.on('dragend dragover draggesture dragdrop drop drag', e => {\n e.preventDefault();\n e.stopPropagation();\n });\n }\n if (!shouldPasteDataImages(editor)) {\n editor.on('drop', e => {\n const dataTransfer = e.dataTransfer;\n if (dataTransfer && hasImage(dataTransfer)) {\n e.preventDefault();\n }\n });\n }\n editor.on('drop', e => {\n if (e.isDefaultPrevented()) {\n return;\n }\n const rng = getCaretRangeFromEvent(editor, e);\n if (isNullable(rng)) {\n return;\n }\n const dropContent = getDataTransferItems(e.dataTransfer);\n const internal = hasContentType(dropContent, internalHtmlMime());\n if ((!hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && pasteImageData(editor, e, rng)) {\n return;\n }\n const internalContent = dropContent[internalHtmlMime()];\n const content = internalContent || dropContent['text/html'] || dropContent['text/plain'];\n const needsInternalDrop = needsCustomInternalDrop(editor.dom, editor.schema, rng.startContainer, dropContent);\n const isInternalDrop = draggingInternallyState.get();\n if (isInternalDrop && !needsInternalDrop) {\n return;\n }\n if (content) {\n e.preventDefault();\n Delay.setEditorTimeout(editor, () => {\n editor.undoManager.transact(() => {\n if (internalContent || isInternalDrop && needsInternalDrop) {\n editor.execCommand('Delete');\n }\n setFocusedRange(editor, rng);\n const trimmedContent = trimHtml(content);\n if (dropContent['text/html']) {\n pasteHtml(editor, trimmedContent, internal, true);\n } else {\n pasteText(editor, trimmedContent, true);\n }\n });\n });\n }\n });\n editor.on('dragstart', _e => {\n draggingInternallyState.set(true);\n });\n editor.on('dragover dragend', e => {\n if (shouldPasteDataImages(editor) && !draggingInternallyState.get()) {\n e.preventDefault();\n setFocusedRange(editor, getCaretRangeFromEvent(editor, e));\n }\n if (e.type === 'dragend') {\n draggingInternallyState.set(false);\n }\n });\n setupSummaryDeleteByDragFix(editor);\n };\n\n const setup$9 = editor => {\n const processEvent = f => e => {\n f(editor, e);\n };\n const preProcess = getPastePreProcess(editor);\n if (isFunction(preProcess)) {\n editor.on('PastePreProcess', processEvent(preProcess));\n }\n const postProcess = getPastePostProcess(editor);\n if (isFunction(postProcess)) {\n editor.on('PastePostProcess', processEvent(postProcess));\n }\n };\n\n const addPreProcessFilter = (editor, filterFunc) => {\n editor.on('PastePreProcess', e => {\n e.content = filterFunc(editor, e.content, e.internal);\n });\n };\n const rgbRegExp = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/gi;\n const rgbToHex = value => Tools.trim(value).replace(rgbRegExp, rgbaToHexString).toLowerCase();\n const removeWebKitStyles = (editor, content, internal) => {\n const webKitStylesOption = getPasteWebkitStyles(editor);\n if (internal || webKitStylesOption === 'all' || !shouldPasteRemoveWebKitStyles(editor)) {\n return content;\n }\n const webKitStyles = webKitStylesOption ? webKitStylesOption.split(/[, ]/) : [];\n if (webKitStyles && webKitStylesOption !== 'none') {\n const dom = editor.dom, node = editor.selection.getNode();\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, (all, before, value, after) => {\n const inputStyles = dom.parseStyle(dom.decode(value));\n const outputStyles = {};\n for (let i = 0; i < webKitStyles.length; i++) {\n const inputValue = inputStyles[webKitStyles[i]];\n let compareInput = inputValue;\n let currentValue = dom.getStyle(node, webKitStyles[i], true);\n if (/color/.test(webKitStyles[i])) {\n compareInput = rgbToHex(compareInput);\n currentValue = rgbToHex(currentValue);\n }\n if (currentValue !== compareInput) {\n outputStyles[webKitStyles[i]] = inputValue;\n }\n }\n const outputStyle = dom.serializeStyle(outputStyles, 'span');\n if (outputStyle) {\n return before + ' style=\"' + outputStyle + '\"' + after;\n }\n return before + after;\n });\n } else {\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, '$1$3');\n }\n content = content.replace(/(<[^>]+) data-mce-style=\"([^\"]+)\"([^>]*>)/gi, (all, before, value, after) => {\n return before + ' style=\"' + value + '\"' + after;\n });\n return content;\n };\n const setup$8 = editor => {\n if (Env.browser.isChromium() || Env.browser.isSafari()) {\n addPreProcessFilter(editor, removeWebKitStyles);\n }\n };\n\n const setup$7 = editor => {\n const draggingInternallyState = Cell(false);\n const pasteFormat = Cell(isPasteAsTextEnabled(editor) ? 'text' : 'html');\n const pasteBin = PasteBin(editor);\n setup$8(editor);\n register$1(editor, pasteFormat);\n setup$9(editor);\n editor.addQueryStateHandler('mceTogglePlainTextPaste', () => pasteFormat.get() === 'text');\n editor.on('PreInit', () => {\n register(editor);\n setup$a(editor, draggingInternallyState);\n registerEventsAndFilters(editor, pasteBin, pasteFormat);\n });\n };\n\n const preventSummaryToggle = editor => {\n editor.on('click', e => {\n if (editor.dom.getParent(e.target, 'details')) {\n e.preventDefault();\n }\n });\n };\n const filterDetails = editor => {\n editor.parser.addNodeFilter('details', elms => {\n const initialStateOption = getDetailsInitialState(editor);\n each$e(elms, details => {\n if (initialStateOption === 'expanded') {\n details.attr('open', 'open');\n } else if (initialStateOption === 'collapsed') {\n details.attr('open', null);\n }\n });\n });\n editor.serializer.addNodeFilter('details', elms => {\n const serializedStateOption = getDetailsSerializedState(editor);\n each$e(elms, details => {\n if (serializedStateOption === 'expanded') {\n details.attr('open', 'open');\n } else if (serializedStateOption === 'collapsed') {\n details.attr('open', null);\n }\n });\n });\n };\n const setup$6 = editor => {\n preventSummaryToggle(editor);\n filterDetails(editor);\n };\n\n const isBr = isBr$6;\n const isText = isText$b;\n const isContentEditableFalse$2 = elm => isContentEditableFalse$b(elm.dom);\n const isContentEditableTrue = elm => isContentEditableTrue$3(elm.dom);\n const isRoot = rootNode => elm => eq(SugarElement.fromDom(rootNode), elm);\n const getClosestScope = (node, rootNode, schema) => closest$4(SugarElement.fromDom(node), elm => isContentEditableTrue(elm) || schema.isBlock(name(elm)), isRoot(rootNode)).getOr(SugarElement.fromDom(rootNode)).dom;\n const getClosestCef = (node, rootNode) => closest$4(SugarElement.fromDom(node), isContentEditableFalse$2, isRoot(rootNode));\n const findEdgeCaretCandidate = (startNode, scope, forward) => {\n const walker = new DomTreeWalker(startNode, scope);\n const next = forward ? walker.next.bind(walker) : walker.prev.bind(walker);\n let result = startNode;\n for (let current = forward ? startNode : next(); current && !isBr(current); current = next()) {\n if (isCaretCandidate$3(current)) {\n result = current;\n }\n }\n return result;\n };\n const findClosestBlockRange = (startRng, rootNode, schema) => {\n const startPos = CaretPosition.fromRangeStart(startRng);\n const clickNode = startPos.getNode();\n const scope = getClosestScope(clickNode, rootNode, schema);\n const startNode = findEdgeCaretCandidate(clickNode, scope, false);\n const endNode = findEdgeCaretCandidate(clickNode, scope, true);\n const rng = document.createRange();\n getClosestCef(startNode, scope).fold(() => {\n if (isText(startNode)) {\n rng.setStart(startNode, 0);\n } else {\n rng.setStartBefore(startNode);\n }\n }, cef => rng.setStartBefore(cef.dom));\n getClosestCef(endNode, scope).fold(() => {\n if (isText(endNode)) {\n rng.setEnd(endNode, endNode.data.length);\n } else {\n rng.setEndAfter(endNode);\n }\n }, cef => rng.setEndAfter(cef.dom));\n return rng;\n };\n const onTripleClickSelect = editor => {\n const rng = findClosestBlockRange(editor.selection.getRng(), editor.getBody(), editor.schema);\n editor.selection.setRng(normalize(rng));\n };\n const setup$5 = editor => {\n editor.on('mousedown', e => {\n if (e.detail >= 3) {\n e.preventDefault();\n onTripleClickSelect(editor);\n }\n });\n };\n\n var FakeCaretPosition;\n (function (FakeCaretPosition) {\n FakeCaretPosition['Before'] = 'before';\n FakeCaretPosition['After'] = 'after';\n }(FakeCaretPosition || (FakeCaretPosition = {})));\n const distanceToRectLeft = (clientRect, clientX) => Math.abs(clientRect.left - clientX);\n const distanceToRectRight = (clientRect, clientX) => Math.abs(clientRect.right - clientX);\n const isInsideY = (clientY, clientRect) => clientY >= clientRect.top && clientY <= clientRect.bottom;\n const collidesY = (r1, r2) => r1.top < r2.bottom && r1.bottom > r2.top;\n const isOverlapping = (r1, r2) => {\n const overlap = overlapY(r1, r2) / Math.min(r1.height, r2.height);\n return collidesY(r1, r2) && overlap > 0.5;\n };\n const splitRectsPerAxis = (rects, y) => {\n const intersectingRects = filter$5(rects, rect => isInsideY(y, rect));\n return boundingClientRectFromRects(intersectingRects).fold(() => [\n [],\n rects\n ], boundingRect => {\n const {\n pass: horizontal,\n fail: vertical\n } = partition$2(rects, rect => isOverlapping(rect, boundingRect));\n return [\n horizontal,\n vertical\n ];\n });\n };\n const clientInfo = (rect, clientX) => {\n return {\n node: rect.node,\n position: distanceToRectLeft(rect, clientX) < distanceToRectRight(rect, clientX) ? FakeCaretPosition.Before : FakeCaretPosition.After\n };\n };\n const horizontalDistance = (rect, x, _y) => x > rect.left && x < rect.right ? 0 : Math.min(Math.abs(rect.left - x), Math.abs(rect.right - x));\n const closestChildCaretCandidateNodeRect = (children, clientX, clientY, findCloserTextNode) => {\n const caretCandidateRect = rect => {\n if (isCaretCandidate$3(rect.node)) {\n return Optional.some(rect);\n } else if (isElement$6(rect.node)) {\n return closestChildCaretCandidateNodeRect(from(rect.node.childNodes), clientX, clientY, false);\n } else {\n return Optional.none();\n }\n };\n const tryFindSecondBestTextNode = (closest, sndClosest, distance) => {\n return caretCandidateRect(sndClosest).filter(rect => {\n const deltaDistance = Math.abs(distance(closest, clientX, clientY) - distance(rect, clientX, clientY));\n return deltaDistance < 2 && isText$b(rect.node);\n });\n };\n const findClosestCaretCandidateNodeRect = (rects, distance) => {\n const sortedRects = sort(rects, (r1, r2) => distance(r1, clientX, clientY) - distance(r2, clientX, clientY));\n return findMap(sortedRects, caretCandidateRect).map(closest => {\n if (findCloserTextNode && !isText$b(closest.node) && sortedRects.length > 1) {\n return tryFindSecondBestTextNode(closest, sortedRects[1], distance).getOr(closest);\n } else {\n return closest;\n }\n });\n };\n const [horizontalRects, verticalRects] = splitRectsPerAxis(getClientRects(children), clientY);\n const {\n pass: above,\n fail: below\n } = partition$2(verticalRects, rect => rect.top < clientY);\n return findClosestCaretCandidateNodeRect(horizontalRects, horizontalDistance).orThunk(() => findClosestCaretCandidateNodeRect(below, distanceToRectEdgeFromXY)).orThunk(() => findClosestCaretCandidateNodeRect(above, distanceToRectEdgeFromXY));\n };\n const traverseUp = (rootElm, scope, clientX, clientY) => {\n const helper = (scope, prevScope) => {\n const isDragGhostContainer = node => isElement$6(node) && node.classList.contains('mce-drag-container');\n const childNodesWithoutGhost = filter$5(scope.dom.childNodes, not(isDragGhostContainer));\n return prevScope.fold(() => closestChildCaretCandidateNodeRect(childNodesWithoutGhost, clientX, clientY, true), prevScope => {\n const uncheckedChildren = filter$5(childNodesWithoutGhost, node => node !== prevScope.dom);\n return closestChildCaretCandidateNodeRect(uncheckedChildren, clientX, clientY, true);\n }).orThunk(() => {\n const parent = eq(scope, rootElm) ? Optional.none() : parentElement(scope);\n return parent.bind(newScope => helper(newScope, Optional.some(scope)));\n });\n };\n return helper(scope, Optional.none());\n };\n const closestCaretCandidateNodeRect = (root, clientX, clientY) => {\n const rootElm = SugarElement.fromDom(root);\n const ownerDoc = documentOrOwner(rootElm);\n const elementAtPoint = SugarElement.fromPoint(ownerDoc, clientX, clientY).filter(elm => contains(rootElm, elm));\n const element = elementAtPoint.getOr(rootElm);\n return traverseUp(rootElm, element, clientX, clientY);\n };\n const closestFakeCaretCandidate = (root, clientX, clientY) => closestCaretCandidateNodeRect(root, clientX, clientY).filter(rect => isFakeCaretTarget(rect.node)).map(rect => clientInfo(rect, clientX));\n\n const getAbsolutePosition = elm => {\n var _a, _b;\n const clientRect = elm.getBoundingClientRect();\n const doc = elm.ownerDocument;\n const docElem = doc.documentElement;\n const win = doc.defaultView;\n return {\n top: clientRect.top + ((_a = win === null || win === void 0 ? void 0 : win.scrollY) !== null && _a !== void 0 ? _a : 0) - docElem.clientTop,\n left: clientRect.left + ((_b = win === null || win === void 0 ? void 0 : win.scrollX) !== null && _b !== void 0 ? _b : 0) - docElem.clientLeft\n };\n };\n const getBodyPosition = editor => editor.inline ? getAbsolutePosition(editor.getBody()) : {\n left: 0,\n top: 0\n };\n const getScrollPosition = editor => {\n const body = editor.getBody();\n return editor.inline ? {\n left: body.scrollLeft,\n top: body.scrollTop\n } : {\n left: 0,\n top: 0\n };\n };\n const getBodyScroll = editor => {\n const body = editor.getBody(), docElm = editor.getDoc().documentElement;\n const inlineScroll = {\n left: body.scrollLeft,\n top: body.scrollTop\n };\n const iframeScroll = {\n left: body.scrollLeft || docElm.scrollLeft,\n top: body.scrollTop || docElm.scrollTop\n };\n return editor.inline ? inlineScroll : iframeScroll;\n };\n const getMousePosition = (editor, event) => {\n if (event.target.ownerDocument !== editor.getDoc()) {\n const iframePosition = getAbsolutePosition(editor.getContentAreaContainer());\n const scrollPosition = getBodyScroll(editor);\n return {\n left: event.pageX - iframePosition.left + scrollPosition.left,\n top: event.pageY - iframePosition.top + scrollPosition.top\n };\n }\n return {\n left: event.pageX,\n top: event.pageY\n };\n };\n const calculatePosition = (bodyPosition, scrollPosition, mousePosition) => ({\n pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,\n pageY: mousePosition.top - bodyPosition.top + scrollPosition.top\n });\n const calc = (editor, event) => calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));\n\n const getTargetProps = target => ({\n target,\n srcElement: target\n });\n const makeDndEventFromMouseEvent = (type, mouseEvent, target, dataTransfer) => ({\n ...mouseEvent,\n dataTransfer,\n type,\n ...getTargetProps(target)\n });\n const makeDndEvent = (type, target, dataTransfer) => {\n const fail = die('Function not supported on simulated event.');\n const event = {\n bubbles: true,\n cancelBubble: false,\n cancelable: true,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n isTrusted: true,\n returnValue: false,\n timeStamp: 0,\n type,\n composedPath: fail,\n initEvent: fail,\n preventDefault: noop,\n stopImmediatePropagation: noop,\n stopPropagation: noop,\n AT_TARGET: window.Event.AT_TARGET,\n BUBBLING_PHASE: window.Event.BUBBLING_PHASE,\n CAPTURING_PHASE: window.Event.CAPTURING_PHASE,\n NONE: window.Event.NONE,\n altKey: false,\n button: 0,\n buttons: 0,\n clientX: 0,\n clientY: 0,\n ctrlKey: false,\n metaKey: false,\n movementX: 0,\n movementY: 0,\n offsetX: 0,\n offsetY: 0,\n pageX: 0,\n pageY: 0,\n relatedTarget: null,\n screenX: 0,\n screenY: 0,\n shiftKey: false,\n x: 0,\n y: 0,\n detail: 0,\n view: null,\n which: 0,\n initUIEvent: fail,\n initMouseEvent: fail,\n getModifierState: fail,\n dataTransfer,\n ...getTargetProps(target)\n };\n return event;\n };\n const makeDataTransferCopyForDragEvent = (dataTransfer, eventType) => {\n const copy = cloneDataTransfer(dataTransfer);\n if (eventType === 'dragstart') {\n setDragstartEvent(copy);\n setReadWriteMode(copy);\n } else if (eventType === 'drop') {\n setDropEvent(copy);\n setReadOnlyMode(copy);\n } else {\n setDragendEvent(copy);\n setProtectedMode(copy);\n }\n return copy;\n };\n const makeDragEvent = (type, target, dataTransfer, mouseEvent) => {\n const dataTransferForDispatch = makeDataTransferCopyForDragEvent(dataTransfer, type);\n return isUndefined(mouseEvent) ? makeDndEvent(type, target, dataTransferForDispatch) : makeDndEventFromMouseEvent(type, mouseEvent, target, dataTransferForDispatch);\n };\n\n const scrollPixelsPerInterval = 32;\n const scrollIntervalValue = 100;\n const mouseRangeToTriggerScrollInsideEditor = 8;\n const mouseRangeToTriggerScrollOutsideEditor = 16;\n const isContentEditableFalse$1 = isContentEditableFalse$b;\n const isContentEditable = or(isContentEditableFalse$1, isContentEditableTrue$3);\n const isDraggable = (dom, rootElm, elm) => isContentEditableFalse$1(elm) && elm !== rootElm && dom.isEditable(elm.parentElement);\n const isValidDropTarget = (editor, targetElement, dragElement) => {\n if (isNullable(targetElement)) {\n return false;\n } else if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {\n return false;\n } else {\n return editor.dom.isEditable(targetElement);\n }\n };\n const createGhost = (editor, elm, width, height) => {\n const dom = editor.dom;\n const clonedElm = elm.cloneNode(true);\n dom.setStyles(clonedElm, {\n width,\n height\n });\n dom.setAttrib(clonedElm, 'data-mce-selected', null);\n const ghostElm = dom.create('div', {\n 'class': 'mce-drag-container',\n 'data-mce-bogus': 'all',\n 'unselectable': 'on',\n 'contenteditable': 'false'\n });\n dom.setStyles(ghostElm, {\n position: 'absolute',\n opacity: 0.5,\n overflow: 'hidden',\n border: 0,\n padding: 0,\n margin: 0,\n width,\n height\n });\n dom.setStyles(clonedElm, {\n margin: 0,\n boxSizing: 'border-box'\n });\n ghostElm.appendChild(clonedElm);\n return ghostElm;\n };\n const appendGhostToBody = (ghostElm, bodyElm) => {\n if (ghostElm.parentNode !== bodyElm) {\n bodyElm.appendChild(ghostElm);\n }\n };\n const scrollEditor = (direction, amount) => win => () => {\n const current = direction === 'left' ? win.scrollX : win.scrollY;\n win.scroll({\n [direction]: current + amount,\n behavior: 'smooth'\n });\n };\n const scrollLeft = scrollEditor('left', -scrollPixelsPerInterval);\n const scrollRight = scrollEditor('left', scrollPixelsPerInterval);\n const scrollUp = scrollEditor('top', -scrollPixelsPerInterval);\n const scrollDown = scrollEditor('top', scrollPixelsPerInterval);\n const moveGhost = (ghostElm, position, width, height, maxX, maxY, mouseY, mouseX, contentAreaContainer, win, state, mouseEventOriginatedFromWithinTheEditor) => {\n let overflowX = 0, overflowY = 0;\n ghostElm.style.left = position.pageX + 'px';\n ghostElm.style.top = position.pageY + 'px';\n if (position.pageX + width > maxX) {\n overflowX = position.pageX + width - maxX;\n }\n if (position.pageY + height > maxY) {\n overflowY = position.pageY + height - maxY;\n }\n ghostElm.style.width = width - overflowX + 'px';\n ghostElm.style.height = height - overflowY + 'px';\n const clientHeight = contentAreaContainer.clientHeight;\n const clientWidth = contentAreaContainer.clientWidth;\n const outerMouseY = mouseY + contentAreaContainer.getBoundingClientRect().top;\n const outerMouseX = mouseX + contentAreaContainer.getBoundingClientRect().left;\n state.on(state => {\n state.intervalId.clear();\n if (state.dragging && mouseEventOriginatedFromWithinTheEditor) {\n if (mouseY + mouseRangeToTriggerScrollInsideEditor >= clientHeight) {\n state.intervalId.set(scrollDown(win));\n } else if (mouseY - mouseRangeToTriggerScrollInsideEditor <= 0) {\n state.intervalId.set(scrollUp(win));\n } else if (mouseX + mouseRangeToTriggerScrollInsideEditor >= clientWidth) {\n state.intervalId.set(scrollRight(win));\n } else if (mouseX - mouseRangeToTriggerScrollInsideEditor <= 0) {\n state.intervalId.set(scrollLeft(win));\n } else if (outerMouseY + mouseRangeToTriggerScrollOutsideEditor >= window.innerHeight) {\n state.intervalId.set(scrollDown(window));\n } else if (outerMouseY - mouseRangeToTriggerScrollOutsideEditor <= 0) {\n state.intervalId.set(scrollUp(window));\n } else if (outerMouseX + mouseRangeToTriggerScrollOutsideEditor >= window.innerWidth) {\n state.intervalId.set(scrollRight(window));\n } else if (outerMouseX - mouseRangeToTriggerScrollOutsideEditor <= 0) {\n state.intervalId.set(scrollLeft(window));\n }\n }\n });\n };\n const removeElement = elm => {\n if (elm && elm.parentNode) {\n elm.parentNode.removeChild(elm);\n }\n };\n const removeElementWithPadding = (dom, elm) => {\n const parentBlock = dom.getParent(elm.parentNode, dom.isBlock);\n removeElement(elm);\n if (parentBlock && parentBlock !== dom.getRoot() && dom.isEmpty(parentBlock)) {\n fillWithPaddingBr(SugarElement.fromDom(parentBlock));\n }\n };\n const isLeftMouseButtonPressed = e => e.button === 0;\n const applyRelPos = (state, position) => ({\n pageX: position.pageX - state.relX,\n pageY: position.pageY + 5\n });\n const start = (state, editor) => e => {\n if (isLeftMouseButtonPressed(e)) {\n const ceElm = find$2(editor.dom.getParents(e.target), isContentEditable).getOr(null);\n if (isNonNullable(ceElm) && isDraggable(editor.dom, editor.getBody(), ceElm)) {\n const elmPos = editor.dom.getPos(ceElm);\n const bodyElm = editor.getBody();\n const docElm = editor.getDoc().documentElement;\n state.set({\n element: ceElm,\n dataTransfer: createDataTransfer(),\n dragging: false,\n screenX: e.screenX,\n screenY: e.screenY,\n maxX: (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2,\n maxY: (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2,\n relX: e.pageX - elmPos.x,\n relY: e.pageY - elmPos.y,\n width: ceElm.offsetWidth,\n height: ceElm.offsetHeight,\n ghost: createGhost(editor, ceElm, ceElm.offsetWidth, ceElm.offsetHeight),\n intervalId: repeatable(scrollIntervalValue)\n });\n }\n }\n };\n const placeCaretAt = (editor, clientX, clientY) => {\n editor._selectionOverrides.hideFakeCaret();\n closestFakeCaretCandidate(editor.getBody(), clientX, clientY).fold(() => editor.selection.placeCaretAt(clientX, clientY), caretInfo => {\n const range = editor._selectionOverrides.showCaret(1, caretInfo.node, caretInfo.position === FakeCaretPosition.Before, false);\n if (range) {\n editor.selection.setRng(range);\n } else {\n editor.selection.placeCaretAt(clientX, clientY);\n }\n });\n };\n const dispatchDragEvent = (editor, type, target, dataTransfer, mouseEvent) => {\n if (type === 'dragstart') {\n setHtmlData(dataTransfer, editor.dom.getOuterHTML(target));\n }\n const event = makeDragEvent(type, target, dataTransfer, mouseEvent);\n const args = editor.dispatch(type, event);\n return args;\n };\n const move = (state, editor) => {\n const throttledPlaceCaretAt = first$1((clientX, clientY) => placeCaretAt(editor, clientX, clientY), 0);\n editor.on('remove', throttledPlaceCaretAt.cancel);\n const state_ = state;\n return e => state.on(state => {\n const movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));\n if (!state.dragging && movement > 10) {\n const args = dispatchDragEvent(editor, 'dragstart', state.element, state.dataTransfer, e);\n if (isNonNullable(args.dataTransfer)) {\n state.dataTransfer = args.dataTransfer;\n }\n if (args.isDefaultPrevented()) {\n return;\n }\n state.dragging = true;\n editor.focus();\n }\n if (state.dragging) {\n const mouseEventOriginatedFromWithinTheEditor = e.currentTarget === editor.getDoc().documentElement;\n const targetPos = applyRelPos(state, calc(editor, e));\n appendGhostToBody(state.ghost, editor.getBody());\n moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY, e.clientY, e.clientX, editor.getContentAreaContainer(), editor.getWin(), state_, mouseEventOriginatedFromWithinTheEditor);\n throttledPlaceCaretAt.throttle(e.clientX, e.clientY);\n }\n });\n };\n const getRawTarget = selection => {\n const sel = selection.getSel();\n if (isNonNullable(sel)) {\n const rng = sel.getRangeAt(0);\n const startContainer = rng.startContainer;\n return isText$b(startContainer) ? startContainer.parentNode : startContainer;\n } else {\n return null;\n }\n };\n const drop = (state, editor) => e => {\n state.on(state => {\n var _a;\n state.intervalId.clear();\n if (state.dragging) {\n if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {\n const dropTarget = (_a = editor.getDoc().elementFromPoint(e.clientX, e.clientY)) !== null && _a !== void 0 ? _a : editor.getBody();\n const args = dispatchDragEvent(editor, 'drop', dropTarget, state.dataTransfer, e);\n if (!args.isDefaultPrevented()) {\n editor.undoManager.transact(() => {\n removeElementWithPadding(editor.dom, state.element);\n getHtmlData(state.dataTransfer).each(content => editor.insertContent(content));\n editor._selectionOverrides.hideFakeCaret();\n });\n }\n }\n dispatchDragEvent(editor, 'dragend', editor.getBody(), state.dataTransfer, e);\n }\n });\n removeDragState(state);\n };\n const stopDragging = (state, editor, e) => {\n state.on(state => {\n state.intervalId.clear();\n if (state.dragging) {\n e.fold(() => dispatchDragEvent(editor, 'dragend', state.element, state.dataTransfer), mouseEvent => dispatchDragEvent(editor, 'dragend', state.element, state.dataTransfer, mouseEvent));\n }\n });\n removeDragState(state);\n };\n const stop = (state, editor) => e => stopDragging(state, editor, Optional.some(e));\n const removeDragState = state => {\n state.on(state => {\n state.intervalId.clear();\n removeElement(state.ghost);\n });\n state.clear();\n };\n const bindFakeDragEvents = editor => {\n const state = value$2();\n const pageDom = DOMUtils.DOM;\n const rootDocument = document;\n const dragStartHandler = start(state, editor);\n const dragHandler = move(state, editor);\n const dropHandler = drop(state, editor);\n const dragEndHandler = stop(state, editor);\n editor.on('mousedown', dragStartHandler);\n editor.on('mousemove', dragHandler);\n editor.on('mouseup', dropHandler);\n pageDom.bind(rootDocument, 'mousemove', dragHandler);\n pageDom.bind(rootDocument, 'mouseup', dragEndHandler);\n editor.on('remove', () => {\n pageDom.unbind(rootDocument, 'mousemove', dragHandler);\n pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);\n });\n editor.on('keydown', e => {\n if (e.keyCode === VK.ESC) {\n stopDragging(state, editor, Optional.none());\n }\n });\n };\n const blockUnsupportedFileDrop = editor => {\n const preventFileDrop = e => {\n if (!e.isDefaultPrevented()) {\n const dataTransfer = e.dataTransfer;\n if (dataTransfer && (contains$2(dataTransfer.types, 'Files') || dataTransfer.files.length > 0)) {\n e.preventDefault();\n if (e.type === 'drop') {\n displayError(editor, 'Dropped file type is not supported');\n }\n }\n }\n };\n const preventFileDropIfUIElement = e => {\n if (isUIElement(editor, e.target)) {\n preventFileDrop(e);\n }\n };\n const setup = () => {\n const pageDom = DOMUtils.DOM;\n const dom = editor.dom;\n const doc = document;\n const editorRoot = editor.inline ? editor.getBody() : editor.getDoc();\n const eventNames = [\n 'drop',\n 'dragover'\n ];\n each$e(eventNames, name => {\n pageDom.bind(doc, name, preventFileDropIfUIElement);\n dom.bind(editorRoot, name, preventFileDrop);\n });\n editor.on('remove', () => {\n each$e(eventNames, name => {\n pageDom.unbind(doc, name, preventFileDropIfUIElement);\n dom.unbind(editorRoot, name, preventFileDrop);\n });\n });\n };\n editor.on('init', () => {\n Delay.setEditorTimeout(editor, setup, 0);\n });\n };\n const init$2 = editor => {\n bindFakeDragEvents(editor);\n if (shouldBlockUnsupportedDrop(editor)) {\n blockUnsupportedFileDrop(editor);\n }\n };\n\n const setup$4 = editor => {\n const renderFocusCaret = first$1(() => {\n if (!editor.removed && editor.getBody().contains(document.activeElement)) {\n const rng = editor.selection.getRng();\n if (rng.collapsed) {\n const caretRange = renderRangeCaret(editor, rng, false);\n editor.selection.setRng(caretRange);\n }\n }\n }, 0);\n editor.on('focus', () => {\n renderFocusCaret.throttle();\n });\n editor.on('blur', () => {\n renderFocusCaret.cancel();\n });\n };\n\n const setup$3 = editor => {\n editor.on('init', () => {\n editor.on('focusin', e => {\n const target = e.target;\n if (isMedia$2(target)) {\n const ceRoot = getContentEditableRoot$1(editor.getBody(), target);\n const node = isContentEditableFalse$b(ceRoot) ? ceRoot : target;\n if (editor.selection.getNode() !== node) {\n selectNode(editor, node).each(rng => editor.selection.setRng(rng));\n }\n }\n });\n });\n };\n\n const isContentEditableFalse = isContentEditableFalse$b;\n const getContentEditableRoot = (editor, node) => getContentEditableRoot$1(editor.getBody(), node);\n const SelectionOverrides = editor => {\n const selection = editor.selection, dom = editor.dom;\n const rootNode = editor.getBody();\n const fakeCaret = FakeCaret(editor, rootNode, dom.isBlock, () => hasFocus(editor));\n const realSelectionId = 'sel-' + dom.uniqueId();\n const elementSelectionAttr = 'data-mce-selected';\n let selectedElement;\n const isFakeSelectionElement = node => isNonNullable(node) && dom.hasClass(node, 'mce-offscreen-selection');\n const isFakeSelectionTargetElement = node => node !== rootNode && (isContentEditableFalse(node) || isMedia$2(node)) && dom.isChildOf(node, rootNode) && dom.isEditable(node.parentNode);\n const setRange = range => {\n if (range) {\n selection.setRng(range);\n }\n };\n const showCaret = (direction, node, before, scrollIntoView = true) => {\n const e = editor.dispatch('ShowCaret', {\n target: node,\n direction,\n before\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n if (scrollIntoView) {\n selection.scrollIntoView(node, direction === -1);\n }\n return fakeCaret.show(before, node);\n };\n const showBlockCaretContainer = blockCaretContainer => {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n selection.scrollIntoView(blockCaretContainer);\n }\n };\n const registerEvents = () => {\n editor.on('click', e => {\n if (!dom.isEditable(e.target)) {\n e.preventDefault();\n editor.focus();\n }\n });\n editor.on('blur NewBlock', removeElementSelection);\n editor.on('ResizeWindow FullscreenStateChanged', fakeCaret.reposition);\n editor.on('tap', e => {\n const targetElm = e.target;\n const contentEditableRoot = getContentEditableRoot(editor, targetElm);\n if (isContentEditableFalse(contentEditableRoot)) {\n e.preventDefault();\n selectNode(editor, contentEditableRoot).each(setElementSelection);\n } else if (isFakeSelectionTargetElement(targetElm)) {\n selectNode(editor, targetElm).each(setElementSelection);\n }\n }, true);\n editor.on('mousedown', e => {\n const targetElm = e.target;\n if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !dom.isChildOf(targetElm, rootNode)) {\n return;\n }\n if (!isXYInContentArea(editor, e.clientX, e.clientY)) {\n return;\n }\n removeElementSelection();\n hideFakeCaret();\n const closestContentEditable = getContentEditableRoot(editor, targetElm);\n if (isContentEditableFalse(closestContentEditable)) {\n e.preventDefault();\n selectNode(editor, closestContentEditable).each(setElementSelection);\n } else {\n closestFakeCaretCandidate(rootNode, e.clientX, e.clientY).each(caretInfo => {\n e.preventDefault();\n const range = showCaret(1, caretInfo.node, caretInfo.position === FakeCaretPosition.Before, false);\n setRange(range);\n if (isHTMLElement(closestContentEditable)) {\n closestContentEditable.focus();\n } else {\n editor.getBody().focus();\n }\n });\n }\n });\n editor.on('keypress', e => {\n if (VK.modifierPressed(e)) {\n return;\n }\n if (isContentEditableFalse(selection.getNode())) {\n e.preventDefault();\n }\n });\n editor.on('GetSelectionRange', e => {\n let rng = e.range;\n if (selectedElement) {\n if (!selectedElement.parentNode) {\n selectedElement = null;\n return;\n }\n rng = rng.cloneRange();\n rng.selectNode(selectedElement);\n e.range = rng;\n }\n });\n editor.on('SetSelectionRange', e => {\n e.range = normalizeVoidElementSelection(e.range);\n const rng = setElementSelection(e.range, e.forward);\n if (rng) {\n e.range = rng;\n }\n });\n const isPasteBin = node => isElement$6(node) && node.id === 'mcepastebin';\n editor.on('AfterSetSelectionRange', e => {\n const rng = e.range;\n const parent = rng.startContainer.parentElement;\n if (!isRangeInCaretContainer(rng) && !isPasteBin(parent)) {\n hideFakeCaret();\n }\n if (!isFakeSelectionElement(parent)) {\n removeElementSelection();\n }\n });\n init$2(editor);\n setup$4(editor);\n setup$3(editor);\n };\n const isWithinCaretContainer = node => isCaretContainer$2(node) || startsWithCaretContainer$1(node) || endsWithCaretContainer$1(node);\n const isRangeInCaretContainer = rng => isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);\n const normalizeVoidElementSelection = rng => {\n const voidElements = editor.schema.getVoidElements();\n const newRng = dom.createRng();\n const startContainer = rng.startContainer;\n const startOffset = rng.startOffset;\n const endContainer = rng.endContainer;\n const endOffset = rng.endOffset;\n if (has$2(voidElements, startContainer.nodeName.toLowerCase())) {\n if (startOffset === 0) {\n newRng.setStartBefore(startContainer);\n } else {\n newRng.setStartAfter(startContainer);\n }\n } else {\n newRng.setStart(startContainer, startOffset);\n }\n if (has$2(voidElements, endContainer.nodeName.toLowerCase())) {\n if (endOffset === 0) {\n newRng.setEndBefore(endContainer);\n } else {\n newRng.setEndAfter(endContainer);\n }\n } else {\n newRng.setEnd(endContainer, endOffset);\n }\n return newRng;\n };\n const setupOffscreenSelection = (node, targetClone) => {\n const body = SugarElement.fromDom(editor.getBody());\n const doc = editor.getDoc();\n const realSelectionContainer = descendant$1(body, '#' + realSelectionId).getOrThunk(() => {\n const newContainer = SugarElement.fromHtml('
    ', doc);\n set$3(newContainer, 'id', realSelectionId);\n append$1(body, newContainer);\n return newContainer;\n });\n const newRange = dom.createRng();\n empty(realSelectionContainer);\n append(realSelectionContainer, [\n SugarElement.fromText(nbsp, doc),\n SugarElement.fromDom(targetClone),\n SugarElement.fromText(nbsp, doc)\n ]);\n newRange.setStart(realSelectionContainer.dom.firstChild, 1);\n newRange.setEnd(realSelectionContainer.dom.lastChild, 0);\n setAll(realSelectionContainer, { top: dom.getPos(node, editor.getBody()).y + 'px' });\n focus$1(realSelectionContainer);\n const sel = selection.getSel();\n if (sel) {\n sel.removeAllRanges();\n sel.addRange(newRange);\n }\n return newRange;\n };\n const selectElement = elm => {\n const targetClone = elm.cloneNode(true);\n const e = editor.dispatch('ObjectSelected', {\n target: elm,\n targetClone\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n const range = setupOffscreenSelection(elm, e.targetClone);\n const nodeElm = SugarElement.fromDom(elm);\n each$e(descendants(SugarElement.fromDom(editor.getBody()), `*[${ elementSelectionAttr }]`), elm => {\n if (!eq(nodeElm, elm)) {\n remove$9(elm, elementSelectionAttr);\n }\n });\n if (!dom.getAttrib(elm, elementSelectionAttr)) {\n elm.setAttribute(elementSelectionAttr, '1');\n }\n selectedElement = elm;\n hideFakeCaret();\n return range;\n };\n const setElementSelection = (range, forward) => {\n if (!range) {\n return null;\n }\n if (range.collapsed) {\n if (!isRangeInCaretContainer(range)) {\n const dir = forward ? 1 : -1;\n const caretPosition = getNormalizedRangeEndPoint(dir, rootNode, range);\n const beforeNode = caretPosition.getNode(!forward);\n if (isNonNullable(beforeNode)) {\n if (isFakeCaretTarget(beforeNode)) {\n return showCaret(dir, beforeNode, forward ? !caretPosition.isAtEnd() : false, false);\n }\n if (isCaretContainerInline(beforeNode) && isContentEditableFalse$b(beforeNode.nextSibling)) {\n const rng = dom.createRng();\n rng.setStart(beforeNode, 0);\n rng.setEnd(beforeNode, 0);\n return rng;\n }\n }\n const afterNode = caretPosition.getNode(forward);\n if (isNonNullable(afterNode)) {\n if (isFakeCaretTarget(afterNode)) {\n return showCaret(dir, afterNode, forward ? false : !caretPosition.isAtEnd(), false);\n }\n if (isCaretContainerInline(afterNode) && isContentEditableFalse$b(afterNode.previousSibling)) {\n const rng = dom.createRng();\n rng.setStart(afterNode, 1);\n rng.setEnd(afterNode, 1);\n return rng;\n }\n }\n }\n return null;\n }\n let startContainer = range.startContainer;\n let startOffset = range.startOffset;\n const endOffset = range.endOffset;\n if (isText$b(startContainer) && startOffset === 0 && isContentEditableFalse(startContainer.parentNode)) {\n startContainer = startContainer.parentNode;\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (!isElement$6(startContainer)) {\n return null;\n }\n if (endOffset === startOffset + 1 && startContainer === range.endContainer) {\n const node = startContainer.childNodes[startOffset];\n if (isFakeSelectionTargetElement(node)) {\n return selectElement(node);\n }\n }\n return null;\n };\n const removeElementSelection = () => {\n if (selectedElement) {\n selectedElement.removeAttribute(elementSelectionAttr);\n }\n descendant$1(SugarElement.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$4);\n selectedElement = null;\n };\n const destroy = () => {\n fakeCaret.destroy();\n selectedElement = null;\n };\n const hideFakeCaret = () => {\n fakeCaret.hide();\n };\n if (!isRtc(editor)) {\n registerEvents();\n }\n return {\n showCaret,\n showBlockCaretContainer,\n hideFakeCaret,\n destroy\n };\n };\n\n const getNormalizedTextOffset = (container, offset) => {\n let normalizedOffset = offset;\n for (let node = container.previousSibling; isText$b(node); node = node.previousSibling) {\n normalizedOffset += node.data.length;\n }\n return normalizedOffset;\n };\n const generatePath = (dom, root, node, offset, normalized) => {\n if (isText$b(node) && (offset < 0 || offset > node.data.length)) {\n return [];\n }\n const p = normalized && isText$b(node) ? [getNormalizedTextOffset(node, offset)] : [offset];\n let current = node;\n while (current !== root && current.parentNode) {\n p.push(dom.nodeIndex(current, normalized));\n current = current.parentNode;\n }\n return current === root ? p.reverse() : [];\n };\n const generatePathRange = (dom, root, startNode, startOffset, endNode, endOffset, normalized = false) => {\n const start = generatePath(dom, root, startNode, startOffset, normalized);\n const end = generatePath(dom, root, endNode, endOffset, normalized);\n return {\n start,\n end\n };\n };\n const resolvePath = (root, path) => {\n const nodePath = path.slice();\n const offset = nodePath.pop();\n if (!isNumber(offset)) {\n return Optional.none();\n } else {\n const resolvedNode = foldl(nodePath, (optNode, index) => optNode.bind(node => Optional.from(node.childNodes[index])), Optional.some(root));\n return resolvedNode.bind(node => {\n if (isText$b(node) && (offset < 0 || offset > node.data.length)) {\n return Optional.none();\n } else {\n return Optional.some({\n node,\n offset\n });\n }\n });\n }\n };\n const resolvePathRange = (root, range) => resolvePath(root, range.start).bind(({\n node: startNode,\n offset: startOffset\n }) => resolvePath(root, range.end).map(({\n node: endNode,\n offset: endOffset\n }) => {\n const rng = document.createRange();\n rng.setStart(startNode, startOffset);\n rng.setEnd(endNode, endOffset);\n return rng;\n }));\n const generatePathRangeFromRange = (dom, root, range, normalized = false) => generatePathRange(dom, root, range.startContainer, range.startOffset, range.endContainer, range.endOffset, normalized);\n\n const cleanEmptyNodes = (dom, node, isRoot) => {\n if (node && dom.isEmpty(node) && !isRoot(node)) {\n const parent = node.parentNode;\n dom.remove(node, isText$b(node.firstChild) && isWhitespaceText(node.firstChild.data));\n cleanEmptyNodes(dom, parent, isRoot);\n }\n };\n const deleteRng = (dom, rng, isRoot, clean = true) => {\n const startParent = rng.startContainer.parentNode;\n const endParent = rng.endContainer.parentNode;\n rng.deleteContents();\n if (clean && !isRoot(rng.startContainer)) {\n if (isText$b(rng.startContainer) && rng.startContainer.data.length === 0) {\n dom.remove(rng.startContainer);\n }\n if (isText$b(rng.endContainer) && rng.endContainer.data.length === 0) {\n dom.remove(rng.endContainer);\n }\n cleanEmptyNodes(dom, startParent, isRoot);\n if (startParent !== endParent) {\n cleanEmptyNodes(dom, endParent, isRoot);\n }\n }\n };\n const getParentBlock = (editor, rng) => Optional.from(editor.dom.getParent(rng.startContainer, editor.dom.isBlock));\n const resolveFromDynamicPatterns = (patternSet, block, beforeText) => {\n const dynamicPatterns = patternSet.dynamicPatternsLookup({\n text: beforeText,\n block\n });\n return {\n ...patternSet,\n blockPatterns: getBlockPatterns(dynamicPatterns).concat(patternSet.blockPatterns),\n inlinePatterns: getInlinePatterns(dynamicPatterns).concat(patternSet.inlinePatterns)\n };\n };\n const getBeforeText = (dom, block, node, offset) => {\n const rng = dom.createRng();\n rng.setStart(block, 0);\n rng.setEnd(node, offset);\n return rng.toString();\n };\n\n const newMarker = (dom, id) => dom.create('span', {\n 'data-mce-type': 'bookmark',\n id\n });\n const rangeFromMarker = (dom, marker) => {\n const rng = dom.createRng();\n rng.setStartAfter(marker.start);\n rng.setEndBefore(marker.end);\n return rng;\n };\n const createMarker = (dom, markerPrefix, pathRange) => {\n const rng = resolvePathRange(dom.getRoot(), pathRange).getOrDie('Unable to resolve path range');\n const startNode = rng.startContainer;\n const endNode = rng.endContainer;\n const textEnd = rng.endOffset === 0 ? endNode : endNode.splitText(rng.endOffset);\n const textStart = rng.startOffset === 0 ? startNode : startNode.splitText(rng.startOffset);\n const startParentNode = textStart.parentNode;\n const endParentNode = textEnd.parentNode;\n return {\n prefix: markerPrefix,\n end: endParentNode.insertBefore(newMarker(dom, markerPrefix + '-end'), textEnd),\n start: startParentNode.insertBefore(newMarker(dom, markerPrefix + '-start'), textStart)\n };\n };\n const removeMarker = (dom, marker, isRoot) => {\n cleanEmptyNodes(dom, dom.get(marker.prefix + '-end'), isRoot);\n cleanEmptyNodes(dom, dom.get(marker.prefix + '-start'), isRoot);\n };\n\n const isReplacementPattern = pattern => pattern.start.length === 0;\n const matchesPattern = patternContent => (element, offset) => {\n const text = element.data;\n const searchText = text.substring(0, offset);\n const startEndIndex = searchText.lastIndexOf(patternContent.charAt(patternContent.length - 1));\n const startIndex = searchText.lastIndexOf(patternContent);\n if (startIndex !== -1) {\n return startIndex + patternContent.length;\n } else if (startEndIndex !== -1) {\n return startEndIndex + 1;\n } else {\n return -1;\n }\n };\n const findPatternStartFromSpot = (dom, pattern, block, spot) => {\n const startPattern = pattern.start;\n const startSpot = repeatLeft(dom, spot.container, spot.offset, matchesPattern(startPattern), block);\n return startSpot.bind(spot => {\n var _a, _b;\n const startPatternIndex = (_b = (_a = block.textContent) === null || _a === void 0 ? void 0 : _a.indexOf(startPattern)) !== null && _b !== void 0 ? _b : -1;\n const isCompleteMatch = startPatternIndex !== -1 && spot.offset >= startPatternIndex + startPattern.length;\n if (isCompleteMatch) {\n const rng = dom.createRng();\n rng.setStart(spot.container, spot.offset - startPattern.length);\n rng.setEnd(spot.container, spot.offset);\n return Optional.some(rng);\n } else {\n const offset = spot.offset - startPattern.length;\n return scanLeft(spot.container, offset, block).map(nextSpot => {\n const rng = dom.createRng();\n rng.setStart(nextSpot.container, nextSpot.offset);\n rng.setEnd(spot.container, spot.offset);\n return rng;\n }).filter(rng => rng.toString() === startPattern).orThunk(() => findPatternStartFromSpot(dom, pattern, block, point(spot.container, 0)));\n }\n });\n };\n const findPatternStart = (dom, pattern, node, offset, block, requireGap = false) => {\n if (pattern.start.length === 0 && !requireGap) {\n const rng = dom.createRng();\n rng.setStart(node, offset);\n rng.setEnd(node, offset);\n return Optional.some(rng);\n }\n return textBefore(node, offset, block).bind(spot => {\n const start = findPatternStartFromSpot(dom, pattern, block, spot);\n return start.bind(startRange => {\n var _a;\n if (requireGap) {\n if (startRange.endContainer === spot.container && startRange.endOffset === spot.offset) {\n return Optional.none();\n } else if (spot.offset === 0 && ((_a = startRange.endContainer.textContent) === null || _a === void 0 ? void 0 : _a.length) === startRange.endOffset) {\n return Optional.none();\n }\n }\n return Optional.some(startRange);\n });\n });\n };\n const findPattern$3 = (editor, block, details, normalizedMatches) => {\n const dom = editor.dom;\n const root = dom.getRoot();\n const pattern = details.pattern;\n const endNode = details.position.container;\n const endOffset = details.position.offset;\n return scanLeft(endNode, endOffset - details.pattern.end.length, block).bind(spot => {\n const endPathRng = generatePathRange(dom, root, spot.container, spot.offset, endNode, endOffset, normalizedMatches);\n if (isReplacementPattern(pattern)) {\n return Optional.some({\n matches: [{\n pattern,\n startRng: endPathRng,\n endRng: endPathRng\n }],\n position: spot\n });\n } else {\n const resultsOpt = findPatternsRec(editor, details.remainingPatterns, spot.container, spot.offset, block, normalizedMatches);\n const results = resultsOpt.getOr({\n matches: [],\n position: spot\n });\n const pos = results.position;\n const start = findPatternStart(dom, pattern, pos.container, pos.offset, block, resultsOpt.isNone());\n return start.map(startRng => {\n const startPathRng = generatePathRangeFromRange(dom, root, startRng, normalizedMatches);\n return {\n matches: results.matches.concat([{\n pattern,\n startRng: startPathRng,\n endRng: endPathRng\n }]),\n position: point(startRng.startContainer, startRng.startOffset)\n };\n });\n }\n });\n };\n const findPatternsRec = (editor, patterns, node, offset, block, normalizedMatches) => {\n const dom = editor.dom;\n return textBefore(node, offset, dom.getRoot()).bind(endSpot => {\n const text = getBeforeText(dom, block, node, offset);\n for (let i = 0; i < patterns.length; i++) {\n const pattern = patterns[i];\n if (!endsWith(text, pattern.end)) {\n continue;\n }\n const patternsWithoutCurrent = patterns.slice();\n patternsWithoutCurrent.splice(i, 1);\n const result = findPattern$3(editor, block, {\n pattern,\n remainingPatterns: patternsWithoutCurrent,\n position: endSpot\n }, normalizedMatches);\n if (result.isNone() && offset > 0) {\n return findPatternsRec(editor, patterns, node, offset - 1, block, normalizedMatches);\n }\n if (result.isSome()) {\n return result;\n }\n }\n return Optional.none();\n });\n };\n const applyPattern$2 = (editor, pattern, patternRange) => {\n editor.selection.setRng(patternRange);\n if (pattern.type === 'inline-format') {\n each$e(pattern.format, format => {\n editor.formatter.apply(format);\n });\n } else {\n editor.execCommand(pattern.cmd, false, pattern.value);\n }\n };\n const applyReplacementPattern = (editor, pattern, marker, isRoot) => {\n const markerRange = rangeFromMarker(editor.dom, marker);\n deleteRng(editor.dom, markerRange, isRoot);\n applyPattern$2(editor, pattern, markerRange);\n };\n const applyPatternWithContent = (editor, pattern, startMarker, endMarker, isRoot) => {\n const dom = editor.dom;\n const markerEndRange = rangeFromMarker(dom, endMarker);\n const markerStartRange = rangeFromMarker(dom, startMarker);\n deleteRng(dom, markerStartRange, isRoot);\n deleteRng(dom, markerEndRange, isRoot);\n const patternMarker = {\n prefix: startMarker.prefix,\n start: startMarker.end,\n end: endMarker.start\n };\n const patternRange = rangeFromMarker(dom, patternMarker);\n applyPattern$2(editor, pattern, patternRange);\n };\n const addMarkers = (dom, matches) => {\n const markerPrefix = generate$1('mce_textpattern');\n const matchesWithEnds = foldr(matches, (acc, match) => {\n const endMarker = createMarker(dom, markerPrefix + `_end${ acc.length }`, match.endRng);\n return acc.concat([{\n ...match,\n endMarker\n }]);\n }, []);\n return foldr(matchesWithEnds, (acc, match) => {\n const idx = matchesWithEnds.length - acc.length - 1;\n const startMarker = isReplacementPattern(match.pattern) ? match.endMarker : createMarker(dom, markerPrefix + `_start${ idx }`, match.startRng);\n return acc.concat([{\n ...match,\n startMarker\n }]);\n }, []);\n };\n const sortPatterns$1 = patterns => sort(patterns, (a, b) => b.end.length - a.end.length);\n const getBestMatches = (matches, matchesWithSortedPatterns) => {\n const hasSameMatches = forall(matches, match => exists(matchesWithSortedPatterns, sortedMatch => match.pattern.start === sortedMatch.pattern.start && match.pattern.end === sortedMatch.pattern.end));\n if (matches.length === matchesWithSortedPatterns.length) {\n if (hasSameMatches) {\n return matches;\n } else {\n return matchesWithSortedPatterns;\n }\n }\n return matches.length > matchesWithSortedPatterns.length ? matches : matchesWithSortedPatterns;\n };\n const findPatterns$2 = (editor, block, node, offset, patternSet, normalizedMatches) => {\n const matches = findPatternsRec(editor, patternSet.inlinePatterns, node, offset, block, normalizedMatches).fold(() => [], result => result.matches);\n const matchesWithSortedPatterns = findPatternsRec(editor, sortPatterns$1(patternSet.inlinePatterns), node, offset, block, normalizedMatches).fold(() => [], result => result.matches);\n return getBestMatches(matches, matchesWithSortedPatterns);\n };\n const applyMatches$2 = (editor, matches) => {\n if (matches.length === 0) {\n return;\n }\n const dom = editor.dom;\n const bookmark = editor.selection.getBookmark();\n const matchesWithMarkers = addMarkers(dom, matches);\n each$e(matchesWithMarkers, match => {\n const block = dom.getParent(match.startMarker.start, dom.isBlock);\n const isRoot = node => node === block;\n if (isReplacementPattern(match.pattern)) {\n applyReplacementPattern(editor, match.pattern, match.endMarker, isRoot);\n } else {\n applyPatternWithContent(editor, match.pattern, match.startMarker, match.endMarker, isRoot);\n }\n removeMarker(dom, match.endMarker, isRoot);\n removeMarker(dom, match.startMarker, isRoot);\n });\n editor.selection.moveToBookmark(bookmark);\n };\n\n const stripPattern$1 = (dom, block, pattern) => {\n return textAfter(block, 0, block).map(spot => {\n const node = spot.container;\n scanRight(node, pattern.start.length, block).each(end => {\n const rng = dom.createRng();\n rng.setStart(node, 0);\n rng.setEnd(end.container, end.offset);\n deleteRng(dom, rng, e => e === block);\n });\n return node;\n });\n };\n const createApplyPattern = stripPattern => (editor, match) => {\n const dom = editor.dom;\n const pattern = match.pattern;\n const rng = resolvePathRange(dom.getRoot(), match.range).getOrDie('Unable to resolve path range');\n const isBlockFormatName = (name, formatter) => {\n const formatSet = formatter.get(name);\n return isArray$1(formatSet) && head(formatSet).exists(format => has$2(format, 'block'));\n };\n getParentBlock(editor, rng).each(block => {\n if (pattern.type === 'block-format') {\n if (isBlockFormatName(pattern.format, editor.formatter)) {\n editor.undoManager.transact(() => {\n stripPattern(editor.dom, block, pattern);\n editor.formatter.apply(pattern.format);\n });\n }\n } else if (pattern.type === 'block-command') {\n editor.undoManager.transact(() => {\n stripPattern(editor.dom, block, pattern);\n editor.execCommand(pattern.cmd, false, pattern.value);\n });\n }\n });\n return true;\n };\n const sortPatterns = patterns => sort(patterns, (a, b) => b.start.length - a.start.length);\n const findPattern$2 = predicate => (patterns, text) => {\n const sortedPatterns = sortPatterns(patterns);\n const nuText = text.replace(nbsp, ' ');\n return find$2(sortedPatterns, pattern => predicate(pattern, text, nuText));\n };\n const createFindPatterns = (findPattern, skipFullMatch) => (editor, block, patternSet, normalizedMatches, text) => {\n var _a;\n if (text === void 0) {\n text = (_a = block.textContent) !== null && _a !== void 0 ? _a : '';\n }\n const dom = editor.dom;\n const forcedRootBlock = getForcedRootBlock(editor);\n if (!dom.is(block, forcedRootBlock)) {\n return [];\n }\n return findPattern(patternSet.blockPatterns, text).map(pattern => {\n if (skipFullMatch && Tools.trim(text).length === pattern.start.length) {\n return [];\n }\n return [{\n pattern,\n range: generatePathRange(dom, dom.getRoot(), block, 0, block, 0, normalizedMatches)\n }];\n }).getOr([]);\n };\n\n const startsWithSingleSpace = s => /^\\s[^\\s]/.test(s);\n const stripPattern = (dom, block, pattern) => {\n stripPattern$1(dom, block, pattern).each(node => {\n const text = SugarElement.fromDom(node);\n const textContent = get$3(text);\n if (startsWithSingleSpace(textContent)) {\n set(text, textContent.slice(1));\n }\n });\n };\n const applyPattern$1 = createApplyPattern(stripPattern);\n const findPattern$1 = findPattern$2((pattern, text, nuText) => text.indexOf(pattern.start) === 0 || nuText.indexOf(pattern.start) === 0);\n const findPatterns$1 = createFindPatterns(findPattern$1, true);\n const getMatches$1 = (editor, patternSet) => {\n const rng = editor.selection.getRng();\n return getParentBlock(editor, rng).map(block => {\n var _a;\n const offset = Math.max(0, rng.startOffset);\n const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, (_a = block.textContent) !== null && _a !== void 0 ? _a : '');\n const inlineMatches = findPatterns$2(editor, block, rng.startContainer, offset, dynamicPatternSet, true);\n const blockMatches = findPatterns$1(editor, block, dynamicPatternSet, true);\n return {\n inlineMatches,\n blockMatches\n };\n }).filter(({inlineMatches, blockMatches}) => blockMatches.length > 0 || inlineMatches.length > 0);\n };\n const applyMatches$1 = (editor, matches) => {\n if (matches.length === 0) {\n return;\n }\n const bookmark = editor.selection.getBookmark();\n each$e(matches, match => applyPattern$1(editor, match));\n editor.selection.moveToBookmark(bookmark);\n };\n\n const applyPattern = createApplyPattern(stripPattern$1);\n const findPattern = findPattern$2((pattern, text, nuText) => text === pattern.start || nuText === pattern.start);\n const findPatterns = createFindPatterns(findPattern, false);\n const getMatches = (editor, patternSet) => {\n const rng = editor.selection.getRng();\n return getParentBlock(editor, rng).map(block => {\n const offset = Math.max(0, rng.startOffset);\n const beforeText = getBeforeText(editor.dom, block, rng.startContainer, offset);\n const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, beforeText);\n return findPatterns(editor, block, dynamicPatternSet, false, beforeText);\n }).filter(matches => matches.length > 0);\n };\n const applyMatches = (editor, matches) => {\n each$e(matches, match => applyPattern(editor, match));\n };\n\n const handleEnter = (editor, patternSet) => getMatches$1(editor, patternSet).fold(never, ({inlineMatches, blockMatches}) => {\n editor.undoManager.add();\n editor.undoManager.extra(() => {\n editor.execCommand('mceInsertNewLine');\n }, () => {\n insert$5(editor);\n applyMatches$2(editor, inlineMatches);\n applyMatches$1(editor, blockMatches);\n const range = editor.selection.getRng();\n const spot = textBefore(range.startContainer, range.startOffset, editor.dom.getRoot());\n editor.execCommand('mceInsertNewLine');\n spot.each(s => {\n const node = s.container;\n if (node.data.charAt(s.offset - 1) === zeroWidth) {\n node.deleteData(s.offset - 1, 1);\n cleanEmptyNodes(editor.dom, node.parentNode, e => e === editor.dom.getRoot());\n }\n });\n });\n return true;\n });\n const handleInlineKey = (editor, patternSet) => {\n const rng = editor.selection.getRng();\n getParentBlock(editor, rng).map(block => {\n const offset = Math.max(0, rng.startOffset - 1);\n const beforeText = getBeforeText(editor.dom, block, rng.startContainer, offset);\n const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, beforeText);\n const inlineMatches = findPatterns$2(editor, block, rng.startContainer, offset, dynamicPatternSet, false);\n if (inlineMatches.length > 0) {\n editor.undoManager.transact(() => {\n applyMatches$2(editor, inlineMatches);\n });\n }\n });\n };\n const handleBlockPatternOnSpace = (editor, patternSet) => getMatches(editor, patternSet).fold(never, matches => {\n editor.undoManager.transact(() => {\n applyMatches(editor, matches);\n });\n return true;\n });\n const checkKeyEvent = (codes, event, predicate) => {\n for (let i = 0; i < codes.length; i++) {\n if (predicate(codes[i], event)) {\n return true;\n }\n }\n return false;\n };\n const checkKeyCode = (codes, event) => checkKeyEvent(codes, event, (code, event) => {\n return code === event.keyCode && !VK.modifierPressed(event);\n });\n const checkCharCode = (chars, event) => checkKeyEvent(chars, event, (chr, event) => {\n return chr.charCodeAt(0) === event.charCode;\n });\n\n const setup$2 = editor => {\n const charCodes = [\n ',',\n '.',\n ';',\n ':',\n '!',\n '?'\n ];\n const keyCodes = [32];\n const getPatternSet = () => createPatternSet(getTextPatterns(editor).filter(pattern => {\n if (pattern.type === 'inline-command' || pattern.type === 'block-command') {\n return editor.queryCommandSupported(pattern.cmd);\n }\n return true;\n }), getTextPatternsLookup(editor));\n const hasDynamicPatterns = () => hasTextPatternsLookup(editor);\n editor.on('keydown', e => {\n if (e.keyCode === 13 && !VK.modifierPressed(e) && editor.selection.isCollapsed() && editor.selection.isEditable()) {\n const patternSet = filterByTrigger(getPatternSet(), 'enter');\n const hasPatterns = patternSet.inlinePatterns.length > 0 || patternSet.blockPatterns.length > 0 || hasDynamicPatterns();\n if (hasPatterns && handleEnter(editor, patternSet)) {\n e.preventDefault();\n }\n }\n }, true);\n editor.on('keydown', e => {\n if (e.keyCode === 32 && editor.selection.isCollapsed() && editor.selection.isEditable()) {\n const patternSet = filterByTrigger(getPatternSet(), 'space');\n const hasPatterns = patternSet.blockPatterns.length > 0 || hasDynamicPatterns();\n if (hasPatterns && handleBlockPatternOnSpace(editor, patternSet)) {\n e.preventDefault();\n }\n }\n }, true);\n const handleInlineTrigger = () => {\n if (editor.selection.isCollapsed() && editor.selection.isEditable()) {\n const patternSet = filterByTrigger(getPatternSet(), 'space');\n const hasPatterns = patternSet.inlinePatterns.length > 0 || hasDynamicPatterns();\n if (hasPatterns) {\n handleInlineKey(editor, patternSet);\n }\n }\n };\n editor.on('keyup', e => {\n if (checkKeyCode(keyCodes, e)) {\n handleInlineTrigger();\n }\n });\n editor.on('keypress', e => {\n if (checkCharCode(charCodes, e)) {\n Delay.setEditorTimeout(editor, handleInlineTrigger);\n }\n });\n };\n\n const setup$1 = editor => {\n setup$2(editor);\n };\n\n const Quirks = editor => {\n const each = Tools.each;\n const BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, parser = editor.parser;\n const browser = Env.browser;\n const isGecko = browser.isFirefox();\n const isWebKit = browser.isChromium() || browser.isSafari();\n const isiOS = Env.deviceType.isiPhone() || Env.deviceType.isiPad();\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n const setEditorCommandState = (cmd, state) => {\n try {\n editor.getDoc().execCommand(cmd, false, String(state));\n } catch (ex) {\n }\n };\n const isDefaultPrevented = e => {\n return e.isDefaultPrevented();\n };\n const emptyEditorWhenDeleting = () => {\n const serializeRng = rng => {\n const body = dom.create('body');\n const contents = rng.cloneContents();\n body.appendChild(contents);\n return selection.serializer.serialize(body, { format: 'html' });\n };\n const allContentsSelected = rng => {\n const selection = serializeRng(rng);\n const allRng = dom.createRng();\n allRng.selectNode(editor.getBody());\n const allSelection = serializeRng(allRng);\n return selection === allSelection;\n };\n editor.on('keydown', e => {\n const keyCode = e.keyCode;\n if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE) && editor.selection.isEditable()) {\n const isCollapsed = editor.selection.isCollapsed();\n const body = editor.getBody();\n if (isCollapsed && !isEmptyNode(editor.schema, body)) {\n return;\n }\n if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\n return;\n }\n e.preventDefault();\n editor.setContent('');\n if (body.firstChild && dom.isBlock(body.firstChild)) {\n editor.selection.setCursorLocation(body.firstChild, 0);\n } else {\n editor.selection.setCursorLocation(body, 0);\n }\n editor.nodeChanged();\n }\n });\n };\n const selectAll = () => {\n editor.shortcuts.add('meta+a', null, 'SelectAll');\n };\n const documentElementEditingFocus = () => {\n if (!editor.inline) {\n dom.bind(editor.getDoc(), 'mousedown mouseup', e => {\n let rng;\n if (e.target === editor.getDoc().documentElement) {\n rng = selection.getRng();\n editor.getBody().focus();\n if (e.type === 'mousedown') {\n if (isCaretContainer$2(rng.startContainer)) {\n return;\n }\n selection.placeCaretAt(e.clientX, e.clientY);\n } else {\n selection.setRng(rng);\n }\n }\n });\n }\n };\n const removeHrOnBackspace = () => {\n editor.on('keydown', e => {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (!editor.getBody().getElementsByTagName('hr').length) {\n return;\n }\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n const node = selection.getNode();\n const previousSibling = node.previousSibling;\n if (node.nodeName === 'HR') {\n dom.remove(node);\n e.preventDefault();\n return;\n }\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') {\n dom.remove(previousSibling);\n e.preventDefault();\n }\n }\n }\n });\n };\n const focusBody = () => {\n if (!Range.prototype.getClientRects) {\n editor.on('mousedown', e => {\n if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {\n const body = editor.getBody();\n body.blur();\n Delay.setEditorTimeout(editor, () => {\n body.focus();\n });\n }\n });\n }\n };\n const selectControlElements = () => {\n const visualAidsAnchorClass = getVisualAidsAnchorClass(editor);\n editor.on('click', e => {\n const target = e.target;\n if (/^(IMG|HR)$/.test(target.nodeName) && dom.isEditable(target)) {\n e.preventDefault();\n editor.selection.select(target);\n editor.nodeChanged();\n }\n if (target.nodeName === 'A' && dom.hasClass(target, visualAidsAnchorClass) && target.childNodes.length === 0 && dom.isEditable(target.parentNode)) {\n e.preventDefault();\n selection.select(target);\n }\n });\n };\n const removeStylesWhenDeletingAcrossBlockElements = () => {\n const getAttributeApplyFunction = () => {\n const template = dom.getAttribs(selection.getStart().cloneNode(false));\n return () => {\n const target = selection.getStart();\n if (target !== editor.getBody()) {\n dom.setAttrib(target, 'style', null);\n each(template, attr => {\n target.setAttributeNode(attr.cloneNode(true));\n });\n }\n };\n };\n const isSelectionAcrossElements = () => {\n return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock);\n };\n editor.on('keypress', e => {\n let applyAttributes;\n if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) {\n applyAttributes = getAttributeApplyFunction();\n editor.getDoc().execCommand('delete', false);\n applyAttributes();\n e.preventDefault();\n return false;\n } else {\n return true;\n }\n });\n dom.bind(editor.getDoc(), 'cut', e => {\n if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\n const applyAttributes = getAttributeApplyFunction();\n Delay.setEditorTimeout(editor, () => {\n applyAttributes();\n });\n }\n });\n };\n const disableBackspaceIntoATable = () => {\n editor.on('keydown', e => {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n const previousSibling = selection.getNode().previousSibling;\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') {\n e.preventDefault();\n return false;\n }\n }\n }\n return true;\n });\n };\n const removeBlockQuoteOnBackSpace = () => {\n editor.on('keydown', e => {\n if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) {\n return;\n }\n let rng = selection.getRng();\n const container = rng.startContainer;\n const offset = rng.startOffset;\n const root = dom.getRoot();\n let parent = container;\n if (!rng.collapsed || offset !== 0) {\n return;\n }\n while (parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) {\n parent = parent.parentNode;\n }\n if (parent.nodeName === 'BLOCKQUOTE') {\n editor.formatter.toggle('blockquote', undefined, parent);\n rng = dom.createRng();\n rng.setStart(container, 0);\n rng.setEnd(container, 0);\n selection.setRng(rng);\n }\n });\n };\n const setGeckoEditingOptions = () => {\n const setOpts = () => {\n setEditorCommandState('StyleWithCSS', false);\n setEditorCommandState('enableInlineTableEditing', false);\n if (!getObjectResizing(editor)) {\n setEditorCommandState('enableObjectResizing', false);\n }\n };\n if (!isReadOnly$1(editor)) {\n editor.on('BeforeExecCommand mousedown', setOpts);\n }\n };\n const addBrAfterLastLinks = () => {\n const fixLinks = () => {\n each(dom.select('a:not([data-mce-block])'), node => {\n var _a;\n let parentNode = node.parentNode;\n const root = dom.getRoot();\n if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.lastChild) === node) {\n while (parentNode && !dom.isBlock(parentNode)) {\n if (((_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.lastChild) !== parentNode || parentNode === root) {\n return;\n }\n parentNode = parentNode.parentNode;\n }\n dom.add(parentNode, 'br', { 'data-mce-bogus': 1 });\n }\n });\n };\n editor.on('SetContent ExecCommand', e => {\n if (e.type === 'setcontent' || e.command === 'mceInsertLink') {\n fixLinks();\n }\n });\n };\n const setDefaultBlockType = () => {\n editor.on('init', () => {\n setEditorCommandState('DefaultParagraphSeparator', getForcedRootBlock(editor));\n });\n };\n const isAllContentSelected = editor => {\n const body = editor.getBody();\n const rng = editor.selection.getRng();\n return rng.startContainer === rng.endContainer && rng.startContainer === body && rng.startOffset === 0 && rng.endOffset === body.childNodes.length;\n };\n const normalizeSelection = () => {\n editor.on('keyup focusin mouseup', e => {\n if (!VK.modifierPressed(e) && !isAllContentSelected(editor)) {\n selection.normalize();\n }\n }, true);\n };\n const showBrokenImageIcon = () => {\n editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}');\n };\n const restoreFocusOnKeyDown = () => {\n if (!editor.inline) {\n editor.on('keydown', () => {\n if (document.activeElement === document.body) {\n editor.getWin().focus();\n }\n });\n }\n };\n const bodyHeight = () => {\n if (!editor.inline) {\n editor.contentStyles.push('body {min-height: 150px}');\n editor.on('click', e => {\n let rng;\n if (e.target.nodeName === 'HTML') {\n rng = editor.selection.getRng();\n editor.getBody().focus();\n editor.selection.setRng(rng);\n editor.selection.normalize();\n editor.nodeChanged();\n }\n });\n }\n };\n const blockCmdArrowNavigation = () => {\n if (isMac) {\n editor.on('keydown', e => {\n if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {\n e.preventDefault();\n const selection = editor.selection.getSel();\n selection.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');\n }\n });\n }\n };\n const tapLinksAndImages = () => {\n editor.on('click', e => {\n let elm = e.target;\n do {\n if (elm.tagName === 'A') {\n e.preventDefault();\n return;\n }\n } while (elm = elm.parentNode);\n });\n editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\n };\n const blockFormSubmitInsideEditor = () => {\n editor.on('init', () => {\n editor.dom.bind(editor.getBody(), 'submit', e => {\n e.preventDefault();\n });\n });\n };\n const removeAppleInterchangeBrs = () => {\n parser.addNodeFilter('br', nodes => {\n let i = nodes.length;\n while (i--) {\n if (nodes[i].attr('class') === 'Apple-interchange-newline') {\n nodes[i].remove();\n }\n }\n });\n };\n const refreshContentEditable = noop;\n const isHidden = () => {\n if (!isGecko || editor.removed) {\n return false;\n }\n const sel = editor.selection.getSel();\n return !sel || !sel.rangeCount || sel.rangeCount === 0;\n };\n const setupRtc = () => {\n if (isWebKit) {\n documentElementEditingFocus();\n selectControlElements();\n blockFormSubmitInsideEditor();\n selectAll();\n if (isiOS) {\n restoreFocusOnKeyDown();\n bodyHeight();\n tapLinksAndImages();\n }\n }\n if (isGecko) {\n focusBody();\n setGeckoEditingOptions();\n showBrokenImageIcon();\n blockCmdArrowNavigation();\n }\n };\n const setup = () => {\n removeBlockQuoteOnBackSpace();\n emptyEditorWhenDeleting();\n if (!Env.windowsPhone) {\n normalizeSelection();\n }\n if (isWebKit) {\n documentElementEditingFocus();\n selectControlElements();\n setDefaultBlockType();\n blockFormSubmitInsideEditor();\n disableBackspaceIntoATable();\n removeAppleInterchangeBrs();\n if (isiOS) {\n restoreFocusOnKeyDown();\n bodyHeight();\n tapLinksAndImages();\n } else {\n selectAll();\n }\n }\n if (isGecko) {\n removeHrOnBackspace();\n focusBody();\n removeStylesWhenDeletingAcrossBlockElements();\n setGeckoEditingOptions();\n addBrAfterLastLinks();\n showBrokenImageIcon();\n blockCmdArrowNavigation();\n disableBackspaceIntoATable();\n }\n };\n if (isRtc(editor)) {\n setupRtc();\n } else {\n setup();\n }\n return {\n refreshContentEditable,\n isHidden\n };\n };\n\n const isGplKey = key => key.toLowerCase() === 'gpl';\n const isValidGeneratedKey = key => key.length >= 64 && key.length <= 255;\n const validateLicenseKey = key => isGplKey(key) || isValidGeneratedKey(key) ? 'VALID' : 'INVALID';\n const validateEditorLicenseKey = editor => {\n const licenseKey = getLicenseKey(editor);\n const hasApiKey = isString(getApiKey(editor));\n if (!hasApiKey && (isUndefined(licenseKey) || validateLicenseKey(licenseKey) === 'INVALID')) {\n console.warn(`TinyMCE is running in evaluation mode. Provide a valid license key or add license_key: 'gpl' to the init config to agree to the open source license terms. Read more at https://www.tiny.cloud/license-key/`);\n }\n };\n\n const DOM$6 = DOMUtils.DOM;\n const appendStyle = (editor, text) => {\n const body = SugarElement.fromDom(editor.getBody());\n const container = getStyleContainer(getRootNode(body));\n const style = SugarElement.fromTag('style');\n set$3(style, 'type', 'text/css');\n append$1(style, SugarElement.fromText(text));\n append$1(container, style);\n editor.on('remove', () => {\n remove$4(style);\n });\n };\n const getRootName = editor => editor.inline ? editor.getElement().nodeName.toLowerCase() : undefined;\n const removeUndefined = obj => filter$4(obj, v => isUndefined(v) === false);\n const mkParserSettings = editor => {\n const getOption = editor.options.get;\n const blobCache = editor.editorUpload.blobCache;\n return removeUndefined({\n allow_conditional_comments: getOption('allow_conditional_comments'),\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls'),\n allow_html_in_named_anchor: getOption('allow_html_in_named_anchor'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_mathml_annotation_encodings: getOption('allow_mathml_annotation_encodings'),\n allow_unsafe_link_target: getOption('allow_unsafe_link_target'),\n convert_unsafe_embeds: getOption('convert_unsafe_embeds'),\n convert_fonts_to_spans: getOption('convert_fonts_to_spans'),\n fix_list_elements: getOption('fix_list_elements'),\n font_size_legacy_values: getOption('font_size_legacy_values'),\n forced_root_block: getOption('forced_root_block'),\n forced_root_block_attrs: getOption('forced_root_block_attrs'),\n preserve_cdata: getOption('preserve_cdata'),\n inline_styles: getOption('inline_styles'),\n root_name: getRootName(editor),\n sandbox_iframes: getOption('sandbox_iframes'),\n sandbox_iframes_exclusions: getSandboxIframesExclusions(editor),\n sanitize: getOption('xss_sanitization'),\n validate: true,\n blob_cache: blobCache,\n document: editor.getDoc()\n });\n };\n const mkSchemaSettings = editor => {\n const getOption = editor.options.get;\n return removeUndefined({\n custom_elements: getOption('custom_elements'),\n extended_valid_elements: getOption('extended_valid_elements'),\n invalid_elements: getOption('invalid_elements'),\n invalid_styles: getOption('invalid_styles'),\n schema: getOption('schema'),\n valid_children: getOption('valid_children'),\n valid_classes: getOption('valid_classes'),\n valid_elements: getOption('valid_elements'),\n valid_styles: getOption('valid_styles'),\n verify_html: getOption('verify_html'),\n padd_empty_block_inline_children: getOption('format_empty_lines')\n });\n };\n const mkSerializerSettings = editor => {\n const getOption = editor.options.get;\n return {\n ...mkParserSettings(editor),\n ...mkSchemaSettings(editor),\n ...removeUndefined({\n remove_trailing_brs: getOption('remove_trailing_brs'),\n pad_empty_with_br: getOption('pad_empty_with_br'),\n url_converter: getOption('url_converter'),\n url_converter_scope: getOption('url_converter_scope'),\n element_format: getOption('element_format'),\n entities: getOption('entities'),\n entity_encoding: getOption('entity_encoding'),\n indent: getOption('indent'),\n indent_after: getOption('indent_after'),\n indent_before: getOption('indent_before')\n })\n };\n };\n const createParser = editor => {\n const parser = DomParser(mkParserSettings(editor), editor.schema);\n parser.addAttributeFilter('src,href,style,tabindex', (nodes, name) => {\n const dom = editor.dom;\n const internalName = 'data-mce-' + name;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n let value = node.attr(name);\n if (value && !node.attr(internalName)) {\n if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {\n continue;\n }\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n if (!value.length) {\n value = null;\n }\n node.attr(internalName, value);\n node.attr(name, value);\n } else if (name === 'tabindex') {\n node.attr(internalName, value);\n node.attr(name, null);\n } else {\n node.attr(internalName, editor.convertURL(value, name, node.name));\n }\n }\n }\n });\n parser.addNodeFilter('script', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const type = node.attr('type') || 'no/type';\n if (type.indexOf('mce-') !== 0) {\n node.attr('type', 'mce-' + type);\n }\n }\n });\n if (shouldPreserveCData(editor)) {\n parser.addNodeFilter('#cdata', nodes => {\n var _a;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n node.type = 8;\n node.name = '#comment';\n node.value = '[CDATA[' + editor.dom.encode((_a = node.value) !== null && _a !== void 0 ? _a : '') + ']]';\n }\n });\n }\n parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', nodes => {\n let i = nodes.length;\n const nonEmptyElements = editor.schema.getNonEmptyElements();\n while (i--) {\n const node = nodes[i];\n if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) {\n node.append(new AstNode('br', 1));\n }\n }\n });\n return parser;\n };\n const autoFocus = editor => {\n const autoFocus = getAutoFocus(editor);\n if (autoFocus) {\n Delay.setEditorTimeout(editor, () => {\n let focusEditor;\n if (autoFocus === true) {\n focusEditor = editor;\n } else {\n focusEditor = editor.editorManager.get(autoFocus);\n }\n if (focusEditor && !focusEditor.destroyed) {\n focusEditor.focus();\n focusEditor.selection.scrollIntoView();\n }\n }, 100);\n }\n };\n const moveSelectionToFirstCaretPosition = editor => {\n const root = editor.dom.getRoot();\n if (!editor.inline && (!hasAnyRanges(editor) || editor.selection.getStart(true) === root)) {\n firstPositionIn(root).each(pos => {\n const node = pos.getNode();\n const caretPos = isTable$2(node) ? firstPositionIn(node).getOr(pos) : pos;\n editor.selection.setRng(caretPos.toRange());\n });\n }\n };\n const initEditor = editor => {\n editor.bindPendingEventDelegates();\n editor.initialized = true;\n fireInit(editor);\n editor.focus(true);\n moveSelectionToFirstCaretPosition(editor);\n editor.nodeChanged({ initial: true });\n const initInstanceCallback = getInitInstanceCallback(editor);\n if (isFunction(initInstanceCallback)) {\n initInstanceCallback.call(editor, editor);\n }\n autoFocus(editor);\n };\n const getStyleSheetLoader$1 = editor => editor.inline ? editor.ui.styleSheetLoader : editor.dom.styleSheetLoader;\n const makeStylesheetLoadingPromises = (editor, css, framedFonts) => {\n const {\n pass: bundledCss,\n fail: normalCss\n } = partition$2(css, name => tinymce.Resource.has(toContentSkinResourceName(name)));\n const bundledPromises = bundledCss.map(url => {\n const css = tinymce.Resource.get(toContentSkinResourceName(url));\n if (isString(css)) {\n return Promise.resolve(getStyleSheetLoader$1(editor).loadRawCss(url, css));\n }\n return Promise.resolve();\n });\n const promises = [\n ...bundledPromises,\n getStyleSheetLoader$1(editor).loadAll(normalCss)\n ];\n if (editor.inline) {\n return promises;\n } else {\n return promises.concat([editor.ui.styleSheetLoader.loadAll(framedFonts)]);\n }\n };\n const loadContentCss = editor => {\n const styleSheetLoader = getStyleSheetLoader$1(editor);\n const fontCss = getFontCss(editor);\n const css = editor.contentCSS;\n const removeCss = () => {\n styleSheetLoader.unloadAll(css);\n if (!editor.inline) {\n editor.ui.styleSheetLoader.unloadAll(fontCss);\n }\n };\n const loaded = () => {\n if (editor.removed) {\n removeCss();\n } else {\n editor.on('remove', removeCss);\n }\n };\n if (editor.contentStyles.length > 0) {\n let contentCssText = '';\n Tools.each(editor.contentStyles, style => {\n contentCssText += style + '\\r\\n';\n });\n editor.dom.addStyle(contentCssText);\n }\n const allStylesheets = Promise.all(makeStylesheetLoadingPromises(editor, css, fontCss)).then(loaded).catch(loaded);\n const contentStyle = getContentStyle(editor);\n if (contentStyle) {\n appendStyle(editor, contentStyle);\n }\n return allStylesheets;\n };\n const preInit = editor => {\n const doc = editor.getDoc(), body = editor.getBody();\n firePreInit(editor);\n if (!shouldBrowserSpellcheck(editor)) {\n doc.body.spellcheck = false;\n DOM$6.setAttrib(body, 'spellcheck', 'false');\n }\n editor.quirks = Quirks(editor);\n firePostRender(editor);\n const directionality = getDirectionality(editor);\n if (directionality !== undefined) {\n body.dir = directionality;\n }\n const protect = getProtect(editor);\n if (protect) {\n editor.on('BeforeSetContent', e => {\n Tools.each(protect, pattern => {\n e.content = e.content.replace(pattern, str => {\n return '';\n });\n });\n });\n }\n editor.on('SetContent', () => {\n editor.addVisual(editor.getBody());\n });\n editor.on('compositionstart compositionend', e => {\n editor.composing = e.type === 'compositionstart';\n });\n };\n const loadInitialContent = editor => {\n if (!isRtc(editor)) {\n editor.load({\n initial: true,\n format: 'html'\n });\n }\n editor.startContent = editor.getContent({ format: 'raw' });\n };\n const initEditorWithInitialContent = editor => {\n if (editor.removed !== true) {\n loadInitialContent(editor);\n initEditor(editor);\n }\n };\n const startProgress = editor => {\n let canceled = false;\n const progressTimeout = setTimeout(() => {\n if (!canceled) {\n editor.setProgressState(true);\n }\n }, 500);\n return () => {\n clearTimeout(progressTimeout);\n canceled = true;\n editor.setProgressState(false);\n };\n };\n const contentBodyLoaded = editor => {\n const targetElm = editor.getElement();\n let doc = editor.getDoc();\n if (editor.inline) {\n DOM$6.addClass(targetElm, 'mce-content-body');\n editor.contentDocument = doc = document;\n editor.contentWindow = window;\n editor.bodyElement = targetElm;\n editor.contentAreaContainer = targetElm;\n }\n const body = editor.getBody();\n body.disabled = true;\n editor.readonly = isReadOnly$1(editor);\n editor._editableRoot = hasEditableRoot$1(editor);\n if (editor.hasEditableRoot()) {\n if (editor.inline && DOM$6.getStyle(body, 'position', true) === 'static') {\n body.style.position = 'relative';\n }\n body.contentEditable = 'true';\n }\n body.disabled = false;\n editor.editorUpload = EditorUpload(editor);\n editor.schema = Schema(mkSchemaSettings(editor));\n editor.dom = DOMUtils(doc, {\n keep_values: true,\n url_converter: editor.convertURL,\n url_converter_scope: editor,\n update_styles: true,\n root_element: editor.inline ? editor.getBody() : null,\n collect: editor.inline,\n schema: editor.schema,\n contentCssCors: shouldUseContentCssCors(editor),\n referrerPolicy: getReferrerPolicy(editor),\n onSetAttrib: e => {\n editor.dispatch('SetAttrib', e);\n }\n });\n editor.parser = createParser(editor);\n editor.serializer = DomSerializer(mkSerializerSettings(editor), editor);\n editor.selection = EditorSelection(editor.dom, editor.getWin(), editor.serializer, editor);\n editor.annotator = Annotator(editor);\n editor.formatter = Formatter(editor);\n editor.undoManager = UndoManager(editor);\n editor._nodeChangeDispatcher = new NodeChange(editor);\n editor._selectionOverrides = SelectionOverrides(editor);\n setup$p(editor);\n setup$6(editor);\n setup$n(editor);\n if (!isRtc(editor)) {\n setup$5(editor);\n setup$1(editor);\n }\n const caret = setup$b(editor);\n setup$q(editor, caret);\n setup$o(editor);\n setup$r(editor);\n setup$7(editor);\n const setupRtcThunk = setup$t(editor);\n preInit(editor);\n validateEditorLicenseKey(editor);\n setupRtcThunk.fold(() => {\n const cancelProgress = startProgress(editor);\n loadContentCss(editor).then(() => {\n initEditorWithInitialContent(editor);\n cancelProgress();\n });\n }, setupRtc => {\n editor.setProgressState(true);\n loadContentCss(editor).then(() => {\n setupRtc().then(_rtcMode => {\n editor.setProgressState(false);\n initEditorWithInitialContent(editor);\n bindEvents(editor);\n }, err => {\n editor.notificationManager.open({\n type: 'error',\n text: String(err)\n });\n initEditorWithInitialContent(editor);\n bindEvents(editor);\n });\n });\n });\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$2(element, event, filter, handler);\n\n const DOM$5 = DOMUtils.DOM;\n const createIframeElement = (id, title, customAttrs, tabindex) => {\n const iframe = SugarElement.fromTag('iframe');\n tabindex.each(t => set$3(iframe, 'tabindex', t));\n setAll$1(iframe, customAttrs);\n setAll$1(iframe, {\n id: id + '_ifr',\n frameBorder: '0',\n allowTransparency: 'true',\n title\n });\n add$2(iframe, 'tox-edit-area__iframe');\n return iframe;\n };\n const getIframeHtml = editor => {\n let iframeHTML = getDocType(editor) + '';\n if (getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {\n iframeHTML += '';\n }\n iframeHTML += '';\n const bodyId = getBodyId(editor);\n const bodyClass = getBodyClass(editor);\n const translatedAriaText = editor.translate(getIframeAriaText(editor));\n if (getContentSecurityPolicy(editor)) {\n iframeHTML += '';\n }\n iframeHTML += '' + `` + '
    ' + '';\n return iframeHTML;\n };\n const createIframe = (editor, boxInfo) => {\n const iframeTitle = Env.browser.isFirefox() ? getIframeAriaText(editor) : 'Rich Text Area';\n const translatedTitle = editor.translate(iframeTitle);\n const tabindex = getOpt(SugarElement.fromDom(editor.getElement()), 'tabindex').bind(toInt);\n const ifr = createIframeElement(editor.id, translatedTitle, getIframeAttrs(editor), tabindex).dom;\n ifr.onload = () => {\n ifr.onload = null;\n editor.dispatch('load');\n };\n editor.contentAreaContainer = boxInfo.iframeContainer;\n editor.iframeElement = ifr;\n editor.iframeHTML = getIframeHtml(editor);\n DOM$5.add(boxInfo.iframeContainer, ifr);\n };\n const setupIframeBody = editor => {\n const iframe = editor.iframeElement;\n const ready = () => {\n editor.contentDocument = iframe.contentDocument;\n contentBodyLoaded(editor);\n };\n if (shouldUseDocumentWrite(editor) || Env.browser.isFirefox()) {\n const doc = editor.getDoc();\n doc.open();\n doc.write(editor.iframeHTML);\n doc.close();\n ready();\n } else {\n const binder = bind(SugarElement.fromDom(iframe), 'load', () => {\n binder.unbind();\n ready();\n });\n iframe.srcdoc = editor.iframeHTML;\n }\n };\n const init$1 = (editor, boxInfo) => {\n createIframe(editor, boxInfo);\n if (boxInfo.editorContainer) {\n boxInfo.editorContainer.style.display = editor.orgDisplay;\n editor.hidden = DOM$5.isHidden(boxInfo.editorContainer);\n }\n editor.getElement().style.display = 'none';\n DOM$5.setAttrib(editor.id, 'aria-hidden', 'true');\n editor.getElement().style.visibility = editor.orgVisibility;\n setupIframeBody(editor);\n };\n\n const DOM$4 = DOMUtils.DOM;\n const initPlugin = (editor, initializedPlugins, plugin) => {\n const Plugin = PluginManager.get(plugin);\n const pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\\/$/, '');\n plugin = Tools.trim(plugin);\n if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) {\n if (editor.plugins[plugin]) {\n return;\n }\n try {\n const pluginInstance = Plugin(editor, pluginUrl) || {};\n editor.plugins[plugin] = pluginInstance;\n if (isFunction(pluginInstance.init)) {\n pluginInstance.init(editor, pluginUrl);\n initializedPlugins.push(plugin);\n }\n } catch (e) {\n pluginInitError(editor, plugin, e);\n }\n }\n };\n const trimLegacyPrefix = name => {\n return name.replace(/^\\-/, '');\n };\n const initPlugins = editor => {\n const initializedPlugins = [];\n each$e(getPlugins(editor), name => {\n initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));\n });\n };\n const initIcons = editor => {\n const iconPackName = Tools.trim(getIconPackName(editor));\n const currentIcons = editor.ui.registry.getAll().icons;\n const loadIcons = {\n ...IconManager.get('default').icons,\n ...IconManager.get(iconPackName).icons\n };\n each$d(loadIcons, (svgData, icon) => {\n if (!has$2(currentIcons, icon)) {\n editor.ui.registry.addIcon(icon, svgData);\n }\n });\n };\n const initTheme = editor => {\n const theme = getTheme(editor);\n if (isString(theme)) {\n const Theme = ThemeManager.get(theme);\n editor.theme = Theme(editor, ThemeManager.urls[theme]) || {};\n if (isFunction(editor.theme.init)) {\n editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\\/$/, ''));\n }\n } else {\n editor.theme = {};\n }\n };\n const initModel = editor => {\n const model = getModel(editor);\n const Model = ModelManager.get(model);\n editor.model = Model(editor, ModelManager.urls[model]);\n };\n const renderFromLoadedTheme = editor => {\n const render = editor.theme.renderUI;\n return render ? render() : renderThemeFalse(editor);\n };\n const renderFromThemeFunc = editor => {\n const elm = editor.getElement();\n const theme = getTheme(editor);\n const info = theme(editor, elm);\n if (info.editorContainer.nodeType) {\n info.editorContainer.id = info.editorContainer.id || editor.id + '_parent';\n }\n if (info.iframeContainer && info.iframeContainer.nodeType) {\n info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer';\n }\n info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight;\n return info;\n };\n const createThemeFalseResult = (element, iframe) => {\n return {\n editorContainer: element,\n iframeContainer: iframe,\n api: {}\n };\n };\n const renderThemeFalseIframe = targetElement => {\n const iframeContainer = DOM$4.create('div');\n DOM$4.insertAfter(iframeContainer, targetElement);\n return createThemeFalseResult(iframeContainer, iframeContainer);\n };\n const renderThemeFalse = editor => {\n const targetElement = editor.getElement();\n return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement);\n };\n const renderThemeUi = editor => {\n const elm = editor.getElement();\n editor.orgDisplay = elm.style.display;\n if (isString(getTheme(editor))) {\n return renderFromLoadedTheme(editor);\n } else if (isFunction(getTheme(editor))) {\n return renderFromThemeFunc(editor);\n } else {\n return renderThemeFalse(editor);\n }\n };\n const augmentEditorUiApi = (editor, api) => {\n const uiApiFacade = {\n show: Optional.from(api.show).getOr(noop),\n hide: Optional.from(api.hide).getOr(noop),\n isEnabled: Optional.from(api.isEnabled).getOr(always),\n setEnabled: state => {\n const shouldSkip = state && editor.mode.get() === 'readonly';\n if (!shouldSkip) {\n Optional.from(api.setEnabled).each(f => f(state));\n }\n }\n };\n editor.ui = {\n ...editor.ui,\n ...uiApiFacade\n };\n };\n const init = async editor => {\n editor.dispatch('ScriptsLoaded');\n initIcons(editor);\n initTheme(editor);\n initModel(editor);\n initPlugins(editor);\n const renderInfo = await renderThemeUi(editor);\n augmentEditorUiApi(editor, Optional.from(renderInfo.api).getOr({}));\n editor.editorContainer = renderInfo.editorContainer;\n appendContentCssFromSettings(editor);\n if (editor.inline) {\n contentBodyLoaded(editor);\n } else {\n init$1(editor, {\n editorContainer: renderInfo.editorContainer,\n iframeContainer: renderInfo.iframeContainer\n });\n }\n };\n\n const DOM$3 = DOMUtils.DOM;\n const hasSkipLoadPrefix = name => name.charAt(0) === '-';\n const loadLanguage = (scriptLoader, editor) => {\n const languageCode = getLanguageCode(editor);\n const languageUrl = getLanguageUrl(editor);\n if (!I18n.hasCode(languageCode) && languageCode !== 'en') {\n const url = isNotEmpty(languageUrl) ? languageUrl : `${ editor.editorManager.baseURL }/langs/${ languageCode }.js`;\n scriptLoader.add(url).catch(() => {\n languageLoadError(editor, url, languageCode);\n });\n }\n };\n const loadTheme = (editor, suffix) => {\n const theme = getTheme(editor);\n if (isString(theme) && !hasSkipLoadPrefix(theme) && !has$2(ThemeManager.urls, theme)) {\n const themeUrl = getThemeUrl(editor);\n const url = themeUrl ? editor.documentBaseURI.toAbsolute(themeUrl) : `themes/${ theme }/theme${ suffix }.js`;\n ThemeManager.load(theme, url).catch(() => {\n themeLoadError(editor, url, theme);\n });\n }\n };\n const loadModel = (editor, suffix) => {\n const model = getModel(editor);\n if (model !== 'plugin' && !has$2(ModelManager.urls, model)) {\n const modelUrl = getModelUrl(editor);\n const url = isString(modelUrl) ? editor.documentBaseURI.toAbsolute(modelUrl) : `models/${ model }/model${ suffix }.js`;\n ModelManager.load(model, url).catch(() => {\n modelLoadError(editor, url, model);\n });\n }\n };\n const getIconsUrlMetaFromUrl = editor => Optional.from(getIconsUrl(editor)).filter(isNotEmpty).map(url => ({\n url,\n name: Optional.none()\n }));\n const getIconsUrlMetaFromName = (editor, name, suffix) => Optional.from(name).filter(name => isNotEmpty(name) && !IconManager.has(name)).map(name => ({\n url: `${ editor.editorManager.baseURL }/icons/${ name }/icons${ suffix }.js`,\n name: Optional.some(name)\n }));\n const loadIcons = (scriptLoader, editor, suffix) => {\n const defaultIconsUrl = getIconsUrlMetaFromName(editor, 'default', suffix);\n const customIconsUrl = getIconsUrlMetaFromUrl(editor).orThunk(() => getIconsUrlMetaFromName(editor, getIconPackName(editor), ''));\n each$e(cat([\n defaultIconsUrl,\n customIconsUrl\n ]), urlMeta => {\n scriptLoader.add(urlMeta.url).catch(() => {\n iconsLoadError(editor, urlMeta.url, urlMeta.name.getOrUndefined());\n });\n });\n };\n const loadPlugins = (editor, suffix) => {\n const loadPlugin = (name, url) => {\n PluginManager.load(name, url).catch(() => {\n pluginLoadError(editor, url, name);\n });\n };\n each$d(getExternalPlugins$1(editor), (url, name) => {\n loadPlugin(name, url);\n editor.options.set('plugins', getPlugins(editor).concat(name));\n });\n each$e(getPlugins(editor), plugin => {\n plugin = Tools.trim(plugin);\n if (plugin && !PluginManager.urls[plugin] && !hasSkipLoadPrefix(plugin)) {\n loadPlugin(plugin, `plugins/${ plugin }/plugin${ suffix }.js`);\n }\n });\n };\n const isThemeLoaded = editor => {\n const theme = getTheme(editor);\n return !isString(theme) || isNonNullable(ThemeManager.get(theme));\n };\n const isModelLoaded = editor => {\n const model = getModel(editor);\n return isNonNullable(ModelManager.get(model));\n };\n const loadScripts = (editor, suffix) => {\n const scriptLoader = ScriptLoader.ScriptLoader;\n const initEditor = () => {\n if (!editor.removed && isThemeLoaded(editor) && isModelLoaded(editor)) {\n init(editor);\n }\n };\n loadTheme(editor, suffix);\n loadModel(editor, suffix);\n loadLanguage(scriptLoader, editor);\n loadIcons(scriptLoader, editor, suffix);\n loadPlugins(editor, suffix);\n scriptLoader.loadQueue().then(initEditor, initEditor);\n };\n const getStyleSheetLoader = (element, editor) => instance.forElement(element, {\n contentCssCors: hasContentCssCors(editor),\n referrerPolicy: getReferrerPolicy(editor)\n });\n const render = editor => {\n const id = editor.id;\n I18n.setCode(getLanguageCode(editor));\n const readyHandler = () => {\n DOM$3.unbind(window, 'ready', readyHandler);\n editor.render();\n };\n if (!EventUtils.Event.domLoaded) {\n DOM$3.bind(window, 'ready', readyHandler);\n return;\n }\n if (!editor.getElement()) {\n return;\n }\n const element = SugarElement.fromDom(editor.getElement());\n const snapshot = clone$4(element);\n editor.on('remove', () => {\n eachr(element.dom.attributes, attr => remove$9(element, attr.name));\n setAll$1(element, snapshot);\n });\n editor.ui.styleSheetLoader = getStyleSheetLoader(element, editor);\n if (!isInline$1(editor)) {\n editor.orgVisibility = editor.getElement().style.visibility;\n editor.getElement().style.visibility = 'hidden';\n } else {\n editor.inline = true;\n }\n const form = editor.getElement().form || DOM$3.getParent(id, 'form');\n if (form) {\n editor.formElement = form;\n if (hasHiddenInput(editor) && !isTextareaOrInput(editor.getElement())) {\n DOM$3.insertAfter(DOM$3.create('input', {\n type: 'hidden',\n name: id\n }), id);\n editor.hasHiddenInput = true;\n }\n editor.formEventDelegate = e => {\n editor.dispatch(e.type, e);\n };\n DOM$3.bind(form, 'submit reset', editor.formEventDelegate);\n editor.on('reset', () => {\n editor.resetContent();\n });\n if (shouldPatchSubmit(editor) && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) {\n form._mceOldSubmit = form.submit;\n form.submit = () => {\n editor.editorManager.triggerSave();\n editor.setDirty(false);\n return form._mceOldSubmit(form);\n };\n }\n }\n editor.windowManager = WindowManager(editor);\n editor.notificationManager = NotificationManager(editor);\n if (isEncodingXml(editor)) {\n editor.on('GetContent', e => {\n if (e.save) {\n e.content = DOM$3.encode(e.content);\n }\n });\n }\n if (shouldAddFormSubmitTrigger(editor)) {\n editor.on('submit', () => {\n if (editor.initialized) {\n editor.save();\n }\n });\n }\n if (shouldAddUnloadTrigger(editor)) {\n editor._beforeUnload = () => {\n if (editor.initialized && !editor.destroyed && !editor.isHidden()) {\n editor.save({\n format: 'raw',\n no_events: true,\n set_dirty: false\n });\n }\n };\n editor.editorManager.on('BeforeUnload', editor._beforeUnload);\n }\n editor.editorManager.add(editor);\n loadScripts(editor, editor.suffix);\n };\n\n const setEditableRoot = (editor, state) => {\n if (editor._editableRoot !== state) {\n editor._editableRoot = state;\n editor.getBody().contentEditable = String(editor.hasEditableRoot());\n editor.nodeChanged();\n fireEditableRootStateChange(editor, state);\n }\n };\n const hasEditableRoot = editor => editor._editableRoot;\n\n const sectionResult = (sections, settings) => ({\n sections: constant(sections),\n options: constant(settings)\n });\n const deviceDetection = detect$1().deviceType;\n const isPhone = deviceDetection.isPhone();\n const isTablet = deviceDetection.isTablet();\n const normalizePlugins = plugins => {\n if (isNullable(plugins)) {\n return [];\n } else {\n const pluginNames = isArray$1(plugins) ? plugins : plugins.split(/[ ,]/);\n const trimmedPlugins = map$3(pluginNames, trim$4);\n return filter$5(trimmedPlugins, isNotEmpty);\n }\n };\n const extractSections = (keys, options) => {\n const result = bifilter(options, (value, key) => {\n return contains$2(keys, key);\n });\n return sectionResult(result.t, result.f);\n };\n const getSection = (sectionResult, name, defaults = {}) => {\n const sections = sectionResult.sections();\n const sectionOptions = get$a(sections, name).getOr({});\n return Tools.extend({}, defaults, sectionOptions);\n };\n const hasSection = (sectionResult, name) => {\n return has$2(sectionResult.sections(), name);\n };\n const getSectionConfig = (sectionResult, name) => {\n return hasSection(sectionResult, name) ? sectionResult.sections()[name] : {};\n };\n const getMobileOverrideOptions = (mobileOptions, isPhone) => {\n const defaultMobileOptions = {\n table_grid: false,\n object_resizing: false,\n resize: false,\n toolbar_mode: get$a(mobileOptions, 'toolbar_mode').getOr('scrolling'),\n toolbar_sticky: false\n };\n const defaultPhoneOptions = { menubar: false };\n return {\n ...defaultMobileOptions,\n ...isPhone ? defaultPhoneOptions : {}\n };\n };\n const getExternalPlugins = (overrideOptions, options) => {\n var _a;\n const userDefinedExternalPlugins = (_a = options.external_plugins) !== null && _a !== void 0 ? _a : {};\n if (overrideOptions && overrideOptions.external_plugins) {\n return Tools.extend({}, overrideOptions.external_plugins, userDefinedExternalPlugins);\n } else {\n return userDefinedExternalPlugins;\n }\n };\n const combinePlugins = (forcedPlugins, plugins) => [\n ...normalizePlugins(forcedPlugins),\n ...normalizePlugins(plugins)\n ];\n const getPlatformPlugins = (isMobileDevice, sectionResult, desktopPlugins, mobilePlugins) => {\n if (isMobileDevice && hasSection(sectionResult, 'mobile')) {\n return mobilePlugins;\n } else {\n return desktopPlugins;\n }\n };\n const processPlugins = (isMobileDevice, sectionResult, defaultOverrideOptions, options) => {\n const forcedPlugins = normalizePlugins(defaultOverrideOptions.forced_plugins);\n const desktopPlugins = normalizePlugins(options.plugins);\n const mobileConfig = getSectionConfig(sectionResult, 'mobile');\n const mobilePlugins = mobileConfig.plugins ? normalizePlugins(mobileConfig.plugins) : desktopPlugins;\n const platformPlugins = getPlatformPlugins(isMobileDevice, sectionResult, desktopPlugins, mobilePlugins);\n const combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);\n return Tools.extend(options, {\n forced_plugins: forcedPlugins,\n plugins: combinedPlugins\n });\n };\n const isOnMobile = (isMobileDevice, sectionResult) => {\n return isMobileDevice && hasSection(sectionResult, 'mobile');\n };\n const combineOptions = (isMobileDevice, isPhone, defaultOptions, defaultOverrideOptions, options) => {\n var _a;\n const deviceOverrideOptions = isMobileDevice ? { mobile: getMobileOverrideOptions((_a = options.mobile) !== null && _a !== void 0 ? _a : {}, isPhone) } : {};\n const sectionResult = extractSections(['mobile'], deepMerge(deviceOverrideOptions, options));\n const extendedOptions = Tools.extend(defaultOptions, defaultOverrideOptions, sectionResult.options(), isOnMobile(isMobileDevice, sectionResult) ? getSection(sectionResult, 'mobile') : {}, { external_plugins: getExternalPlugins(defaultOverrideOptions, sectionResult.options()) });\n return processPlugins(isMobileDevice, sectionResult, defaultOverrideOptions, extendedOptions);\n };\n const normalizeOptions = (defaultOverrideOptions, options) => {\n const copiedOptions = merge(options);\n return combineOptions(isPhone || isTablet, isPhone, copiedOptions, defaultOverrideOptions, copiedOptions);\n };\n\n const addVisual = (editor, elm) => addVisual$1(editor, elm);\n\n const registerExecCommands$2 = editor => {\n const toggleFormat = (name, value) => {\n editor.formatter.toggle(name, value);\n editor.nodeChanged();\n };\n const toggleAlign = align => () => {\n each$e('left,center,right,justify'.split(','), name => {\n if (align !== name) {\n editor.formatter.remove('align' + name);\n }\n });\n if (align !== 'none') {\n toggleFormat('align' + align);\n }\n };\n editor.editorCommands.addCommands({\n JustifyLeft: toggleAlign('left'),\n JustifyCenter: toggleAlign('center'),\n JustifyRight: toggleAlign('right'),\n JustifyFull: toggleAlign('justify'),\n JustifyNone: toggleAlign('none')\n });\n };\n const registerQueryStateCommands = editor => {\n const alignStates = name => () => {\n const selection = editor.selection;\n const nodes = selection.isCollapsed() ? [editor.dom.getParent(selection.getNode(), editor.dom.isBlock)] : selection.getSelectedBlocks();\n return exists(nodes, node => isNonNullable(editor.formatter.matchNode(node, name)));\n };\n editor.editorCommands.addCommands({\n JustifyLeft: alignStates('alignleft'),\n JustifyCenter: alignStates('aligncenter'),\n JustifyRight: alignStates('alignright'),\n JustifyFull: alignStates('alignjustify')\n }, 'state');\n };\n const registerCommands$a = editor => {\n registerExecCommands$2(editor);\n registerQueryStateCommands(editor);\n };\n\n const registerCommands$9 = editor => {\n editor.editorCommands.addCommands({\n 'Cut,Copy,Paste': command => {\n const doc = editor.getDoc();\n let failed;\n try {\n doc.execCommand(command);\n } catch (ex) {\n failed = true;\n }\n if (command === 'paste' && !doc.queryCommandEnabled(command)) {\n failed = true;\n }\n if (failed || !doc.queryCommandSupported(command)) {\n let msg = editor.translate(`Your browser doesn't support direct access to the clipboard. ` + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');\n if (Env.os.isMacOS() || Env.os.isiOS()) {\n msg = msg.replace(/Ctrl\\+/g, '\\u2318+');\n }\n editor.notificationManager.open({\n text: msg,\n type: 'error'\n });\n }\n }\n });\n };\n\n const trimOrPadLeftRight = (dom, rng, html, schema) => {\n const root = SugarElement.fromDom(dom.getRoot());\n if (needsToBeNbspLeft(root, CaretPosition.fromRangeStart(rng), schema)) {\n html = html.replace(/^ /, ' ');\n } else {\n html = html.replace(/^ /, ' ');\n }\n if (needsToBeNbspRight(root, CaretPosition.fromRangeEnd(rng), schema)) {\n html = html.replace(/( | )()?$/, ' ');\n } else {\n html = html.replace(/ ()?$/, ' ');\n }\n return html;\n };\n\n const processValue$1 = value => {\n if (typeof value !== 'string') {\n const details = Tools.extend({\n paste: value.paste,\n data: { paste: value.paste }\n }, value);\n return {\n content: value.content,\n details\n };\n }\n return {\n content: value,\n details: {}\n };\n };\n const trimOrPad = (editor, value) => {\n const selection = editor.selection;\n const dom = editor.dom;\n if (/^ | $/.test(value)) {\n return trimOrPadLeftRight(dom, selection.getRng(), value, editor.schema);\n } else {\n return value;\n }\n };\n const insertAtCaret = (editor, value) => {\n if (editor.selection.isEditable()) {\n const {content, details} = processValue$1(value);\n preProcessSetContent(editor, {\n ...details,\n content: trimOrPad(editor, content),\n format: 'html',\n set: false,\n selection: true\n }).each(args => {\n const insertedContent = insertContent$1(editor, args.content, details);\n postProcessSetContent(editor, insertedContent, args);\n editor.addVisual();\n });\n }\n };\n\n const registerCommands$8 = editor => {\n editor.editorCommands.addCommands({\n mceCleanup: () => {\n const bm = editor.selection.getBookmark();\n editor.setContent(editor.getContent());\n editor.selection.moveToBookmark(bm);\n },\n insertImage: (_command, _ui, value) => {\n insertAtCaret(editor, editor.dom.createHTML('img', { src: value }));\n },\n insertHorizontalRule: () => {\n editor.execCommand('mceInsertContent', false, '
    ');\n },\n insertText: (_command, _ui, value) => {\n insertAtCaret(editor, editor.dom.encode(value));\n },\n insertHTML: (_command, _ui, value) => {\n insertAtCaret(editor, value);\n },\n mceInsertContent: (_command, _ui, value) => {\n insertAtCaret(editor, value);\n },\n mceSetContent: (_command, _ui, value) => {\n editor.setContent(value);\n },\n mceReplaceContent: (_command, _ui, value) => {\n editor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, editor.selection.getContent({ format: 'text' })));\n },\n mceNewDocument: () => {\n editor.setContent(getNewDocumentContent(editor));\n }\n });\n };\n\n const legacyPropNames = {\n 'font-size': 'size',\n 'font-family': 'face'\n };\n const isFont = isTag('font');\n const getSpecifiedFontProp = (propName, rootElm, elm) => {\n const getProperty = elm => getRaw(elm, propName).orThunk(() => {\n if (isFont(elm)) {\n return get$a(legacyPropNames, propName).bind(legacyPropName => getOpt(elm, legacyPropName));\n } else {\n return Optional.none();\n }\n });\n const isRoot = elm => eq(SugarElement.fromDom(rootElm), elm);\n return closest$1(SugarElement.fromDom(elm), elm => getProperty(elm), isRoot);\n };\n const normalizeFontFamily = fontFamily => fontFamily.replace(/[\\'\\\"\\\\]/g, '').replace(/,\\s+/g, ',');\n const getComputedFontProp = (propName, elm) => Optional.from(DOMUtils.DOM.getStyle(elm, propName, true));\n const getFontProp = propName => (rootElm, elm) => Optional.from(elm).map(SugarElement.fromDom).filter(isElement$7).bind(element => getSpecifiedFontProp(propName, rootElm, element.dom).or(getComputedFontProp(propName, element.dom))).getOr('');\n const getFontSize = getFontProp('font-size');\n const getFontFamily = compose(normalizeFontFamily, getFontProp('font-family'));\n\n const findFirstCaretElement = editor => firstPositionIn(editor.getBody()).bind(caret => {\n const container = caret.container();\n return Optional.from(isText$b(container) ? container.parentNode : container);\n });\n const getCaretElement = editor => Optional.from(editor.selection.getRng()).bind(rng => {\n const root = editor.getBody();\n const atStartOfNode = rng.startContainer === root && rng.startOffset === 0;\n return atStartOfNode ? Optional.none() : Optional.from(editor.selection.getStart(true));\n });\n const bindRange = (editor, binder) => getCaretElement(editor).orThunk(curry(findFirstCaretElement, editor)).map(SugarElement.fromDom).filter(isElement$7).bind(binder);\n const mapRange = (editor, mapper) => bindRange(editor, compose1(Optional.some, mapper));\n\n const fromFontSizeNumber = (editor, value) => {\n if (/^[0-9.]+$/.test(value)) {\n const fontSizeNumber = parseInt(value, 10);\n if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {\n const fontSizes = getFontStyleValues(editor);\n const fontClasses = getFontSizeClasses(editor);\n if (fontClasses.length > 0) {\n return fontClasses[fontSizeNumber - 1] || value;\n } else {\n return fontSizes[fontSizeNumber - 1] || value;\n }\n } else {\n return value;\n }\n } else {\n return value;\n }\n };\n const normalizeFontNames = font => {\n const fonts = font.split(/\\s*,\\s*/);\n return map$3(fonts, font => {\n if (font.indexOf(' ') !== -1 && !(startsWith(font, '\"') || startsWith(font, `'`))) {\n return `'${ font }'`;\n } else {\n return font;\n }\n }).join(',');\n };\n const fontNameAction = (editor, value) => {\n const font = fromFontSizeNumber(editor, value);\n editor.formatter.toggle('fontname', { value: normalizeFontNames(font) });\n editor.nodeChanged();\n };\n const fontNameQuery = editor => mapRange(editor, elm => getFontFamily(editor.getBody(), elm.dom)).getOr('');\n const fontSizeAction = (editor, value) => {\n editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) });\n editor.nodeChanged();\n };\n const fontSizeQuery = editor => mapRange(editor, elm => getFontSize(editor.getBody(), elm.dom)).getOr('');\n\n const lineHeightQuery = editor => mapRange(editor, elm => {\n const root = SugarElement.fromDom(editor.getBody());\n const specifiedStyle = closest$1(elm, elm => getRaw(elm, 'line-height'), curry(eq, root));\n const computedStyle = () => {\n const lineHeight = parseFloat(get$7(elm, 'line-height'));\n const fontSize = parseFloat(get$7(elm, 'font-size'));\n return String(lineHeight / fontSize);\n };\n return specifiedStyle.getOrThunk(computedStyle);\n }).getOr('');\n const lineHeightAction = (editor, lineHeight) => {\n editor.formatter.toggle('lineheight', { value: String(lineHeight) });\n editor.nodeChanged();\n };\n\n const registerExecCommands$1 = editor => {\n const toggleFormat = (name, value) => {\n editor.formatter.toggle(name, value);\n editor.nodeChanged();\n };\n editor.editorCommands.addCommands({\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': command => {\n toggleFormat(command);\n },\n 'ForeColor,HiliteColor': (command, _ui, value) => {\n toggleFormat(command, { value });\n },\n 'BackColor': (_command, _ui, value) => {\n toggleFormat('hilitecolor', { value });\n },\n 'FontName': (_command, _ui, value) => {\n fontNameAction(editor, value);\n },\n 'FontSize': (_command, _ui, value) => {\n fontSizeAction(editor, value);\n },\n 'LineHeight': (_command, _ui, value) => {\n lineHeightAction(editor, value);\n },\n 'Lang': (command, _ui, lang) => {\n var _a;\n toggleFormat(command, {\n value: lang.code,\n customValue: (_a = lang.customCode) !== null && _a !== void 0 ? _a : null\n });\n },\n 'RemoveFormat': command => {\n editor.formatter.remove(command);\n },\n 'mceBlockQuote': () => {\n toggleFormat('blockquote');\n },\n 'FormatBlock': (_command, _ui, value) => {\n toggleFormat(isString(value) ? value : 'p');\n },\n 'mceToggleFormat': (_command, _ui, value) => {\n toggleFormat(value);\n }\n });\n };\n const registerQueryValueCommands = editor => {\n const isFormatMatch = name => editor.formatter.match(name);\n editor.editorCommands.addCommands({\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': command => isFormatMatch(command),\n 'mceBlockQuote': () => isFormatMatch('blockquote')\n }, 'state');\n editor.editorCommands.addQueryValueHandler('FontName', () => fontNameQuery(editor));\n editor.editorCommands.addQueryValueHandler('FontSize', () => fontSizeQuery(editor));\n editor.editorCommands.addQueryValueHandler('LineHeight', () => lineHeightQuery(editor));\n };\n const registerCommands$7 = editor => {\n registerExecCommands$1(editor);\n registerQueryValueCommands(editor);\n };\n\n const registerCommands$6 = editor => {\n editor.editorCommands.addCommands({\n mceAddUndoLevel: () => {\n editor.undoManager.add();\n },\n mceEndUndoLevel: () => {\n editor.undoManager.add();\n },\n Undo: () => {\n editor.undoManager.undo();\n },\n Redo: () => {\n editor.undoManager.redo();\n }\n });\n };\n\n const registerCommands$5 = editor => {\n editor.editorCommands.addCommands({\n Indent: () => {\n indent(editor);\n },\n Outdent: () => {\n outdent(editor);\n }\n });\n editor.editorCommands.addCommands({ Outdent: () => canOutdent(editor) }, 'state');\n };\n\n const registerCommands$4 = editor => {\n const applyLinkToSelection = (_command, _ui, value) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n const linkDetails = isString(value) ? { href: value } : value;\n const anchor = editor.dom.getParent(editor.selection.getNode(), 'a');\n if (isObject(linkDetails) && isString(linkDetails.href)) {\n linkDetails.href = linkDetails.href.replace(/ /g, '%20');\n if (!anchor || !linkDetails.href) {\n editor.formatter.remove('link');\n }\n if (linkDetails.href) {\n editor.formatter.apply('link', linkDetails, anchor);\n }\n }\n };\n editor.editorCommands.addCommands({\n unlink: () => {\n if (editor.selection.isEditable()) {\n if (editor.selection.isCollapsed()) {\n const elm = editor.dom.getParent(editor.selection.getStart(), 'a');\n if (elm) {\n editor.dom.remove(elm, true);\n }\n return;\n }\n editor.formatter.remove('link');\n }\n },\n mceInsertLink: applyLinkToSelection,\n createLink: applyLinkToSelection\n });\n };\n\n const getTopParentBlock = (editor, node, root, container) => {\n const dom = editor.dom;\n const selector = node => dom.isBlock(node) && node.parentElement === root;\n const topParentBlock = selector(node) ? node : dom.getParent(container, selector, root);\n return Optional.from(topParentBlock).map(SugarElement.fromDom);\n };\n const insert = (editor, before) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n const dom = editor.dom;\n const rng = editor.selection.getRng();\n const node = before ? editor.selection.getStart() : editor.selection.getEnd();\n const container = before ? rng.startContainer : rng.endContainer;\n const root = getEditableRoot(dom, container);\n if (!root || !root.isContentEditable) {\n return;\n }\n const insertFn = before ? before$3 : after$4;\n const newBlockName = getForcedRootBlock(editor);\n getTopParentBlock(editor, node, root, container).each(parentBlock => {\n const newBlock = createNewBlock(editor, container, parentBlock.dom, root, false, newBlockName);\n insertFn(parentBlock, SugarElement.fromDom(newBlock));\n editor.selection.setCursorLocation(newBlock, 0);\n editor.dispatch('NewBlock', { newBlock });\n fireInputEvent(editor, 'insertParagraph');\n });\n };\n const insertBefore = editor => insert(editor, true);\n const insertAfter = editor => insert(editor, false);\n\n const registerCommands$3 = editor => {\n editor.editorCommands.addCommands({\n InsertNewBlockBefore: () => {\n insertBefore(editor);\n },\n InsertNewBlockAfter: () => {\n insertAfter(editor);\n }\n });\n };\n\n const registerCommands$2 = editor => {\n editor.editorCommands.addCommands({\n insertParagraph: () => {\n insertBreak(blockbreak, editor);\n },\n mceInsertNewLine: (_command, _ui, value) => {\n insert$1(editor, value);\n },\n InsertLineBreak: (_command, _ui, _value) => {\n insertBreak(linebreak, editor);\n }\n });\n };\n\n const registerCommands$1 = editor => {\n editor.editorCommands.addCommands({\n mceSelectNodeDepth: (_command, _ui, value) => {\n let counter = 0;\n editor.dom.getParent(editor.selection.getNode(), node => {\n if (isElement$6(node) && counter++ === value) {\n editor.selection.select(node);\n return false;\n } else {\n return true;\n }\n }, editor.getBody());\n },\n mceSelectNode: (_command, _ui, value) => {\n editor.selection.select(value);\n },\n selectAll: () => {\n const editingHost = editor.dom.getParent(editor.selection.getStart(), isContentEditableTrue$3);\n if (editingHost) {\n const rng = editor.dom.createRng();\n rng.selectNodeContents(editingHost);\n editor.selection.setRng(rng);\n }\n }\n });\n };\n\n const registerExecCommands = editor => {\n editor.editorCommands.addCommands({\n mceRemoveNode: (_command, _ui, value) => {\n const node = value !== null && value !== void 0 ? value : editor.selection.getNode();\n if (node !== editor.getBody()) {\n const bm = editor.selection.getBookmark();\n editor.dom.remove(node, true);\n editor.selection.moveToBookmark(bm);\n }\n },\n mcePrint: () => {\n editor.getWin().print();\n },\n mceFocus: (_command, _ui, value) => {\n focus(editor, value === true);\n },\n mceToggleVisualAid: () => {\n editor.hasVisual = !editor.hasVisual;\n editor.addVisual();\n }\n });\n };\n const registerCommands = editor => {\n registerCommands$a(editor);\n registerCommands$9(editor);\n registerCommands$6(editor);\n registerCommands$1(editor);\n registerCommands$8(editor);\n registerCommands$4(editor);\n registerCommands$5(editor);\n registerCommands$3(editor);\n registerCommands$2(editor);\n registerCommands$7(editor);\n registerExecCommands(editor);\n };\n\n const selectionSafeCommands = ['toggleview'];\n const isSelectionSafeCommand = command => contains$2(selectionSafeCommands, command.toLowerCase());\n class EditorCommands {\n constructor(editor) {\n this.commands = {\n state: {},\n exec: {},\n value: {}\n };\n this.editor = editor;\n }\n execCommand(command, ui = false, value, args) {\n const editor = this.editor;\n const lowerCaseCommand = command.toLowerCase();\n const skipFocus = args === null || args === void 0 ? void 0 : args.skip_focus;\n if (editor.removed) {\n return false;\n }\n if (lowerCaseCommand !== 'mcefocus') {\n if (!/^(mceAddUndoLevel|mceEndUndoLevel)$/i.test(lowerCaseCommand) && !skipFocus) {\n editor.focus();\n } else {\n restore(editor);\n }\n }\n const eventArgs = editor.dispatch('BeforeExecCommand', {\n command,\n ui,\n value\n });\n if (eventArgs.isDefaultPrevented()) {\n return false;\n }\n const func = this.commands.exec[lowerCaseCommand];\n if (isFunction(func)) {\n func(lowerCaseCommand, ui, value);\n editor.dispatch('ExecCommand', {\n command,\n ui,\n value\n });\n return true;\n }\n return false;\n }\n queryCommandState(command) {\n if (!isSelectionSafeCommand(command) && this.editor.quirks.isHidden() || this.editor.removed) {\n return false;\n }\n const lowerCaseCommand = command.toLowerCase();\n const func = this.commands.state[lowerCaseCommand];\n if (isFunction(func)) {\n return func(lowerCaseCommand);\n }\n return false;\n }\n queryCommandValue(command) {\n if (!isSelectionSafeCommand(command) && this.editor.quirks.isHidden() || this.editor.removed) {\n return '';\n }\n const lowerCaseCommand = command.toLowerCase();\n const func = this.commands.value[lowerCaseCommand];\n if (isFunction(func)) {\n return func(lowerCaseCommand);\n }\n return '';\n }\n addCommands(commandList, type = 'exec') {\n const commands = this.commands;\n each$d(commandList, (callback, command) => {\n each$e(command.toLowerCase().split(','), command => {\n commands[type][command] = callback;\n });\n });\n }\n addCommand(command, callback, scope) {\n const lowerCaseCommand = command.toLowerCase();\n this.commands.exec[lowerCaseCommand] = (_command, ui, value) => callback.call(scope !== null && scope !== void 0 ? scope : this.editor, ui, value);\n }\n queryCommandSupported(command) {\n const lowerCaseCommand = command.toLowerCase();\n if (this.commands.exec[lowerCaseCommand]) {\n return true;\n } else {\n return false;\n }\n }\n addQueryStateHandler(command, callback, scope) {\n this.commands.state[command.toLowerCase()] = () => callback.call(scope !== null && scope !== void 0 ? scope : this.editor);\n }\n addQueryValueHandler(command, callback, scope) {\n this.commands.value[command.toLowerCase()] = () => callback.call(scope !== null && scope !== void 0 ? scope : this.editor);\n }\n }\n\n const toggleClass = (elm, cls, state) => {\n if (has(elm, cls) && !state) {\n remove$6(elm, cls);\n } else if (state) {\n add$2(elm, cls);\n }\n };\n const setEditorCommandState = (editor, cmd, state) => {\n try {\n editor.getDoc().execCommand(cmd, false, String(state));\n } catch (ex) {\n }\n };\n const setContentEditable = (elm, state) => {\n elm.dom.contentEditable = state ? 'true' : 'false';\n };\n const removeFakeSelection = editor => {\n Optional.from(editor.selection.getNode()).each(elm => {\n elm.removeAttribute('data-mce-selected');\n });\n };\n const restoreFakeSelection = editor => {\n editor.selection.setRng(editor.selection.getRng());\n };\n const setCommonEditorCommands = (editor, state) => {\n setEditorCommandState(editor, 'StyleWithCSS', state);\n setEditorCommandState(editor, 'enableInlineTableEditing', state);\n setEditorCommandState(editor, 'enableObjectResizing', state);\n };\n const setEditorReadonly = editor => {\n editor.readonly = true;\n editor.selection.controlSelection.hideResizeRect();\n editor._selectionOverrides.hideFakeCaret();\n removeFakeSelection(editor);\n };\n const unsetEditorReadonly = (editor, body) => {\n editor.readonly = false;\n if (editor.hasEditableRoot()) {\n setContentEditable(body, true);\n }\n setCommonEditorCommands(editor, false);\n if (hasEditorOrUiFocus(editor)) {\n editor.focus();\n }\n restoreFakeSelection(editor);\n editor.nodeChanged();\n };\n const toggleReadOnly = (editor, state) => {\n const body = SugarElement.fromDom(editor.getBody());\n toggleClass(body, 'mce-content-readonly', state);\n if (state) {\n setEditorReadonly(editor);\n if (editor.hasEditableRoot()) {\n setContentEditable(body, true);\n }\n } else {\n unsetEditorReadonly(editor, body);\n }\n };\n const isReadOnly = editor => editor.readonly;\n const isClickEvent = e => e.type === 'click';\n const allowedEvents = ['copy'];\n const isReadOnlyAllowedEvent = e => contains$2(allowedEvents, e.type);\n const getAnchorHrefOpt = (editor, elm) => {\n const isRoot = elm => eq(elm, SugarElement.fromDom(editor.getBody()));\n return closest$3(elm, 'a', isRoot).bind(a => getOpt(a, 'href'));\n };\n const processReadonlyEvents = (editor, e) => {\n if (isClickEvent(e) && !VK.metaKeyPressed(e)) {\n const elm = SugarElement.fromDom(e.target);\n getAnchorHrefOpt(editor, elm).each(href => {\n e.preventDefault();\n if (/^#/.test(href)) {\n const targetEl = editor.dom.select(`${ href },[name=\"${ removeLeading(href, '#') }\"]`);\n if (targetEl.length) {\n editor.selection.scrollIntoView(targetEl[0], true);\n }\n } else {\n window.open(href, '_blank', 'rel=noopener noreferrer,menubar=yes,toolbar=yes,location=yes,status=yes,resizable=yes,scrollbars=yes');\n }\n });\n } else if (isReadOnlyAllowedEvent(e)) {\n editor.dispatch(e.type, e);\n }\n };\n const registerReadOnlySelectionBlockers = editor => {\n editor.on('beforeinput paste cut dragend dragover draggesture dragdrop drop drag', e => {\n if (isReadOnly(editor)) {\n e.preventDefault();\n }\n });\n editor.on('BeforeExecCommand', e => {\n if ((e.command === 'Undo' || e.command === 'Redo') && isReadOnly(editor)) {\n e.preventDefault();\n }\n });\n editor.on('input', e => {\n if (!e.isComposing && isReadOnly(editor)) {\n const undoLevel = editor.undoManager.add();\n if (isNonNullable(undoLevel)) {\n editor.undoManager.undo();\n }\n }\n });\n editor.on('compositionend', () => {\n if (isReadOnly(editor)) {\n const undoLevel = editor.undoManager.add();\n if (isNonNullable(undoLevel)) {\n editor.undoManager.undo();\n }\n }\n });\n };\n\n const nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel', ' ');\n class EventDispatcher {\n static isNative(name) {\n return !!nativeEvents[name.toLowerCase()];\n }\n constructor(settings) {\n this.bindings = {};\n this.settings = settings || {};\n this.scope = this.settings.scope || this;\n this.toggleEvent = this.settings.toggleEvent || never;\n }\n fire(name, args) {\n return this.dispatch(name, args);\n }\n dispatch(name, args) {\n const lcName = name.toLowerCase();\n const event = normalize$3(lcName, args !== null && args !== void 0 ? args : {}, this.scope);\n if (this.settings.beforeFire) {\n this.settings.beforeFire(event);\n }\n const handlers = this.bindings[lcName];\n if (handlers) {\n for (let i = 0, l = handlers.length; i < l; i++) {\n const callback = handlers[i];\n if (callback.removed) {\n continue;\n }\n if (callback.once) {\n this.off(lcName, callback.func);\n }\n if (event.isImmediatePropagationStopped()) {\n return event;\n }\n if (callback.func.call(this.scope, event) === false) {\n event.preventDefault();\n return event;\n }\n }\n }\n return event;\n }\n on(name, callback, prepend, extra) {\n if (callback === false) {\n callback = never;\n }\n if (callback) {\n const wrappedCallback = {\n func: callback,\n removed: false\n };\n if (extra) {\n Tools.extend(wrappedCallback, extra);\n }\n const names = name.toLowerCase().split(' ');\n let i = names.length;\n while (i--) {\n const currentName = names[i];\n let handlers = this.bindings[currentName];\n if (!handlers) {\n handlers = [];\n this.toggleEvent(currentName, true);\n }\n if (prepend) {\n handlers = [\n wrappedCallback,\n ...handlers\n ];\n } else {\n handlers = [\n ...handlers,\n wrappedCallback\n ];\n }\n this.bindings[currentName] = handlers;\n }\n }\n return this;\n }\n off(name, callback) {\n if (name) {\n const names = name.toLowerCase().split(' ');\n let i = names.length;\n while (i--) {\n const currentName = names[i];\n let handlers = this.bindings[currentName];\n if (!currentName) {\n each$d(this.bindings, (_value, bindingName) => {\n this.toggleEvent(bindingName, false);\n delete this.bindings[bindingName];\n });\n return this;\n }\n if (handlers) {\n if (!callback) {\n handlers.length = 0;\n } else {\n const filteredHandlers = partition$2(handlers, handler => handler.func === callback);\n handlers = filteredHandlers.fail;\n this.bindings[currentName] = handlers;\n each$e(filteredHandlers.pass, handler => {\n handler.removed = true;\n });\n }\n if (!handlers.length) {\n this.toggleEvent(name, false);\n delete this.bindings[currentName];\n }\n }\n }\n } else {\n each$d(this.bindings, (_value, name) => {\n this.toggleEvent(name, false);\n });\n this.bindings = {};\n }\n return this;\n }\n once(name, callback, prepend) {\n return this.on(name, callback, prepend, { once: true });\n }\n has(name) {\n name = name.toLowerCase();\n const binding = this.bindings[name];\n return !(!binding || binding.length === 0);\n }\n }\n\n const getEventDispatcher = obj => {\n if (!obj._eventDispatcher) {\n obj._eventDispatcher = new EventDispatcher({\n scope: obj,\n toggleEvent: (name, state) => {\n if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) {\n obj.toggleNativeEvent(name, state);\n }\n }\n });\n }\n return obj._eventDispatcher;\n };\n const Observable = {\n fire(name, args, bubble) {\n return this.dispatch(name, args, bubble);\n },\n dispatch(name, args, bubble) {\n const self = this;\n if (self.removed && name !== 'remove' && name !== 'detach') {\n return normalize$3(name.toLowerCase(), args !== null && args !== void 0 ? args : {}, self);\n }\n const dispatcherArgs = getEventDispatcher(self).dispatch(name, args);\n if (bubble !== false && self.parent) {\n let parent = self.parent();\n while (parent && !dispatcherArgs.isPropagationStopped()) {\n parent.dispatch(name, dispatcherArgs, false);\n parent = parent.parent ? parent.parent() : undefined;\n }\n }\n return dispatcherArgs;\n },\n on(name, callback, prepend) {\n return getEventDispatcher(this).on(name, callback, prepend);\n },\n off(name, callback) {\n return getEventDispatcher(this).off(name, callback);\n },\n once(name, callback) {\n return getEventDispatcher(this).once(name, callback);\n },\n hasEventListeners(name) {\n return getEventDispatcher(this).has(name);\n }\n };\n\n const DOM$2 = DOMUtils.DOM;\n let customEventRootDelegates;\n const getEventTarget = (editor, eventName) => {\n if (eventName === 'selectionchange') {\n return editor.getDoc();\n }\n if (!editor.inline && /^(?:mouse|touch|click|contextmenu|drop|dragover|dragend)/.test(eventName)) {\n return editor.getDoc().documentElement;\n }\n const eventRoot = getEventRoot(editor);\n if (eventRoot) {\n if (!editor.eventRoot) {\n editor.eventRoot = DOM$2.select(eventRoot)[0];\n }\n return editor.eventRoot;\n }\n return editor.getBody();\n };\n const isListening = editor => !editor.hidden;\n const fireEvent = (editor, eventName, e) => {\n if (isListening(editor)) {\n editor.dispatch(eventName, e);\n } else if (isReadOnly(editor)) {\n processReadonlyEvents(editor, e);\n }\n };\n const bindEventDelegate = (editor, eventName) => {\n if (!editor.delegates) {\n editor.delegates = {};\n }\n if (editor.delegates[eventName] || editor.removed) {\n return;\n }\n const eventRootElm = getEventTarget(editor, eventName);\n if (getEventRoot(editor)) {\n if (!customEventRootDelegates) {\n customEventRootDelegates = {};\n editor.editorManager.on('removeEditor', () => {\n if (!editor.editorManager.activeEditor) {\n if (customEventRootDelegates) {\n each$d(customEventRootDelegates, (_value, name) => {\n editor.dom.unbind(getEventTarget(editor, name));\n });\n customEventRootDelegates = null;\n }\n }\n });\n }\n if (customEventRootDelegates[eventName]) {\n return;\n }\n const delegate = e => {\n const target = e.target;\n const editors = editor.editorManager.get();\n let i = editors.length;\n while (i--) {\n const body = editors[i].getBody();\n if (body === target || DOM$2.isChildOf(target, body)) {\n fireEvent(editors[i], eventName, e);\n }\n }\n };\n customEventRootDelegates[eventName] = delegate;\n DOM$2.bind(eventRootElm, eventName, delegate);\n } else {\n const delegate = e => {\n fireEvent(editor, eventName, e);\n };\n DOM$2.bind(eventRootElm, eventName, delegate);\n editor.delegates[eventName] = delegate;\n }\n };\n const EditorObservable = {\n ...Observable,\n bindPendingEventDelegates() {\n const self = this;\n Tools.each(self._pendingNativeEvents, name => {\n bindEventDelegate(self, name);\n });\n },\n toggleNativeEvent(name, state) {\n const self = this;\n if (name === 'focus' || name === 'blur') {\n return;\n }\n if (self.removed) {\n return;\n }\n if (state) {\n if (self.initialized) {\n bindEventDelegate(self, name);\n } else {\n if (!self._pendingNativeEvents) {\n self._pendingNativeEvents = [name];\n } else {\n self._pendingNativeEvents.push(name);\n }\n }\n } else if (self.initialized && self.delegates) {\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n delete self.delegates[name];\n }\n },\n unbindAllNativeEvents() {\n const self = this;\n const body = self.getBody();\n const dom = self.dom;\n if (self.delegates) {\n each$d(self.delegates, (value, name) => {\n self.dom.unbind(getEventTarget(self, name), name, value);\n });\n delete self.delegates;\n }\n if (!self.inline && body && dom) {\n body.onload = null;\n dom.unbind(self.getWin());\n dom.unbind(self.getDoc());\n }\n if (dom) {\n dom.unbind(body);\n dom.unbind(self.getContainer());\n }\n }\n };\n\n const stringListProcessor = value => {\n if (isString(value)) {\n return {\n value: value.split(/[ ,]/),\n valid: true\n };\n } else if (isArrayOf(value, isString)) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: `The value must be a string[] or a comma/space separated string.`\n };\n }\n };\n const getBuiltInProcessor = type => {\n const validator = (() => {\n switch (type) {\n case 'array':\n return isArray$1;\n case 'boolean':\n return isBoolean;\n case 'function':\n return isFunction;\n case 'number':\n return isNumber;\n case 'object':\n return isObject;\n case 'string':\n return isString;\n case 'string[]':\n return stringListProcessor;\n case 'object[]':\n return val => isArrayOf(val, isObject);\n case 'regexp':\n return val => is$4(val, RegExp);\n default:\n return always;\n }\n })();\n return value => processValue(value, validator, `The value must be a ${ type }.`);\n };\n const isBuiltInSpec = spec => isString(spec.processor);\n const getErrorMessage = (message, result) => {\n const additionalText = isEmpty$3(result.message) ? '' : `. ${ result.message }`;\n return message + additionalText;\n };\n const isValidResult = result => result.valid;\n const processValue = (value, processor, message = '') => {\n const result = processor(value);\n if (isBoolean(result)) {\n return result ? {\n value: value,\n valid: true\n } : {\n valid: false,\n message\n };\n } else {\n return result;\n }\n };\n const processDefaultValue = (name, defaultValue, processor) => {\n if (!isUndefined(defaultValue)) {\n const result = processValue(defaultValue, processor);\n if (isValidResult(result)) {\n return result.value;\n } else {\n console.error(getErrorMessage(`Invalid default value passed for the \"${ name }\" option`, result));\n }\n }\n return undefined;\n };\n const create$5 = (editor, initialOptions, rawInitialOptions = initialOptions) => {\n const registry = {};\n const values = {};\n const setValue = (name, value, processor) => {\n const result = processValue(value, processor);\n if (isValidResult(result)) {\n values[name] = result.value;\n return true;\n } else {\n console.warn(getErrorMessage(`Invalid value passed for the ${ name } option`, result));\n return false;\n }\n };\n const register = (name, spec) => {\n const processor = isBuiltInSpec(spec) ? getBuiltInProcessor(spec.processor) : spec.processor;\n const defaultValue = processDefaultValue(name, spec.default, processor);\n registry[name] = {\n ...spec,\n default: defaultValue,\n processor\n };\n const initValue = get$a(values, name).orThunk(() => get$a(initialOptions, name));\n initValue.each(value => setValue(name, value, processor));\n };\n const isRegistered = name => has$2(registry, name);\n const get = name => get$a(values, name).orThunk(() => get$a(registry, name).map(spec => spec.default)).getOrUndefined();\n const set = (name, value) => {\n if (!isRegistered(name)) {\n console.warn(`\"${ name }\" is not a registered option. Ensure the option has been registered before setting a value.`);\n return false;\n } else {\n const spec = registry[name];\n if (spec.immutable) {\n console.error(`\"${ name }\" is an immutable option and cannot be updated`);\n return false;\n } else {\n return setValue(name, value, spec.processor);\n }\n }\n };\n const unset = name => {\n const registered = isRegistered(name);\n if (registered) {\n delete values[name];\n }\n return registered;\n };\n const isSet = name => has$2(values, name);\n const debug = () => {\n try {\n console.log(JSON.parse(JSON.stringify(rawInitialOptions, (_key, value) => {\n if (isBoolean(value) || isNumber(value) || isString(value) || isNull(value) || isArray$1(value) || isPlainObject(value)) {\n return value;\n }\n return Object.prototype.toString.call(value);\n })));\n } catch (error) {\n console.error(error);\n }\n };\n return {\n register,\n isRegistered,\n get,\n set,\n unset,\n isSet,\n debug\n };\n };\n\n const defaultModes = [\n 'design',\n 'readonly'\n ];\n const switchToMode = (editor, activeMode, availableModes, mode) => {\n const oldMode = availableModes[activeMode.get()];\n const newMode = availableModes[mode];\n try {\n newMode.activate();\n } catch (e) {\n console.error(`problem while activating editor mode ${ mode }:`, e);\n return;\n }\n oldMode.deactivate();\n if (oldMode.editorReadOnly !== newMode.editorReadOnly) {\n toggleReadOnly(editor, newMode.editorReadOnly);\n }\n activeMode.set(mode);\n fireSwitchMode(editor, mode);\n };\n const setMode = (editor, availableModes, activeMode, mode) => {\n if (mode === activeMode.get()) {\n return;\n } else if (!has$2(availableModes, mode)) {\n throw new Error(`Editor mode '${ mode }' is invalid`);\n }\n if (editor.initialized) {\n switchToMode(editor, activeMode, availableModes, mode);\n } else {\n editor.on('init', () => switchToMode(editor, activeMode, availableModes, mode));\n }\n };\n const registerMode = (availableModes, mode, api) => {\n if (contains$2(defaultModes, mode)) {\n throw new Error(`Cannot override default mode ${ mode }`);\n }\n return {\n ...availableModes,\n [mode]: {\n ...api,\n deactivate: () => {\n try {\n api.deactivate();\n } catch (e) {\n console.error(`problem while deactivating editor mode ${ mode }:`, e);\n }\n }\n }\n };\n };\n\n const create$4 = editor => {\n const activeMode = Cell('design');\n const availableModes = Cell({\n design: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: false\n },\n readonly: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: true\n }\n });\n registerReadOnlySelectionBlockers(editor);\n return {\n isReadOnly: () => isReadOnly(editor),\n set: mode => setMode(editor, availableModes.get(), activeMode, mode),\n get: () => activeMode.get(),\n register: (mode, api) => {\n availableModes.set(registerMode(availableModes.get(), mode, api));\n }\n };\n };\n\n const each$2 = Tools.each, explode = Tools.explode;\n const keyCodeLookup = {\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123\n };\n const modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access');\n const isModifier = key => key in modifierNames;\n const parseShortcut = pattern => {\n const shortcut = {};\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n each$2(explode(pattern.toLowerCase(), '+'), value => {\n if (isModifier(value)) {\n shortcut[value] = true;\n } else {\n if (/^[0-9]{2,}$/.test(value)) {\n shortcut.keyCode = parseInt(value, 10);\n } else {\n shortcut.charCode = value.charCodeAt(0);\n shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);\n }\n }\n });\n const id = [shortcut.keyCode];\n let key;\n for (key in modifierNames) {\n if (shortcut[key]) {\n id.push(key);\n } else {\n shortcut[key] = false;\n }\n }\n shortcut.id = id.join(',');\n if (shortcut.access) {\n shortcut.alt = true;\n if (isMac) {\n shortcut.ctrl = true;\n } else {\n shortcut.shift = true;\n }\n }\n if (shortcut.meta) {\n if (isMac) {\n shortcut.meta = true;\n } else {\n shortcut.ctrl = true;\n shortcut.meta = false;\n }\n }\n return shortcut;\n };\n class Shortcuts {\n constructor(editor) {\n this.shortcuts = {};\n this.pendingPatterns = [];\n this.editor = editor;\n const self = this;\n editor.on('keyup keypress keydown', e => {\n if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) {\n each$2(self.shortcuts, shortcut => {\n if (self.matchShortcut(e, shortcut)) {\n self.pendingPatterns = shortcut.subpatterns.slice(0);\n if (e.type === 'keydown') {\n self.executeShortcutAction(shortcut);\n }\n }\n });\n if (self.matchShortcut(e, self.pendingPatterns[0])) {\n if (self.pendingPatterns.length === 1) {\n if (e.type === 'keydown') {\n self.executeShortcutAction(self.pendingPatterns[0]);\n }\n }\n self.pendingPatterns.shift();\n }\n }\n });\n }\n add(pattern, desc, cmdFunc, scope) {\n const self = this;\n const func = self.normalizeCommandFunc(cmdFunc);\n each$2(explode(Tools.trim(pattern)), pattern => {\n const shortcut = self.createShortcut(pattern, desc, func, scope);\n self.shortcuts[shortcut.id] = shortcut;\n });\n return true;\n }\n remove(pattern) {\n const shortcut = this.createShortcut(pattern);\n if (this.shortcuts[shortcut.id]) {\n delete this.shortcuts[shortcut.id];\n return true;\n }\n return false;\n }\n normalizeCommandFunc(cmdFunc) {\n const self = this;\n const cmd = cmdFunc;\n if (typeof cmd === 'string') {\n return () => {\n self.editor.execCommand(cmd, false, null);\n };\n } else if (Tools.isArray(cmd)) {\n return () => {\n self.editor.execCommand(cmd[0], cmd[1], cmd[2]);\n };\n } else {\n return cmd;\n }\n }\n createShortcut(pattern, desc, cmdFunc, scope) {\n const shortcuts = Tools.map(explode(pattern, '>'), parseShortcut);\n shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], {\n func: cmdFunc,\n scope: scope || this.editor\n });\n return Tools.extend(shortcuts[0], {\n desc: this.editor.translate(desc),\n subpatterns: shortcuts.slice(1)\n });\n }\n hasModifier(e) {\n return e.altKey || e.ctrlKey || e.metaKey;\n }\n isFunctionKey(e) {\n return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123;\n }\n matchShortcut(e, shortcut) {\n if (!shortcut) {\n return false;\n }\n if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) {\n return false;\n }\n if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) {\n return false;\n }\n if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) {\n e.preventDefault();\n return true;\n }\n return false;\n }\n executeShortcutAction(shortcut) {\n return shortcut.func ? shortcut.func.call(shortcut.scope) : null;\n }\n }\n\n const create$3 = () => {\n const buttons = {};\n const menuItems = {};\n const popups = {};\n const icons = {};\n const contextMenus = {};\n const contextToolbars = {};\n const contexts = {};\n const sidebars = {};\n const views = {};\n const add = (collection, type) => (name, spec) => {\n collection[name.toLowerCase()] = {\n ...spec,\n type\n };\n };\n const addIcon = (name, svgData) => icons[name.toLowerCase()] = svgData;\n const addContext = (name, pred) => contexts[name.toLowerCase()] = pred;\n return {\n addButton: add(buttons, 'button'),\n addGroupToolbarButton: add(buttons, 'grouptoolbarbutton'),\n addToggleButton: add(buttons, 'togglebutton'),\n addMenuButton: add(buttons, 'menubutton'),\n addSplitButton: add(buttons, 'splitbutton'),\n addMenuItem: add(menuItems, 'menuitem'),\n addNestedMenuItem: add(menuItems, 'nestedmenuitem'),\n addToggleMenuItem: add(menuItems, 'togglemenuitem'),\n addAutocompleter: add(popups, 'autocompleter'),\n addContextMenu: add(contextMenus, 'contextmenu'),\n addContextToolbar: add(contextToolbars, 'contexttoolbar'),\n addContextForm: add(contextToolbars, 'contextform'),\n addSidebar: add(sidebars, 'sidebar'),\n addView: add(views, 'views'),\n addIcon,\n addContext,\n getAll: () => ({\n buttons,\n menuItems,\n icons,\n popups,\n contextMenus,\n contextToolbars,\n sidebars,\n views,\n contexts\n })\n };\n };\n\n const registry = () => {\n const bridge = create$3();\n return {\n addAutocompleter: bridge.addAutocompleter,\n addButton: bridge.addButton,\n addContextForm: bridge.addContextForm,\n addContextMenu: bridge.addContextMenu,\n addContextToolbar: bridge.addContextToolbar,\n addIcon: bridge.addIcon,\n addMenuButton: bridge.addMenuButton,\n addMenuItem: bridge.addMenuItem,\n addNestedMenuItem: bridge.addNestedMenuItem,\n addSidebar: bridge.addSidebar,\n addSplitButton: bridge.addSplitButton,\n addToggleButton: bridge.addToggleButton,\n addGroupToolbarButton: bridge.addGroupToolbarButton,\n addToggleMenuItem: bridge.addToggleMenuItem,\n addView: bridge.addView,\n addContext: bridge.addContext,\n getAll: bridge.getAll\n };\n };\n\n const DOM$1 = DOMUtils.DOM;\n const extend = Tools.extend, each$1 = Tools.each;\n class Editor {\n constructor(id, options, editorManager) {\n this.plugins = {};\n this.contentCSS = [];\n this.contentStyles = [];\n this.loadedCSS = {};\n this.isNotDirty = false;\n this.composing = false;\n this.destroyed = false;\n this.hasHiddenInput = false;\n this.iframeElement = null;\n this.initialized = false;\n this.readonly = false;\n this.removed = false;\n this.startContent = '';\n this._pendingNativeEvents = [];\n this._skinLoaded = false;\n this._editableRoot = true;\n this.editorManager = editorManager;\n this.documentBaseUrl = editorManager.documentBaseURL;\n extend(this, EditorObservable);\n const self = this;\n this.id = id;\n this.hidden = false;\n const normalizedOptions = normalizeOptions(editorManager.defaultOptions, options);\n this.options = create$5(self, normalizedOptions, options);\n register$7(self);\n const getOption = this.options.get;\n if (getOption('deprecation_warnings')) {\n logWarnings(options, normalizedOptions);\n }\n const suffix = getOption('suffix');\n if (suffix) {\n editorManager.suffix = suffix;\n }\n this.suffix = editorManager.suffix;\n const baseUrl = getOption('base_url');\n if (baseUrl) {\n editorManager._setBaseUrl(baseUrl);\n }\n this.baseUri = editorManager.baseURI;\n const referrerPolicy = getReferrerPolicy(self);\n if (referrerPolicy) {\n ScriptLoader.ScriptLoader._setReferrerPolicy(referrerPolicy);\n DOMUtils.DOM.styleSheetLoader._setReferrerPolicy(referrerPolicy);\n }\n const contentCssCors = hasContentCssCors(self);\n if (isNonNullable(contentCssCors)) {\n DOMUtils.DOM.styleSheetLoader._setContentCssCors(contentCssCors);\n }\n AddOnManager.languageLoad = getOption('language_load');\n AddOnManager.baseURL = editorManager.baseURL;\n this.setDirty(false);\n this.documentBaseURI = new URI(getDocumentBaseUrl(self), { base_uri: this.baseUri });\n this.baseURI = this.baseUri;\n this.inline = isInline$1(self);\n this.hasVisual = isVisualAidsEnabled(self);\n this.shortcuts = new Shortcuts(this);\n this.editorCommands = new EditorCommands(this);\n registerCommands(this);\n const cacheSuffix = getOption('cache_suffix');\n if (cacheSuffix) {\n Env.cacheSuffix = cacheSuffix.replace(/^[\\?\\&]+/, '');\n }\n this.ui = {\n registry: registry(),\n styleSheetLoader: undefined,\n show: noop,\n hide: noop,\n setEnabled: noop,\n isEnabled: always\n };\n this.mode = create$4(self);\n editorManager.dispatch('SetupEditor', { editor: this });\n const setupCallback = getSetupCallback(self);\n if (isFunction(setupCallback)) {\n setupCallback.call(self, self);\n }\n }\n render() {\n render(this);\n }\n focus(skipFocus) {\n this.execCommand('mceFocus', false, skipFocus);\n }\n hasFocus() {\n return hasFocus(this);\n }\n translate(text) {\n return I18n.translate(text);\n }\n getParam(name, defaultVal, type) {\n const options = this.options;\n if (!options.isRegistered(name)) {\n if (isNonNullable(type)) {\n options.register(name, {\n processor: type,\n default: defaultVal\n });\n } else {\n options.register(name, {\n processor: always,\n default: defaultVal\n });\n }\n }\n return !options.isSet(name) && !isUndefined(defaultVal) ? defaultVal : options.get(name);\n }\n hasPlugin(name, loaded) {\n const hasPlugin = contains$2(getPlugins(this), name);\n if (hasPlugin) {\n return loaded ? PluginManager.get(name) !== undefined : true;\n } else {\n return false;\n }\n }\n nodeChanged(args) {\n this._nodeChangeDispatcher.nodeChanged(args);\n }\n addCommand(name, callback, scope) {\n this.editorCommands.addCommand(name, callback, scope);\n }\n addQueryStateHandler(name, callback, scope) {\n this.editorCommands.addQueryStateHandler(name, callback, scope);\n }\n addQueryValueHandler(name, callback, scope) {\n this.editorCommands.addQueryValueHandler(name, callback, scope);\n }\n addShortcut(pattern, desc, cmdFunc, scope) {\n this.shortcuts.add(pattern, desc, cmdFunc, scope);\n }\n execCommand(cmd, ui, value, args) {\n return this.editorCommands.execCommand(cmd, ui, value, args);\n }\n queryCommandState(cmd) {\n return this.editorCommands.queryCommandState(cmd);\n }\n queryCommandValue(cmd) {\n return this.editorCommands.queryCommandValue(cmd);\n }\n queryCommandSupported(cmd) {\n return this.editorCommands.queryCommandSupported(cmd);\n }\n show() {\n const self = this;\n if (self.hidden) {\n self.hidden = false;\n if (self.inline) {\n self.getBody().contentEditable = 'true';\n } else {\n DOM$1.show(self.getContainer());\n DOM$1.hide(self.id);\n }\n self.load();\n self.dispatch('show');\n }\n }\n hide() {\n const self = this;\n if (!self.hidden) {\n self.save();\n if (self.inline) {\n self.getBody().contentEditable = 'false';\n if (self === self.editorManager.focusedEditor) {\n self.editorManager.focusedEditor = null;\n }\n } else {\n DOM$1.hide(self.getContainer());\n DOM$1.setStyle(self.id, 'display', self.orgDisplay);\n }\n self.hidden = true;\n self.dispatch('hide');\n }\n }\n isHidden() {\n return this.hidden;\n }\n setProgressState(state, time) {\n this.dispatch('ProgressState', {\n state,\n time\n });\n }\n load(args = {}) {\n const self = this;\n const elm = self.getElement();\n if (self.removed) {\n return '';\n }\n if (elm) {\n const loadArgs = {\n ...args,\n load: true\n };\n const value = isTextareaOrInput(elm) ? elm.value : elm.innerHTML;\n const html = self.setContent(value, loadArgs);\n if (!loadArgs.no_events) {\n self.dispatch('LoadContent', {\n ...loadArgs,\n element: elm\n });\n }\n return html;\n } else {\n return '';\n }\n }\n save(args = {}) {\n const self = this;\n let elm = self.getElement();\n if (!elm || !self.initialized || self.removed) {\n return '';\n }\n const getArgs = {\n ...args,\n save: true,\n element: elm\n };\n let html = self.getContent(getArgs);\n const saveArgs = {\n ...getArgs,\n content: html\n };\n if (!saveArgs.no_events) {\n self.dispatch('SaveContent', saveArgs);\n }\n if (saveArgs.format === 'raw') {\n self.dispatch('RawSaveContent', saveArgs);\n }\n html = saveArgs.content;\n if (!isTextareaOrInput(elm)) {\n if (args.is_removing || !self.inline) {\n elm.innerHTML = html;\n }\n const form = DOM$1.getParent(self.id, 'form');\n if (form) {\n each$1(form.elements, elm => {\n if (elm.name === self.id) {\n elm.value = html;\n return false;\n } else {\n return true;\n }\n });\n }\n } else {\n elm.value = html;\n }\n saveArgs.element = getArgs.element = elm = null;\n if (saveArgs.set_dirty !== false) {\n self.setDirty(false);\n }\n return html;\n }\n setContent(content, args) {\n return setContent(this, content, args);\n }\n getContent(args) {\n return getContent(this, args);\n }\n insertContent(content, args) {\n if (args) {\n content = extend({ content }, args);\n }\n this.execCommand('mceInsertContent', false, content);\n }\n resetContent(initialContent) {\n if (initialContent === undefined) {\n setContent(this, this.startContent, { format: 'raw' });\n } else {\n setContent(this, initialContent);\n }\n this.undoManager.reset();\n this.setDirty(false);\n this.nodeChanged();\n }\n isDirty() {\n return !this.isNotDirty;\n }\n setDirty(state) {\n const oldState = !this.isNotDirty;\n this.isNotDirty = !state;\n if (state && state !== oldState) {\n this.dispatch('dirty');\n }\n }\n getContainer() {\n const self = this;\n if (!self.container) {\n self.container = self.editorContainer || DOM$1.get(self.id + '_parent');\n }\n return self.container;\n }\n getContentAreaContainer() {\n return this.contentAreaContainer;\n }\n getElement() {\n if (!this.targetElm) {\n this.targetElm = DOM$1.get(this.id);\n }\n return this.targetElm;\n }\n getWin() {\n const self = this;\n if (!self.contentWindow) {\n const elm = self.iframeElement;\n if (elm) {\n self.contentWindow = elm.contentWindow;\n }\n }\n return self.contentWindow;\n }\n getDoc() {\n const self = this;\n if (!self.contentDocument) {\n const win = self.getWin();\n if (win) {\n self.contentDocument = win.document;\n }\n }\n return self.contentDocument;\n }\n getBody() {\n var _a, _b;\n const doc = this.getDoc();\n return (_b = (_a = this.bodyElement) !== null && _a !== void 0 ? _a : doc === null || doc === void 0 ? void 0 : doc.body) !== null && _b !== void 0 ? _b : null;\n }\n convertURL(url, name, elm) {\n const self = this, getOption = self.options.get;\n const urlConverterCallback = getUrlConverterCallback(self);\n if (isFunction(urlConverterCallback)) {\n return urlConverterCallback.call(self, url, elm, true, name);\n }\n if (!getOption('convert_urls') || elm === 'link' || isObject(elm) && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) {\n return url;\n }\n const urlObject = new URI(url);\n if (urlObject.protocol !== 'http' && urlObject.protocol !== 'https' && urlObject.protocol !== '') {\n return url;\n }\n if (getOption('relative_urls')) {\n return self.documentBaseURI.toRelative(url);\n }\n url = self.documentBaseURI.toAbsolute(url, getOption('remove_script_host'));\n return url;\n }\n addVisual(elm) {\n addVisual(this, elm);\n }\n setEditableRoot(state) {\n setEditableRoot(this, state);\n }\n hasEditableRoot() {\n return hasEditableRoot(this);\n }\n remove() {\n remove$1(this);\n }\n destroy(automatic) {\n destroy(this, automatic);\n }\n uploadImages() {\n return this.editorUpload.uploadImages();\n }\n _scanForImages() {\n return this.editorUpload.scanForImages();\n }\n }\n\n const DOM = DOMUtils.DOM;\n const each = Tools.each;\n let boundGlobalEvents = false;\n let beforeUnloadDelegate;\n let editors = [];\n const globalEventDelegate = e => {\n const type = e.type;\n each(EditorManager.get(), editor => {\n switch (type) {\n case 'scroll':\n editor.dispatch('ScrollWindow', e);\n break;\n case 'resize':\n editor.dispatch('ResizeWindow', e);\n break;\n }\n });\n };\n const toggleGlobalEvents = state => {\n if (state !== boundGlobalEvents) {\n const DOM = DOMUtils.DOM;\n if (state) {\n DOM.bind(window, 'resize', globalEventDelegate);\n DOM.bind(window, 'scroll', globalEventDelegate);\n } else {\n DOM.unbind(window, 'resize', globalEventDelegate);\n DOM.unbind(window, 'scroll', globalEventDelegate);\n }\n boundGlobalEvents = state;\n }\n };\n const removeEditorFromList = targetEditor => {\n const oldEditors = editors;\n editors = filter$5(editors, editor => {\n return targetEditor !== editor;\n });\n if (EditorManager.activeEditor === targetEditor) {\n EditorManager.activeEditor = editors.length > 0 ? editors[0] : null;\n }\n if (EditorManager.focusedEditor === targetEditor) {\n EditorManager.focusedEditor = null;\n }\n return oldEditors.length !== editors.length;\n };\n const purgeDestroyedEditor = editor => {\n if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\n removeEditorFromList(editor);\n editor.unbindAllNativeEvents();\n editor.destroy(true);\n editor.removed = true;\n }\n };\n const isQuirksMode = document.compatMode !== 'CSS1Compat';\n const EditorManager = {\n ...Observable,\n baseURI: null,\n baseURL: null,\n defaultOptions: {},\n documentBaseURL: null,\n suffix: null,\n majorVersion: '7',\n minorVersion: '5.1',\n releaseDate: 'TBD',\n i18n: I18n,\n activeEditor: null,\n focusedEditor: null,\n setup() {\n const self = this;\n let baseURL = '';\n let suffix = '';\n let documentBaseURL = URI.getDocumentBaseUrl(document.location);\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\n documentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(documentBaseURL)) {\n documentBaseURL += '/';\n }\n }\n const preInit = window.tinymce || window.tinyMCEPreInit;\n if (preInit) {\n baseURL = preInit.base || preInit.baseURL;\n suffix = preInit.suffix;\n } else {\n const scripts = document.getElementsByTagName('script');\n for (let i = 0; i < scripts.length; i++) {\n const src = scripts[i].src || '';\n if (src === '') {\n continue;\n }\n const srcScript = src.substring(src.lastIndexOf('/'));\n if (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\n if (srcScript.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n break;\n }\n }\n if (!baseURL && document.currentScript) {\n const src = document.currentScript.src;\n if (src.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n }\n }\n self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\n self.documentBaseURL = documentBaseURL;\n self.baseURI = new URI(self.baseURL);\n self.suffix = suffix;\n setup$w(self);\n },\n overrideDefaults(defaultOptions) {\n const baseUrl = defaultOptions.base_url;\n if (baseUrl) {\n this._setBaseUrl(baseUrl);\n }\n const suffix = defaultOptions.suffix;\n if (suffix) {\n this.suffix = suffix;\n }\n this.defaultOptions = defaultOptions;\n const pluginBaseUrls = defaultOptions.plugin_base_urls;\n if (pluginBaseUrls !== undefined) {\n each$d(pluginBaseUrls, (pluginBaseUrl, pluginName) => {\n AddOnManager.PluginManager.urls[pluginName] = pluginBaseUrl;\n });\n }\n },\n init(options) {\n const self = this;\n let result;\n const invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' ');\n const isInvalidInlineTarget = (options, elm) => options.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\n const createId = elm => {\n let id = elm.id;\n if (!id) {\n id = get$a(elm, 'name').filter(name => !DOM.get(name)).getOrThunk(DOM.uniqueId);\n elm.setAttribute('id', id);\n }\n return id;\n };\n const execCallback = name => {\n const callback = options[name];\n if (!callback) {\n return;\n }\n return callback.apply(self, []);\n };\n const findTargets = options => {\n if (Env.browser.isIE() || Env.browser.isEdge()) {\n initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tiny.cloud/docs/tinymce/7/support/#supportedwebbrowsers');\n return [];\n } else if (isQuirksMode) {\n initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.');\n return [];\n } else if (isString(options.selector)) {\n return DOM.select(options.selector);\n } else if (isNonNullable(options.target)) {\n return [options.target];\n } else {\n return [];\n }\n };\n let provideResults = editors => {\n result = editors;\n };\n const initEditors = () => {\n let initCount = 0;\n const editors = [];\n let targets;\n const createEditor = (id, options, targetElm) => {\n const editor = new Editor(id, options, self);\n editors.push(editor);\n editor.on('init', () => {\n if (++initCount === targets.length) {\n provideResults(editors);\n }\n });\n editor.targetElm = editor.targetElm || targetElm;\n editor.render();\n };\n DOM.unbind(window, 'ready', initEditors);\n execCallback('onpageload');\n targets = unique$1(findTargets(options));\n Tools.each(targets, elm => {\n purgeDestroyedEditor(self.get(elm.id));\n });\n targets = Tools.grep(targets, elm => {\n return !self.get(elm.id);\n });\n if (targets.length === 0) {\n provideResults([]);\n } else {\n each(targets, elm => {\n if (isInvalidInlineTarget(options, elm)) {\n initError('Could not initialize inline editor on invalid inline target element', elm);\n } else {\n createEditor(createId(elm), options, elm);\n }\n });\n }\n };\n DOM.bind(window, 'ready', initEditors);\n return new Promise(resolve => {\n if (result) {\n resolve(result);\n } else {\n provideResults = editors => {\n resolve(editors);\n };\n }\n });\n },\n get(id) {\n if (arguments.length === 0) {\n return editors.slice(0);\n } else if (isString(id)) {\n return find$2(editors, editor => {\n return editor.id === id;\n }).getOr(null);\n } else if (isNumber(id)) {\n return editors[id] ? editors[id] : null;\n } else {\n return null;\n }\n },\n add(editor) {\n const self = this;\n const existingEditor = self.get(editor.id);\n if (existingEditor === editor) {\n return editor;\n }\n if (existingEditor === null) {\n editors.push(editor);\n }\n toggleGlobalEvents(true);\n self.activeEditor = editor;\n self.dispatch('AddEditor', { editor });\n if (!beforeUnloadDelegate) {\n beforeUnloadDelegate = e => {\n const event = self.dispatch('BeforeUnload');\n if (event.returnValue) {\n e.preventDefault();\n e.returnValue = event.returnValue;\n return event.returnValue;\n }\n };\n window.addEventListener('beforeunload', beforeUnloadDelegate);\n }\n return editor;\n },\n createEditor(id, options) {\n return this.add(new Editor(id, options, this));\n },\n remove(selector) {\n const self = this;\n let editor;\n if (!selector) {\n for (let i = editors.length - 1; i >= 0; i--) {\n self.remove(editors[i]);\n }\n return;\n }\n if (isString(selector)) {\n each(DOM.select(selector), elm => {\n editor = self.get(elm.id);\n if (editor) {\n self.remove(editor);\n }\n });\n return;\n }\n editor = selector;\n if (isNull(self.get(editor.id))) {\n return null;\n }\n if (removeEditorFromList(editor)) {\n self.dispatch('RemoveEditor', { editor });\n }\n if (editors.length === 0) {\n window.removeEventListener('beforeunload', beforeUnloadDelegate);\n }\n editor.remove();\n toggleGlobalEvents(editors.length > 0);\n return editor;\n },\n execCommand(cmd, ui, value) {\n var _a;\n const self = this;\n const editorId = isObject(value) ? (_a = value.id) !== null && _a !== void 0 ? _a : value.index : value;\n switch (cmd) {\n case 'mceAddEditor': {\n if (!self.get(editorId)) {\n const editorOptions = value.options;\n new Editor(editorId, editorOptions, self).render();\n }\n return true;\n }\n case 'mceRemoveEditor': {\n const editor = self.get(editorId);\n if (editor) {\n editor.remove();\n }\n return true;\n }\n case 'mceToggleEditor': {\n const editor = self.get(editorId);\n if (!editor) {\n self.execCommand('mceAddEditor', false, value);\n return true;\n }\n if (editor.isHidden()) {\n editor.show();\n } else {\n editor.hide();\n }\n return true;\n }\n }\n if (self.activeEditor) {\n return self.activeEditor.execCommand(cmd, ui, value);\n }\n return false;\n },\n triggerSave: () => {\n each(editors, editor => {\n editor.save();\n });\n },\n addI18n: (code, items) => {\n I18n.add(code, items);\n },\n translate: text => {\n return I18n.translate(text);\n },\n setActive(editor) {\n const activeEditor = this.activeEditor;\n if (this.activeEditor !== editor) {\n if (activeEditor) {\n activeEditor.dispatch('deactivate', { relatedTarget: editor });\n }\n editor.dispatch('activate', { relatedTarget: activeEditor });\n }\n this.activeEditor = editor;\n },\n _setBaseUrl(baseUrl) {\n this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\n this.baseURI = new URI(this.baseURL);\n }\n };\n EditorManager.setup();\n\n const setup = () => {\n const dataValue = value$2();\n const FakeClipboardItem = items => ({\n items,\n types: keys(items),\n getType: type => get$a(items, type).getOrUndefined()\n });\n const write = data => {\n dataValue.set(data);\n };\n const read = () => dataValue.get().getOrUndefined();\n const clear = dataValue.clear;\n return {\n FakeClipboardItem,\n write,\n read,\n clear\n };\n };\n const FakeClipboard = setup();\n\n const min = Math.min, max = Math.max, round = Math.round;\n const relativePosition = (rect, targetRect, rel) => {\n let x = targetRect.x;\n let y = targetRect.y;\n const w = rect.w;\n const h = rect.h;\n const targetW = targetRect.w;\n const targetH = targetRect.h;\n const relChars = (rel || '').split('');\n if (relChars[0] === 'b') {\n y += targetH;\n }\n if (relChars[1] === 'r') {\n x += targetW;\n }\n if (relChars[0] === 'c') {\n y += round(targetH / 2);\n }\n if (relChars[1] === 'c') {\n x += round(targetW / 2);\n }\n if (relChars[3] === 'b') {\n y -= h;\n }\n if (relChars[4] === 'r') {\n x -= w;\n }\n if (relChars[3] === 'c') {\n y -= round(h / 2);\n }\n if (relChars[4] === 'c') {\n x -= round(w / 2);\n }\n return create$2(x, y, w, h);\n };\n const findBestRelativePosition = (rect, targetRect, constrainRect, rels) => {\n for (let i = 0; i < rels.length; i++) {\n const pos = relativePosition(rect, targetRect, rels[i]);\n if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) {\n return rels[i];\n }\n }\n return null;\n };\n const inflate = (rect, w, h) => {\n return create$2(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);\n };\n const intersect = (rect, cropRect) => {\n const x1 = max(rect.x, cropRect.x);\n const y1 = max(rect.y, cropRect.y);\n const x2 = min(rect.x + rect.w, cropRect.x + cropRect.w);\n const y2 = min(rect.y + rect.h, cropRect.y + cropRect.h);\n if (x2 - x1 < 0 || y2 - y1 < 0) {\n return null;\n }\n return create$2(x1, y1, x2 - x1, y2 - y1);\n };\n const clamp = (rect, clampRect, fixedSize) => {\n let x1 = rect.x;\n let y1 = rect.y;\n let x2 = rect.x + rect.w;\n let y2 = rect.y + rect.h;\n const cx2 = clampRect.x + clampRect.w;\n const cy2 = clampRect.y + clampRect.h;\n const underflowX1 = max(0, clampRect.x - x1);\n const underflowY1 = max(0, clampRect.y - y1);\n const overflowX2 = max(0, x2 - cx2);\n const overflowY2 = max(0, y2 - cy2);\n x1 += underflowX1;\n y1 += underflowY1;\n if (fixedSize) {\n x2 += underflowX1;\n y2 += underflowY1;\n x1 -= overflowX2;\n y1 -= overflowY2;\n }\n x2 -= overflowX2;\n y2 -= overflowY2;\n return create$2(x1, y1, x2 - x1, y2 - y1);\n };\n const create$2 = (x, y, w, h) => {\n return {\n x,\n y,\n w,\n h\n };\n };\n const fromClientRect = clientRect => {\n return create$2(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\n };\n const Rect = {\n inflate,\n relativePosition,\n findBestRelativePosition,\n intersect,\n clamp,\n create: create$2,\n fromClientRect\n };\n\n const awaiter = (resolveCb, rejectCb, timeout = 1000) => {\n let done = false;\n let timer = null;\n const complete = completer => (...args) => {\n if (!done) {\n done = true;\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n completer.apply(null, args);\n }\n };\n const resolve = complete(resolveCb);\n const reject = complete(rejectCb);\n const start = (...args) => {\n if (!done && timer === null) {\n timer = setTimeout(() => reject.apply(null, args), timeout);\n }\n };\n return {\n start,\n resolve,\n reject\n };\n };\n const create$1 = () => {\n const tasks = {};\n const resultFns = {};\n const resources = {};\n const load = (id, url) => {\n const loadErrMsg = `Script at URL \"${ url }\" failed to load`;\n const runErrMsg = `Script at URL \"${ url }\" did not call \\`tinymce.Resource.add('${ id }', data)\\` within 1 second`;\n if (tasks[id] !== undefined) {\n return tasks[id];\n } else {\n const task = new Promise((resolve, reject) => {\n const waiter = awaiter(resolve, reject);\n resultFns[id] = waiter.resolve;\n ScriptLoader.ScriptLoader.loadScript(url).then(() => waiter.start(runErrMsg), () => waiter.reject(loadErrMsg));\n });\n tasks[id] = task;\n return task;\n }\n };\n const add = (id, data) => {\n if (resultFns[id] !== undefined) {\n resultFns[id](data);\n delete resultFns[id];\n }\n tasks[id] = Promise.resolve(data);\n resources[id] = data;\n };\n const has = id => {\n return id in resources;\n };\n const unload = id => {\n delete tasks[id];\n delete resources[id];\n };\n const get = id => resources[id];\n return {\n load,\n add,\n has,\n get,\n unload\n };\n };\n const Resource = create$1();\n\n const create = () => (() => {\n let data = {};\n let keys = [];\n const storage = {\n getItem: key => {\n const item = data[key];\n return item ? item : null;\n },\n setItem: (key, value) => {\n keys.push(key);\n data[key] = String(value);\n },\n key: index => {\n return keys[index];\n },\n removeItem: key => {\n keys = keys.filter(k => k === key);\n delete data[key];\n },\n clear: () => {\n keys = [];\n data = {};\n },\n length: 0\n };\n Object.defineProperty(storage, 'length', {\n get: () => keys.length,\n configurable: false,\n enumerable: false\n });\n return storage;\n })();\n\n let localStorage;\n try {\n const test = '__storage_test__';\n localStorage = window.localStorage;\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n } catch (e) {\n localStorage = create();\n }\n var LocalStorage = localStorage;\n\n const publicApi = {\n geom: { Rect },\n util: {\n Delay,\n Tools,\n VK,\n URI,\n EventDispatcher,\n Observable,\n I18n,\n LocalStorage,\n ImageUploader\n },\n dom: {\n EventUtils,\n TreeWalker: DomTreeWalker,\n TextSeeker,\n DOMUtils,\n ScriptLoader,\n RangeUtils,\n Serializer: DomSerializer,\n StyleSheetLoader,\n ControlSelection,\n BookmarkManager,\n Selection: EditorSelection,\n Event: EventUtils.Event\n },\n html: {\n Styles,\n Entities,\n Node: AstNode,\n Schema,\n DomParser,\n Writer,\n Serializer: HtmlSerializer\n },\n Env,\n AddOnManager,\n Annotator,\n Formatter,\n UndoManager,\n EditorCommands,\n WindowManager,\n NotificationManager,\n EditorObservable,\n Shortcuts,\n Editor,\n FocusManager,\n EditorManager,\n DOM: DOMUtils.DOM,\n ScriptLoader: ScriptLoader.ScriptLoader,\n PluginManager,\n ThemeManager,\n ModelManager,\n IconManager,\n Resource,\n FakeClipboard,\n trim: Tools.trim,\n isArray: Tools.isArray,\n is: Tools.is,\n toArray: Tools.toArray,\n makeMap: Tools.makeMap,\n each: Tools.each,\n map: Tools.map,\n grep: Tools.grep,\n inArray: Tools.inArray,\n extend: Tools.extend,\n walk: Tools.walk,\n resolve: Tools.resolve,\n explode: Tools.explode,\n _addCacheSuffix: Tools._addCacheSuffix\n };\n const tinymce$1 = Tools.extend(EditorManager, publicApi);\n\n const exportToModuleLoaders = tinymce => {\n if (typeof module === 'object') {\n try {\n module.exports = tinymce;\n } catch (_) {\n }\n }\n };\n const exportToWindowGlobal = tinymce => {\n window.tinymce = tinymce;\n window.tinyMCE = tinymce;\n };\n exportToWindowGlobal(tinymce$1);\n exportToModuleLoaders(tinymce$1);\n\n})();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*.*?\\*\\//gs;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText\n .replace(styleCommentRE, '')\n .split(listDelimiterRE)\n .forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === 'number') {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `\r\n \r\n \r\n

    \r\n {{ getLabel('termsAndConditionsErrorMessage') }}\r\n

    \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n","\r\n\r\n\r\n","import { ref, computed, onMounted } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\n\r\nexport default {\r\n name: \"WebshopPaymentSelector\",\r\n components: { FormInputTextField },\r\n props: {},\r\n setup() {\r\n const paymentOptions = {\r\n \"private\": [\r\n 'mobilepay',\r\n 'creditcard'\r\n ],\r\n \"company\": [\r\n 'mobilepay',\r\n 'creditcard'\r\n ],\r\n \"publicInstitution\": [\r\n 'mobilepay',\r\n 'creditcard',\r\n 'betalingsservice'\r\n ],\r\n \"frivillige\": [\r\n 'betalingsservice'\r\n ]\r\n }\r\n \r\n const store = useStore()\r\n const unSubmitted = ref(true)\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({ labelCollection: 'webshopPaymentSelector', labelKey: labelKey })\r\n const paymentType = computed(()=> store.state.checkout.purchaseData.invoice.userInformation.customerType)\r\n const paymentMethodInState = computed(()=> store.state.checkout.stepThree.paymentData.paymentMethod)\r\n\r\n const setPaymentTypeOnEnter = function(e){\r\n const option = e.target.getAttribute('for')\r\n const radio = document.getElementById(option)\r\n paymentMethod.value = +radio.value\r\n commitPaymentInputToStore()\r\n }\r\n \r\n // in order to re-select first option on first visit to paymentSelector \r\n const paymentMethod = ref(paymentMethodInState.value ? paymentMethodInState.value : 1)\r\n const paymentMethodFilled = computed(() => {\r\n return unSubmitted.value ? false : !!paymentMethod.value > 0\r\n })\r\n\r\n const updateActivePaymentMethod = () => {\r\n // updating the active payment method to stepThree in state\r\n // in order to apply active step styles \r\n if(paymentMethodFilled.value ) {\r\n store.commit('checkout/set_active_payment_method', paymentMethod.value)\r\n }\r\n }\r\n\r\n const commitPaymentInputToStore = () => {\r\n updateActivePaymentMethod()\r\n unSubmitted.value = false\r\n let isAllValid = paymentMethodFilled.value\r\n\r\n store.commit('checkout/set_payment_data_validation_success', paymentMethodFilled.value)\r\n\r\n if(isAllValid){\r\n const paymentPayload = { paymentMethod: paymentMethod.value }\r\n store.commit('checkout/set_payment_data', paymentPayload)\r\n }\r\n }\r\n \r\n const determineActivePaymentMethod = function(currentPaymentMethod) {\r\n // if nothing in state yet, give styles to clicked method\r\n // concious choice with '==', as we need to compare string and number\r\n if(!paymentMethodInState.value) {\r\n return currentPaymentMethod == paymentMethod.value ? true : false\r\n } else {\r\n return currentPaymentMethod == paymentMethodInState.value ? true : false\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n // Update store with data initially set in this component\r\n commitPaymentInputToStore()\r\n })\r\n\r\n return {\r\n paymentMethod,\r\n paymentMethodFilled,\r\n paymentOptions,\r\n paymentType,\r\n unSubmitted,\r\n setPaymentTypeOnEnter,\r\n commitPaymentInputToStore,\r\n determineActivePaymentMethod,\r\n getLabel,\r\n }\r\n }\r\n}","import { render } from \"./WebshopPaymentSelector.vue?vue&type=template&id=c23ea97a\"\nimport script from \"./WebshopPaymentSelector.vue?vue&type=script&lang=js\"\nexport * from \"./WebshopPaymentSelector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nimport { ref, computed, onMounted } from 'vue'\r\nimport WebshopPaymentSelector from \"components/WebshopPaymentSelector/WebshopPaymentSelector.vue\"\r\nimport { checkoutScrollToTop } from '../CheckoutContent/CheckoutScrollToTop'\r\n\r\nexport default {\r\n name: \"CheckoutStepThree\",\r\n components: {\r\n WebshopPaymentSelector \r\n },\r\n props: {\r\n frivillige: {\r\n type: Boolean,\r\n default: false,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n onMounted(() => checkoutScrollToTop())\r\n\r\n const store = useStore()\r\n\r\n const purchaseData = computed(()=> store.state.checkout.purchaseData )\r\n\r\n const containsUdlaansvare = computed(() => store.state.basket.basketState.containsUdlaansvare)\r\n const showPickUpAddresses = computed( () => store.state.checkout.stepTwo.showPickUpAddresses)\r\n const displayUdlaansvarePickupMessage = computed(() => \r\n containsUdlaansvare.value && \r\n showPickUpAddresses.value && \r\n getLabelCheckoutNavigation('udlaanDeliveryText')\r\n )\r\n \r\n const noDeliveryTitle = computed(()=> showPickUpAddresses.value || store.state.checkout.stepTwo.showDifferentAddress ? false : true)\r\n \r\n const isSubmitting = computed(()=> store.state.checkout.isSubmitting ?? false)\r\n \r\n const unSubmitted = ref(true)\r\n const hideAllErrors = ref(false)\r\n\r\n const termsInput = ref(false)\r\n\r\n const termsInputFilled = computed(()=> termsInput.value ? termsInput.value : false)\r\n\r\n const paymentData = computed( () => store.state.checkout.stepThree.paymentData)\r\n \r\n const paymentDataValidationStatus = computed( () => store.state.checkout.stepThree.paymentData?.paymentMethod) \r\n\r\n const showPaymentOptions = computed( () => !(store.state.basket?.totals?.isOrderFree ?? false))\r\n\r\n const inputIsValid = function () {\r\n const paymentMethod = showPaymentOptions.value ? paymentDataValidationStatus.value : true\r\n\r\n return termsInputFilled.value && !!paymentMethod\r\n }\r\n \r\n const handleSendToStep = function (stepNumber) {\r\n store.commit('checkout/update_checkout_step', { nextStepNumber: stepNumber })\r\n }\r\n\r\n const onSubmit = function () {\r\n unSubmitted.value = false\r\n\r\n hideAllErrors.value = true\r\n setTimeout(()=>{\r\n // we delay a bit here to allow screenreaders to catchup to changes in the DOM about invalid fields.\r\n hideAllErrors.value = false\r\n },100)\r\n\r\n if (!inputIsValid())\r\n return false\r\n\r\n const checkoutPaymentPayload = {\r\n paymentData: paymentData.value\r\n }\r\n\r\n // if terms not accepted do not commit data\r\n if(!termsInput.value)\r\n return false\r\n\r\n if (showPaymentOptions.value)\r\n store.commit('checkout/set_purchase_data_payment', checkoutPaymentPayload )\r\n \r\n // if succes set been filled to current step, as data is now in session storage\r\n store.commit('checkout/update_checkout_step_been_filled', 3)\r\n\r\n // dispatch all mapped purchase data to BE\r\n if (props.frivillige) {\r\n store.commit('checkout/set_purchase_data_payment', { paymentData: { paymentMethod: '3'} })\r\n store.dispatch('checkout/placeOrderFrivillige')\r\n } else {\r\n store.dispatch('checkout/placeOrder')\r\n }\r\n }\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({ labelCollection: 'informationAndDelivery', labelKey, allowEmpty: true })\r\n const getLabelCheckoutNavigation = (labelKey) => store.getters['labels/getLabel']({ labelCollection: 'checkout', labelKey: labelKey })\r\n\r\n return {\r\n getLabel,\r\n getLabelCheckoutNavigation,\r\n termsInput,\r\n termsInputFilled,\r\n onSubmit,\r\n isSubmitting,\r\n unSubmitted,\r\n hideAllErrors,\r\n purchaseData,\r\n noDeliveryTitle,\r\n handleSendToStep,\r\n noDeliveryTitle,\r\n toStepTwo: () => store.commit('checkout/update_checkout_step',{nextStepNumber: 2}),\r\n showPaymentOptions,\r\n displayUdlaansvarePickupMessage\r\n }\r\n }\r\n}","import { render } from \"./CheckoutStepThree.vue?vue&type=template&id=18b1b4d2\"\nimport script from \"./CheckoutStepThree.vue?vue&type=script&lang=js\"\nexport * from \"./CheckoutStepThree.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nimport { onMounted, computed } from 'vue'\r\nimport BasketAside from 'components/BasketAside/BasketAside.vue'\r\nimport BasketCard from 'components/BasketCard/BasketCard'\r\nimport CheckoutStepOne from 'components/CheckoutStepOne/CheckoutStepOne.vue'\r\nimport CheckoutStepTwo from 'components/CheckoutStepTwo/CheckoutStepTwo.vue'\r\nimport CheckoutStepThree from 'components/CheckoutStepThree/CheckoutStepThree.vue'\r\n\r\nexport default {\r\n name: 'CheckoutContent',\r\n components: {\r\n BasketAside,\r\n BasketCard,\r\n CheckoutStepOne,\r\n CheckoutStepTwo,\r\n CheckoutStepThree\r\n },\r\n props: {},\r\n setup() {\r\n const store = useStore()\r\n\r\n onMounted(() => {\r\n store.dispatch('basket/fetchBasket')\r\n })\r\n\r\n const checkoutSteps = computed(() => store.state.checkout.checkoutSteps)\r\n\r\n const activeStep = computed(() =>\r\n checkoutSteps.value.find((i) => i.active === true)\r\n )\r\n\r\n const determineCheckoutStepContent = function () {\r\n switch (activeStep.value.stepNumber) {\r\n case 1:\r\n return 'CheckoutStepOne'\r\n case 2:\r\n return 'CheckoutStepTwo'\r\n case 3:\r\n return 'CheckoutStepThree'\r\n case 4:\r\n // here user gets directed to receipt page\r\n return\r\n default:\r\n console.warn('No active checkout step defined')\r\n break\r\n }\r\n }\r\n\r\n const handleStepClick = function (clickedStepNumber) {\r\n const validClickedStepNumber =\r\n clickedStepNumber < activeStep.value.stepNumber\r\n ? clickedStepNumber\r\n : activeStep.value.stepNumber\r\n store.commit('checkout/update_checkout_step', {\r\n nextStepNumber: validClickedStepNumber\r\n })\r\n }\r\n\r\n return {\r\n activeStep,\r\n checkoutSteps,\r\n determineCheckoutStepContent,\r\n handleStepClick\r\n }\r\n }\r\n}\r\n","import { render } from \"./CheckoutContent.vue?vue&type=template&id=804c6340\"\nimport script from \"./CheckoutContent.vue?vue&type=script&lang=js\"\nexport * from \"./CheckoutContent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n name: 'CheckoutHeader',\r\n setup() {}\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './CheckoutHeader.options'\r\n\r\nconst el = '.kb-component--checkout-header'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (DOM && !DOM.hasAttribute('data-v-app')) {\r\n const template = DOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(DOM)\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { computed, ref } from 'vue'\r\n\r\nexport default {\r\n name: 'ColorPreview',\r\n setup() {\r\n const cssClass = ref('test \\n igen')\r\n\r\n const config = ref({\r\n '--colortheme-primary': '#dcdcdc',\r\n '--colortheme-secondary': '#4e4e4e',\r\n '--colortheme-spot': '#990000',\r\n '--colortheme-text': '#000000',\r\n '--colortheme-icon': '#990000',\r\n '--colortheme-quote': '#4e4e4e'\r\n })\r\n\r\n const string = computed(\r\n () =>\r\n Object.entries(config.value).reduce((string, entry) => {\r\n string += `\\t${entry[0]}:${entry[1]};\\n`\r\n return string\r\n }, `html {\\n`) + '\\n}'\r\n )\r\n\r\n const themeClassName = computed(() => {\r\n return `kb-colortheme--${themeName}`\r\n })\r\n\r\n const insert = function () {\r\n remove()\r\n let el = document.createElement('style')\r\n el.setAttribute('type', 'text/css')\r\n el.setAttribute('data', 'custom')\r\n el.innerText = string.value\r\n document.head.appendChild(el)\r\n }\r\n\r\n const remove = function () {\r\n document.querySelector('style[data=\"custom\"]')?.remove()\r\n }\r\n\r\n const copy = function () {\r\n let copyText = document.querySelector('#cssoutput')\r\n copyText.removeAttribute('disabled')\r\n copyText.select()\r\n document.execCommand('copy')\r\n copyText.setAttribute('disabled', 'disabled')\r\n }\r\n\r\n return {\r\n config,\r\n copy,\r\n cssClass,\r\n insert,\r\n remove,\r\n string\r\n }\r\n }\r\n}\r\n","import { render } from \"./ColorPreview.vue?vue&type=template&id=b0580304\"\nimport script from \"./ColorPreview.vue?vue&type=script&lang=js\"\nexport * from \"./ColorPreview.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ColorPreview from './ColorPreview'\r\n\r\nconst el = '.kb-component--color-preview'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (DOM) {\r\n const component = createApp(ColorPreview).use(Store)\r\n component.mount(el)\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { onMounted, watch, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: 'ConfirmChanges',\r\n setup() {\r\n const store = useStore()\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active\r\n\r\n let first, last, close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n // button will execute the method set in store by: 'set_page_overlay_content_data' mutation\r\n const confirmAction = function () {\r\n store.state.main.page_overlay_content_data.callback()\r\n }\r\n\r\n const cancelAction = function () {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n onMounted(() => {\r\n first = document.querySelector('.kb-button[data-order=\"first\"]')\r\n last = document.querySelector('.kb-button[data-order=\"last\"]')\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n cancelAction,\r\n confirmAction,\r\n tabTrap,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'ConfirmChanges',\r\n labelKey\r\n })\r\n }\r\n }\r\n}\r\n","import { render } from \"./ConfirmChanges.vue?vue&type=template&id=98d48c44\"\nimport script from \"./ConfirmChanges.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmChanges.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed, onBeforeMount } from 'vue'\r\n\r\nexport default {\r\n name: \"ConfirmDeleteOverlay\",\r\n setup(){\r\n const store = useStore()\r\n \r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n \r\n const deleteItemType = computed(()=> store.state.frivillige.delete_item_type)\r\n const deleteItemName = computed(() => store.state.frivillige.delete_item_name)\r\n\r\n\r\n onBeforeMount(() => {\r\n // creating updated delete_id & delete_name\r\n store.dispatch('frivillige/getDeleteItemId')\r\n store.dispatch('frivillige/getDeleteItemName')\r\n store.dispatch('frivillige/getDeleteItemType')\r\n })\r\n\r\n const submitConfirmDelete = () => {\r\n\r\n const body = {\r\n deleteStatus: true\r\n }\r\n\r\n store.dispatch(\"frivillige/submitConfirmDelete\", {\r\n body\r\n })\r\n .then(() => {\r\n store.dispatch('main/closePageOverlay')\r\n store.dispatch('search/refreshSearches')\r\n });\r\n \r\n };\r\n\r\n const closeOverlay = function() {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n \r\n const handleRegret = () => {\r\n closeOverlay() \r\n };\r\n \r\n const determineLabelCollection = function() {\r\n if(deleteItemType.value === \"Dokument\") {\r\n return \"ConfirmDeleteOverlayFile\"\r\n } else if (deleteItemType.value === \"Mappe\"){\r\n return \"ConfirmDeleteOverlayFolder\"\r\n } else {\r\n return \"ConfirmDeleteOverlay\"\r\n }\r\n }\r\n\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: determineLabelCollection(), labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n }\r\n\r\n return {\r\n isSubmitting,\r\n deleteItemName,\r\n getLabel,\r\n handleRegret,\r\n submitConfirmDelete\r\n }\r\n \r\n }\r\n}","import { render } from \"./ConfirmDeleteOverlay.vue?vue&type=template&id=38f29c78\"\nimport script from \"./ConfirmDeleteOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDeleteOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: 'ConfirmDeleteProfile',\r\n setup() {\r\n const store = useStore()\r\n \r\n let first, last, close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n // button will execute the method set in store by: 'set_page_overlay_content_data' mutation\r\n const confirmAction = function () {\r\n store.state.main.page_overlay_content_data.callback()\r\n }\r\n\r\n const cancelAction = function () {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n onMounted(() => {\r\n first = document.querySelector('.kb-button[data-order=\"first\"]')\r\n last = document.querySelector('.kb-button[data-order=\"last\"]')\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n cancelAction,\r\n confirmAction,\r\n tabTrap,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'ConfirmDeleteProfile',\r\n labelKey\r\n })\r\n }\r\n }\r\n}\r\n","import { render } from \"./ConfirmDeleteProfile.vue?vue&type=template&id=624d604c\"\nimport script from \"./ConfirmDeleteProfile.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDeleteProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n name: 'ContactBanner',\r\n setup() {}\r\n}\r\n","export default {\r\n name: 'ContributionSelector',\r\n props: {\r\n data: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup() {}\r\n}\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\n\r\nconst options = formFieldCommonOptions('FormCheckbox', {\r\n validatorFunction(input) {\r\n return input\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormCheckbox.vue?vue&type=template&id=4f82744c\"\nimport script from \"./FormCheckbox.vue?vue&type=script&lang=js\"\nexport * from \"./FormCheckbox.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from \"vuex\"\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField.vue\"\r\nimport FormCheckbox from \"../FormCheckbox/FormCheckbox.vue\"\r\nimport { ref } from \"vue\"\r\n\r\nexport default {\r\n name: \"CreateCancerForumProfile\",\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox\r\n },\r\n setup() {\r\n const store = useStore()\r\n const cancerForumName = ref(\"\")\r\n const cancerForumConsent = ref(false)\r\n const displayError = ref({\r\n name: false,\r\n consent: false \r\n })\r\n const isSubmitting = ref(false)\r\n\r\n const getLabel = (labelKey)=> store.getters['labels/getLabel']({labelCollection: \"CreateCancerForumProfile\", labelKey: labelKey})\r\n\r\n const cancerForumErrorLabel = ref(getLabel('formCancerForumNameErrorLabel'))\r\n\r\n const setConsent = (e) => {\r\n const checkbox = e.target\r\n cancerForumConsent.value = checkbox.checked ?? false\r\n }\r\n\r\n const submitCreateProfile = async () => {\r\n displayError.value.name = cancerForumName.value === \"\"\r\n displayError.value.consent = !cancerForumConsent.value\r\n\r\n if (cancerForumConsent.value && cancerForumName.value !== \"\") {\r\n\r\n isSubmitting.value = true\r\n\r\n const response = await store.dispatch('forum/createCancerForumProfile', { \r\n body: cancerForumName.value,\r\n pageId: store.state.main.page_id \r\n })\r\n if (response.status === \"error\") {\r\n displayError.value.name = true\r\n cancerForumErrorLabel.value = response.message\r\n isSubmitting.value = false\r\n }\r\n }\r\n }\r\n\r\n return {\r\n cancerForumName,\r\n cancerForumConsent,\r\n displayError,\r\n cancerForumErrorLabel,\r\n isSubmitting,\r\n setConsent,\r\n submitCreateProfile,\r\n getLabel,\r\n }\r\n }\r\n}","import { render } from \"./CreateCancerForumProfile.vue?vue&type=template&id=9cce3cca\"\nimport script from \"./CreateCancerForumProfile.vue?vue&type=script&lang=js\"\nexport * from \"./CreateCancerForumProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\n\r\nconst options = formFieldCommonOptions('FormInputDropdown', {\r\n validatorFunction(input) {\r\n return input\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputDropdown.vue?vue&type=template&id=4b2b1216\"\nimport script from \"./FormInputDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputDropdown.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\n\r\nconst options = formFieldCommonOptions('FormRadioGroup', {\r\n validatorFunction(input) {\r\n return input\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormRadioGroup.vue?vue&type=template&id=2997fed6\"\nimport script from \"./FormRadioGroup.vue?vue&type=script&lang=js\"\nexport * from \"./FormRadioGroup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default function (input) {\r\n return typeof input === 'boolean'\r\n}\r\n","import nonEmptyString from './nonEmptyStringValidator.js'\r\n\r\nexport default function (input) {\r\n const regex = /^\\d{4}$/\r\n return nonEmptyString(input) && !!input.match(regex)\r\n}\r\n","import emailValidator from \"foundation/js/inputValidators/emailValidator\";\r\nimport isBoolean from \"foundation/js/inputValidators/isBoolean\";\r\nimport nameValidator from \"foundation/js/inputValidators/nameValidator\";\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\nimport phoneValidator from \"foundation/js/inputValidators/phoneValidator\";\r\nimport postalCodeValidator from \"foundation/js/inputValidators/postalCodeValidator\";\r\n\r\nconst config = [\r\n {\r\n name: 'nameOfEvent',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'description',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'shareInMainCalendar',\r\n value: false,\r\n isValid: true,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'mandatoryRegistration',\r\n value: false,\r\n isValid: true,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'maxParticipants',\r\n value: 0,\r\n isValid: true,\r\n validator: (value) => (value == undefined || (value > 0 && value <= 20000))\r\n },\r\n {\r\n name: 'contactPersonMyself',\r\n value: false,\r\n isValid: true,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'contactPersonOther',\r\n value: false,\r\n isValid: true,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'contactPersonEmail',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'contactPersonName',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'contactPersonPhone',\r\n value: '',\r\n isValid: true,\r\n validator: (phonenumber) => !phonenumber || phoneValidator(phonenumber)\r\n },\r\n {\r\n name: 'startDate',\r\n value: '',\r\n isValid: false,\r\n validator: () => false\r\n }, \r\n {\r\n name: 'endDate',\r\n value: '',\r\n isValid: false,\r\n validator: () => false\r\n },\r\n {\r\n name: 'startTime',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'endTime',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'address',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'postalCode',\r\n value: '',\r\n isValid: false,\r\n validator: postalCodeValidator\r\n },\r\n {\r\n name: 'city',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n \r\n }\r\n]\r\n\r\nexport default config","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { uuid } from './Utils';\nvar createState = function () { return ({\n listeners: [],\n scriptId: uuid('tiny-script'),\n scriptLoaded: false\n}); };\nvar CreateScriptLoader = function () {\n var state = createState();\n var injectScriptTag = function (scriptId, doc, url, callback) {\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = scriptId;\n scriptTag.src = url;\n var handler = function () {\n scriptTag.removeEventListener('load', handler);\n callback();\n };\n scriptTag.addEventListener('load', handler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n };\n var load = function (doc, url, callback) {\n if (state.scriptLoaded) {\n callback();\n }\n else {\n state.listeners.push(callback);\n if (!doc.getElementById(state.scriptId)) {\n injectScriptTag(state.scriptId, doc, url, function () {\n state.listeners.forEach(function (fn) { return fn(); });\n state.scriptLoaded = true;\n });\n }\n }\n };\n // Only to be used by tests.\n var reinitialize = function () {\n state = createState();\n };\n return {\n load: load,\n reinitialize: reinitialize\n };\n};\nvar ScriptLoader = CreateScriptLoader();\nexport { ScriptLoader };\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { watch } from 'vue';\nvar validEvents = [\n 'onActivate',\n 'onAddUndo',\n 'onBeforeAddUndo',\n 'onBeforeExecCommand',\n 'onBeforeGetContent',\n 'onBeforeRenderUI',\n 'onBeforeSetContent',\n 'onBeforePaste',\n 'onBlur',\n 'onChange',\n 'onClearUndos',\n 'onClick',\n 'onContextMenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onDeactivate',\n 'onDirty',\n 'onDrag',\n 'onDragDrop',\n 'onDragEnd',\n 'onDragGesture',\n 'onDragOver',\n 'onDrop',\n 'onExecCommand',\n 'onFocus',\n 'onFocusIn',\n 'onFocusOut',\n 'onGetContent',\n 'onHide',\n 'onInit',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoadContent',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onNodeChange',\n 'onObjectResizeStart',\n 'onObjectResized',\n 'onObjectSelected',\n 'onPaste',\n 'onPostProcess',\n 'onPostRender',\n 'onPreProcess',\n 'onProgressState',\n 'onRedo',\n 'onRemove',\n 'onReset',\n 'onSaveContent',\n 'onSelectionChange',\n 'onSetAttrib',\n 'onSetContent',\n 'onShow',\n 'onSubmit',\n 'onUndo',\n 'onVisualAid'\n];\nvar isValidKey = function (key) {\n return validEvents.map(function (event) { return event.toLowerCase(); }).indexOf(key.toLowerCase()) !== -1;\n};\nvar bindHandlers = function (initEvent, listeners, editor) {\n Object.keys(listeners)\n .filter(isValidKey)\n .forEach(function (key) {\n var handler = listeners[key];\n if (typeof handler === 'function') {\n if (key === 'onInit') {\n handler(initEvent, editor);\n }\n else {\n editor.on(key.substring(2), function (e) { return handler(e, editor); });\n }\n }\n });\n};\nvar bindModelHandlers = function (props, ctx, editor, modelValue) {\n var modelEvents = props.modelEvents ? props.modelEvents : null;\n var normalizedEvents = Array.isArray(modelEvents) ? modelEvents.join(' ') : modelEvents;\n watch(modelValue, function (val, prevVal) {\n if (editor && typeof val === 'string' && val !== prevVal && val !== editor.getContent({ format: props.outputFormat })) {\n editor.setContent(val);\n }\n });\n editor.on(normalizedEvents ? normalizedEvents : 'change input undo redo', function () {\n ctx.emit('update:modelValue', editor.getContent({ format: props.outputFormat }));\n });\n};\nvar initEditor = function (initEvent, props, ctx, editor, modelValue, content) {\n editor.setContent(content());\n if (ctx.attrs['onUpdate:modelValue']) {\n bindModelHandlers(props, ctx, editor, modelValue);\n }\n bindHandlers(initEvent, ctx.attrs, editor);\n};\nvar unique = 0;\nvar uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nvar isTextarea = function (element) {\n return element !== null && element.tagName.toLowerCase() === 'textarea';\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\nvar mergePlugins = function (initPlugins, inputPlugins) {\n return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\n};\nvar isNullOrUndefined = function (value) {\n return value === null || value === undefined;\n};\nexport { bindHandlers, bindModelHandlers, initEditor, isValidKey, uuid, isTextarea, mergePlugins, isNullOrUndefined };\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nvar getGlobal = function () { return (typeof window !== 'undefined' ? window : global); };\nvar getTinymce = function () {\n var global = getGlobal();\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","export var editorProps = {\n apiKey: String,\n cloudChannel: String,\n id: String,\n init: Object,\n initialValue: String,\n inline: Boolean,\n modelEvents: [String, Array],\n plugins: [String, Array],\n tagName: String,\n toolbar: [String, Array],\n modelValue: String,\n disabled: Boolean,\n tinymceScriptSrc: String,\n outputFormat: {\n type: String,\n validator: function (prop) { return prop === 'html' || prop === 'text'; }\n },\n};\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ScriptLoader } from '../ScriptLoader';\nimport { getTinymce } from '../TinyMCE';\nimport { isTextarea, mergePlugins, uuid, isNullOrUndefined, initEditor } from '../Utils';\nimport { editorProps } from './EditorPropTypes';\nimport { h, defineComponent, onMounted, ref, toRefs, nextTick, watch, onBeforeUnmount, onActivated, onDeactivated } from 'vue';\nvar renderInline = function (ce, id, elementRef, tagName) {\n return ce(tagName ? tagName : 'div', {\n id: id,\n ref: elementRef\n });\n};\nvar renderIframe = function (ce, id, elementRef) {\n return ce('textarea', {\n id: id,\n visibility: 'hidden',\n ref: elementRef\n });\n};\nvar defaultInitValues = { selector: undefined, target: undefined };\nexport var Editor = defineComponent({\n props: editorProps,\n setup: function (props, ctx) {\n var conf = props.init ? __assign(__assign({}, props.init), defaultInitValues) : __assign({}, defaultInitValues);\n var _a = toRefs(props), disabled = _a.disabled, modelValue = _a.modelValue, tagName = _a.tagName;\n var element = ref(null);\n var vueEditor = null;\n var elementId = props.id || uuid('tiny-vue');\n var inlineEditor = (props.init && props.init.inline) || props.inline;\n var modelBind = !!ctx.attrs['onUpdate:modelValue'];\n var mounting = true;\n var initialValue = props.initialValue ? props.initialValue : '';\n var cache = '';\n var getContent = function (isMounting) { return modelBind ?\n function () { return ((modelValue === null || modelValue === void 0 ? void 0 : modelValue.value) ? modelValue.value : ''); } :\n function () { return isMounting ? initialValue : cache; }; };\n var initWrapper = function () {\n var content = getContent(mounting);\n var finalInit = __assign(__assign({}, conf), { readonly: props.disabled, target: element.value, plugins: mergePlugins(conf.plugins, props.plugins), toolbar: props.toolbar || (conf.toolbar), inline: inlineEditor, setup: function (editor) {\n vueEditor = editor;\n editor.on('init', function (e) { return initEditor(e, props, ctx, editor, modelValue, content); });\n if (typeof conf.setup === 'function') {\n conf.setup(editor);\n }\n } });\n if (isTextarea(element.value)) {\n element.value.style.visibility = '';\n }\n getTinymce().init(finalInit);\n mounting = false;\n };\n watch(disabled, function (disable) {\n var _a;\n if (vueEditor !== null) {\n if (typeof ((_a = vueEditor.mode) === null || _a === void 0 ? void 0 : _a.set) === 'function') {\n vueEditor.mode.set(disable ? 'readonly' : 'design');\n }\n else {\n vueEditor.setMode(disable ? 'readonly' : 'design');\n }\n }\n });\n watch(tagName, function (_) {\n var _a;\n if (!modelBind) {\n cache = vueEditor.getContent();\n }\n (_a = getTinymce()) === null || _a === void 0 ? void 0 : _a.remove(vueEditor);\n nextTick(function () { return initWrapper(); });\n });\n onMounted(function () {\n if (getTinymce() !== null) {\n initWrapper();\n }\n else if (element.value && element.value.ownerDocument) {\n var channel = props.cloudChannel ? props.cloudChannel : '6';\n var apiKey = props.apiKey ? props.apiKey : 'no-api-key';\n var scriptSrc = isNullOrUndefined(props.tinymceScriptSrc) ?\n \"https://cdn.tiny.cloud/1/\".concat(apiKey, \"/tinymce/\").concat(channel, \"/tinymce.min.js\") :\n props.tinymceScriptSrc;\n ScriptLoader.load(element.value.ownerDocument, scriptSrc, initWrapper);\n }\n });\n onBeforeUnmount(function () {\n if (getTinymce() !== null) {\n getTinymce().remove(vueEditor);\n }\n });\n if (!inlineEditor) {\n onActivated(function () {\n if (!mounting) {\n initWrapper();\n }\n });\n onDeactivated(function () {\n var _a;\n if (!modelBind) {\n cache = vueEditor.getContent();\n }\n (_a = getTinymce()) === null || _a === void 0 ? void 0 : _a.remove(vueEditor);\n });\n }\n var rerender = function (init) {\n var _a;\n cache = vueEditor.getContent();\n (_a = getTinymce()) === null || _a === void 0 ? void 0 : _a.remove(vueEditor);\n conf = __assign(__assign(__assign({}, conf), init), defaultInitValues);\n nextTick(function () { return initWrapper(); });\n };\n ctx.expose({\n rerender: rerender,\n getEditor: function () { return vueEditor; }\n });\n return function () { return inlineEditor ?\n renderInline(h, elementId, element, props.tagName) :\n renderIframe(h, elementId, element); };\n }\n});\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { Editor } from './components/Editor';\nexport default Editor;\n","import FormInputTextField from \"../FormInputTextField/FormInputTextField.vue\";\r\nimport FormCheckbox from \"../FormCheckbox/FormCheckbox.vue\";\r\nimport FormInputDropdown from \"../FormInputDropdown/FormInputDropdown.vue\";\r\nimport FormAddressField from \"../FormAddressField/FormAddressField.vue\";\r\nimport FormRadioGroup from \"../FormRadioGroup/FormRadioGroup.vue\";\r\nimport { ref, computed, watch, onBeforeMount } from \"vue\";\r\nimport GetLabel from \"foundation/js/getLabel\";\r\nimport fieldsConfig from \"./config/fieldsConfig\";\r\nimport { useStore } from \"vuex\";\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\n\r\nexport default {\r\n name: \"CreateEvent\",\r\n props: {\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n isEditContext: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n userInfo: {\r\n type: Object,\r\n required: false,\r\n }\r\n },\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n FormInputDropdown,\r\n FormAddressField,\r\n FormRadioGroup,\r\n Editor\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayError = ref(false) \r\n const getLabel = (labelKey) => GetLabel({ labelKey, labelCollection: 'CreateEvent' })\r\n\r\n const submitPath = props.isEditContext == true ? 'frivillige/updateEvent' : 'frivillige/createEvent'\r\n const isEditContext = props.isEditContext\r\n\r\n const nameOfEvent = ref(props.userInfo?.nameOfEvent ?? \"\") \r\n const description = ref(props.userInfo?.description ?? \"\")\r\n const shareInMainCalendar = ref(props.userInfo?.shareInMainCalendar ?? false)\r\n const mandatoryRegistration = ref(props.userInfo?.mandatoryRegistration ?? false)\r\n const maxParticipants = ref(props.userInfo?.maxParticipants)\r\n const contactPersonOther = ref(props.userInfo?.contactPersonName?.length > 0 ?? false)\r\n const contactPersonEmail = ref(props.userInfo?.contactPersonEmail)\r\n const contactPersonPhone = ref(props.userInfo?.contactPersonPhone)\r\n const contactPersonName = ref(props.userInfo?.contactPersonName)\r\n const startDate = ref(props.userInfo?.startDate ?? \"\")\r\n const startTime = ref(props.userInfo?.startTime ?? \"\")\r\n const endDate = ref(props.userInfo?.endDate ?? \"\")\r\n const endTime = ref(props.userInfo?.endTime ?? \"\")\r\n const address = ref(props.userInfo?.address ?? \"\")\r\n const postalCode = ref(props.userInfo?.postalCode ?? \"\")\r\n const city = ref(props.userInfo?.city ?? \"\")\r\n const showSpinner = ref(false)\r\n \r\n const contactTypeEnum = Object.freeze({\r\n SELF: \"SELF\",\r\n OTHER: \"OTHER\"\r\n })\r\n const contactType = ref(contactTypeEnum.SELF)\r\n const contactTypeRadioOptions = [\r\n {\r\n value: contactTypeEnum.SELF,\r\n label: getLabel('contactPersonMyselfLabel')\r\n },\r\n {\r\n value: contactTypeEnum.OTHER,\r\n label: getLabel('contactPersonOtherLabel')\r\n }\r\n ]\r\n const contactPersonMyself = computed(() => contactType.value === contactTypeEnum.SELF)\r\n\r\n onBeforeMount(() => {\r\n if (props.userInfo) {\r\n Object.keys(props.userInfo).forEach(function (key) {\r\n const field = fieldsConfig.find(field => field.name === key)\r\n if (field) {\r\n field.value = props.userInfo[key]\r\n field.isValid = field.validator(props.userInfo[key])\r\n }\r\n })\r\n }\r\n })\r\n\r\n const updateConfigAndReturnValidState = (name, value) => {\r\n fieldsConfig.find(field => field.name === name).value = value\r\n const valid = fieldsConfig.find(field => field.name === name).validator(value)\r\n fieldsConfig.find(field => field.name === name).isValid = valid\r\n return valid\r\n }\r\n\r\n const showError = (name, value) => {\r\n const valid = updateConfigAndReturnValidState(name, value)\r\n return displayError.value && !valid\r\n }\r\n\r\n const showErrorAddress = computed(() => {\r\n const validAddress = updateConfigAndReturnValidState('address', address.value)\r\n const validPostalCode = updateConfigAndReturnValidState('postalCode', postalCode.value)\r\n const validCity = updateConfigAndReturnValidState('city', city.value)\r\n\r\n return displayError.value && (!validAddress || !validPostalCode || !validCity)\r\n })\r\n\r\n const startDateValidator = (startDateStr, startTimeStr) => {\r\n\r\n if (!startDateStr || !startTimeStr) return false\r\n \r\n var now = new Date()\r\n var startTimestamp = new Date(`${startDateStr} ${startTimeStr}`)\r\n \r\n return now <= startTimestamp\r\n } \r\n \r\n const endDateValidator = (startDateStr, startTimeStr, endDateStr, endTimeStr) => {\r\n \r\n // Only show error for start date+time if these are not set\r\n if (!startDateStr || !startTimeStr) return true\r\n \r\n if (!endDateStr || !endTimeStr) return false\r\n \r\n var startTimestamp = new Date(`${startDateStr} ${startTimeStr}`)\r\n var endTimestamp = new Date(`${endDateStr} ${endTimeStr}`)\r\n return startTimestamp <= endTimestamp\r\n }\r\n \r\n const isStartDateValid = computed(() => {\r\n fieldsConfig.find(field => field.name === 'startDate').isValid = startDateValidator(startDate.value, startTime.value)\r\n fieldsConfig.find(field => field.name === 'startDate').value = startDate.value\r\n return displayError.value && !startDateValidator(startDate.value, startTime.value)\r\n })\r\n\r\n const isEndDateValid = computed(() => {\r\n fieldsConfig.find(field => field.name === 'endDate').isValid = endDateValidator(startDate.value, startTime.value, endDate.value, endTime.value)\r\n fieldsConfig.find(field => field.name === 'endDate').value = startDate.value\r\n return displayError.value && !endDateValidator(startDate.value, startTime.value, endDate.value, endTime.value)\r\n })\r\n \r\n watch(description, (newValue) => {\r\n showError('description', newValue)\r\n })\r\n\r\n const validateFields = () => {\r\n // Update fieldsConfig with some custom validation\r\n if (!contactPersonOther.value) {\r\n fieldsConfig.find(field => field.name === 'contactPersonEmail').isValid = true\r\n fieldsConfig.find(field => field.name === 'contactPersonEmail').value = \"\"\r\n fieldsConfig.find(field => field.name === 'contactPersonName').isValid = true\r\n fieldsConfig.find(field => field.name === 'contactPersonName').value = \"\"\r\n fieldsConfig.find(field => field.name === 'contactPersonPhone').isValid = true\r\n fieldsConfig.find(field => field.name === 'contactPersonPhone').value = \"\" \r\n }\r\n \r\n return fieldsConfig.every(field => field.isValid)\r\n }\r\n\r\n const getFields = () => {\r\n return {\r\n nameOfEvent: nameOfEvent.value,\r\n description: description.value,\r\n shareInMainCalendar: shareInMainCalendar.value,\r\n mandatoryRegistration: mandatoryRegistration.value,\r\n maxParticipants: maxParticipants.value,\r\n contactPersonMyself: contactPersonMyself.value,\r\n contactPersonOther: contactPersonOther.value,\r\n contactPersonEmail: contactPersonEmail.value,\r\n contactPersonPhone: contactPersonPhone.value,\r\n contactPersonName: contactPersonName.value,\r\n startDate: startDate.value,\r\n startTime: startTime.value,\r\n endDate: endDate.value,\r\n endTime: endTime.value,\r\n addressLine: address.value,\r\n postalCode: postalCode.value,\r\n city: city.value\r\n }\r\n }\r\n\r\n const submit = () => {\r\n if (validateFields()) {\r\n\r\n showSpinner.value = true\r\n\r\n const fields = getFields()\r\n \r\n store.dispatch(submitPath, { \r\n body: fields, \r\n id: props.userInfo?.eventId, \r\n pageId: store.state.main.page_id,\r\n groupId: props.groupId, \r\n })\r\n .catch(error => {\r\n showSpinner.value = false\r\n })\r\n\r\n } else {\r\n displayError.value = true\r\n }\r\n }\r\n\r\n const updateContactType = (value) => {\r\n contactType.value = value\r\n }\r\n\r\n return {\r\n nameOfEvent,\r\n description,\r\n shareInMainCalendar,\r\n mandatoryRegistration,\r\n maxParticipants,\r\n contactPersonMyself,\r\n contactPersonOther,\r\n contactPersonEmail,\r\n contactPersonName,\r\n contactPersonPhone,\r\n startDate,\r\n startTime,\r\n endDate,\r\n endTime,\r\n address,\r\n postalCode,\r\n city,\r\n showErrorAddress,\r\n isStartDateValid,\r\n isEndDateValid,\r\n isEditContext,\r\n showSpinner,\r\n contactType,\r\n contactTypeRadioOptions,\r\n showError,\r\n submit,\r\n getLabel,\r\n updateContactType\r\n }\r\n }\r\n}","import { render } from \"./CreateEvent.vue?vue&type=template&id=09498b5e\"\nimport script from \"./CreateEvent.vue?vue&type=script&lang=js\"\nexport * from \"./CreateEvent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// should be build in the all future projects\r\nexport default function (component, componentDOM) {\r\n const props = {} \r\n\r\n if (!component.props) return {}\r\n\r\n Object.keys(component.props).forEach(function (componentKey) {\r\n const type = component.props[componentKey].type.name\r\n // const required = component.props[componentKey].required\r\n\r\n const data = componentDOM.dataset\r\n\r\n Object.keys(data).forEach(function (DOMComponentKey) {\r\n if (componentKey === DOMComponentKey) {\r\n props[componentKey] = getFormattedData(type, data[DOMComponentKey])\r\n }\r\n })\r\n })\r\n\r\n return props\r\n}\r\n\r\nconst getFormattedData = function(type, data) {\r\n switch(type) {\r\n case \"Object\":\r\n return data ? JSON.parse(data) : {}\r\n case \"Array\":\r\n return data ? JSON.parse(data) : []\r\n case \"Boolean\":\r\n return data === \"true\" ? true : false\r\n case \"Number\":\r\n return parseFloat(data)\r\n default:\r\n return data\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed, ref, onBeforeMount } from 'vue'\r\n\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField\";\r\nimport textAreaValidator from \"foundation/js/inputValidators/textAreaValidator\";\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\n\r\nexport default {\r\n name: \"CreateFolderOverlay\",\r\n components: {\r\n FormInputTextField\r\n },\r\n\r\n setup(){\r\n const store = useStore()\r\n const overlayMode = computed(()=> store.state.frivillige.active_overlay_mode)\r\n const editModeActive = computed(()=> store.state.frivillige.edit_mode_active)\r\n \r\n let itemName = ref('')\r\n\r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n let displayError = ref(false)\r\n\r\n onBeforeMount(() => {\r\n if (editModeActive.value) {\r\n itemName.value = store.state.frivillige.active_item_name\r\n }\r\n\r\n // the active overlay mode should be set when overlay activated as well as editModeActive\r\n // and creating updated active_name\r\n // store.dispatch('frivillige/getActiveItemName')\r\n // when overlay closed, mode is cleared inside PageOverlay.options closeOverlay\r\n // if in component library to debug activate a mode to see labels\r\n // to debug folder: store.dispatch('frivillige/setActiveOverlayMode', { mode: \"Mappe\"}) \r\n // to debug file: store.dispatch('frivillige/setActiveOverlayMode', { mode: \"Dokument\" }) \r\n })\r\n\r\n const isFormValid = () => {\r\n return textAreaValidator(itemName.value) \r\n && nonEmptyStringValidator(itemName.value)\r\n };\r\n\r\n const submitCreateOrEditFolderOrFile = () => {\r\n const isValid = isFormValid();\r\n displayError.value = !isValid;\r\n\r\n if (isValid) {\r\n store.dispatch(\"frivillige/submitCreateOrEditFolderOrFile\", {\r\n name: itemName.value\r\n })\r\n .then(() => {\r\n store.dispatch('main/closePageOverlay')\r\n store.dispatch('search/refreshSearches')\r\n });\r\n }\r\n };\r\n\r\n const getLabel = (labelKey) => {\r\n\r\n if(editModeActive.value && overlayMode.value === 'Dokument') {\r\n return store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"EditFileOverlay\",\r\n labelKey: labelKey,\r\n });\r\n \r\n } else if(overlayMode.value === 'Dokument') {\r\n return store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"CreateFileOverlay\",\r\n labelKey: labelKey,\r\n });\r\n } \r\n else if(editModeActive.value && overlayMode.value === 'Mappe') {\r\n return store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"EditFolderOverlay\",\r\n labelKey: labelKey,\r\n });\r\n \r\n } \r\n else if (overlayMode.value === 'Mappe') {\r\n return store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"CreateFolderOverlay\",\r\n labelKey: labelKey,\r\n });\r\n }\r\n\r\n }\r\n \r\n return {\r\n itemName,\r\n isSubmitting,\r\n displayError,\r\n submitCreateOrEditFolderOrFile,\r\n nonEmptyStringValidator,\r\n getLabel\r\n }\r\n \r\n }\r\n}","import { render } from \"./CreateFolderOverlay.vue?vue&type=template&id=de184cd0\"\nimport script from \"./CreateFolderOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./CreateFolderOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\n\r\nconst options = formFieldCommonOptions('FormInputNameField', {\r\n validatorFunction(input) {\r\n return nameValidator(input)\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputNameField.vue?vue&type=template&id=54e6419c\"\nimport script from \"./FormInputNameField.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputNameField.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\nimport emailValidator from '../../foundation/js/inputValidators/emailValidator'\r\n\r\nconst options = formFieldCommonOptions('FormInputEmailField', {\r\n validatorFunction(input) {\r\n return emailValidator(input)\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputEmailField.vue?vue&type=template&id=eeef956c\"\nimport script from \"./FormInputEmailField.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputEmailField.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\nimport phoneValidator from '../../foundation/js/inputValidators/phoneValidator'\r\n\r\nconst options = formFieldCommonOptions('FormInputPhoneField', {\r\n validatorFunction(input) {\r\n return phoneValidator(input)\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputPhoneField.vue?vue&type=template&id=01015fb8\"\nimport script from \"./FormInputPhoneField.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputPhoneField.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import GetLabel from \"foundation/js/getLabel\"\r\nimport { ref, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\n\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField\"\r\nimport FormInputNameField from \"../FormInputNameField/FormInputNameField\"\r\nimport FormAddressField from \"../FormAddressField/FormAddressField\"\r\nimport FormInputEmailField from \"../FormInputEmailField/FormInputEmailField\"\r\nimport FormInputPhoneField from \"../FormInputPhoneField/FormInputPhoneField\"\r\nimport FormCheckbox from \"../FormCheckbox/FormCheckbox\"\r\nimport nameValidator from \"foundation/js/inputValidators/nameValidator\"\r\nimport phoneValidator from \"foundation/js/inputValidators/phoneValidator\"\r\nimport emailValidator from \"foundation/js/inputValidators/emailValidator\"\r\n\r\nexport default {\r\n name: \"CreateFrivilligeProfile\",\r\n components: {\r\n FormInputTextField,\r\n FormInputNameField,\r\n FormAddressField,\r\n FormInputEmailField,\r\n FormInputPhoneField,\r\n FormCheckbox\r\n },\r\n props: {\r\n external: {\r\n type: Object,\r\n required: true,\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const firstName = ref(props.external.userData?.firstName ?? \"\")\r\n const lastName = ref(props.external.userData?.lastName ?? \"\")\r\n const email = ref(props.external.userData?.email ?? \"\")\r\n const phoneNumber = ref(props.external.userData?.phoneNumber ?? \"\")\r\n const address = ref(props.external.userData?.address ?? \"\")\r\n const postalCode = ref(props.external.userData?.postalCode ?? \"\")\r\n const city = ref(props.external.userData?.city ?? \"\")\r\n const consentBool = ref(false)\r\n const newsletterBool = ref(false)\r\n const displayError = ref(false)\r\n const isSubmitting = computed(() => store.state.frivilligprofil.submitting)\r\n\r\n const isReadOnly = ref({\r\n firstName: firstName.value !== \"\",\r\n lastName: lastName.value !== \"\",\r\n email: email.value !== \"\",\r\n phoneNumber: phoneNumber.value !== \"\",\r\n address: address.value !== \"\"\r\n })\r\n\r\n const addressValidator = (address, postalCode, city) => {\r\n return address && postalCode && city\r\n }\r\n\r\n const consentValidator = (consent) => {\r\n return consent\r\n }\r\n\r\n const validateFields = () => {\r\n if (nameValidator(firstName.value) \r\n && nameValidator(lastName.value) \r\n && phoneValidator(phoneNumber.value) \r\n && emailValidator(email.value) \r\n && addressValidator(address.value, postalCode.value, city.value)\r\n && consentValidator(consentBool.value)\r\n ) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n const submit = async () => {\r\n\r\n if (validateFields()) {\r\n displayError.value = false\r\n await store.dispatch(\"frivilligprofil/createProfil\", {\r\n pageId: store.state.main.page_id,\r\n body: {\r\n firstName: firstName.value,\r\n lastName: lastName.value,\r\n email: email.value,\r\n phoneNumber: phoneNumber.value,\r\n address: address.value,\r\n postalCode: postalCode.value,\r\n city: city.value,\r\n consentBool: consentBool.value,\r\n newsletterBool: newsletterBool.value\r\n }\r\n })\r\n } else {\r\n displayError.value = true\r\n }\r\n }\r\n\r\n return {\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n address,\r\n postalCode,\r\n city,\r\n consentBool,\r\n newsletterBool,\r\n displayError,\r\n isSubmitting,\r\n isReadOnly,\r\n nameValidator,\r\n phoneValidator,\r\n emailValidator,\r\n addressValidator,\r\n submit,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: \"CreateFrivilligprofil\" })\r\n }\r\n \r\n }\r\n}","import { render } from \"./CreateFrivilligeProfile.vue?vue&type=template&id=02b9e08b\"\nimport script from \"./CreateFrivilligeProfile.vue?vue&type=script&lang=js\"\nexport * from \"./CreateFrivilligeProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\nimport textAreaValidator from '../../foundation/js/inputValidators/textAreaValidator'\r\n\r\nconst options = formFieldCommonOptions('FormInputTextarea', {\r\n validatorFunction(input) {\r\n return textAreaValidator(input)\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputTextarea.vue?vue&type=template&id=0fc36ba3\"\nimport script from \"./FormInputTextarea.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputTextarea.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\nimport GetLabel from \"foundation/js/getLabel\"\r\nimport emailValidator from \"foundation/js/inputValidators/emailValidator\";\r\nimport isBoolean from \"foundation/js/inputValidators/isBoolean\";\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\nimport phoneValidator from \"foundation/js/inputValidators/phoneValidator\";\r\nimport postalCodeValidator from \"foundation/js/inputValidators/postalCodeValidator\";\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField\"\r\nimport FormInputNameField from \"../FormInputNameField/FormInputNameField\"\r\nimport FormAddressField from \"../FormAddressField/FormAddressField\"\r\nimport FormInputEmailField from \"../FormInputEmailField/FormInputEmailField\"\r\nimport FormInputPhoneField from \"../FormInputPhoneField/FormInputPhoneField\"\r\nimport FormCheckbox from \"../FormCheckbox/FormCheckbox\"\r\nimport FormInputDropdown from \"components/FormInputDropdown/FormInputDropdown\";\r\nimport { useStore } from \"vuex\";\r\nimport { ref, computed } from \"vue\";\r\nimport AttachmentsEditor from \"../AttachmentsEditor/AttachmentsEditor.vue\";\r\nimport FormInputTextarea from \"components/FormInputTextarea/FormInputTextarea\";\r\n\r\nexport default {\r\n name: \"CreateFrivilligJob\",\r\n components: {\r\n Editor,\r\n AttachmentsEditor,\r\n FormInputTextField,\r\n FormInputNameField,\r\n FormAddressField,\r\n FormInputEmailField,\r\n FormInputDropdown,\r\n FormCheckbox,\r\n FormInputPhoneField,\r\n FormInputTextarea\r\n },\r\n props: {\r\n subjects: {\r\n type: Array,\r\n required: true,\r\n },\r\n jobInfo: {\r\n type: Object,\r\n required: false,\r\n },\r\n isEditContext: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayError = ref(false)\r\n const getLabel = (labelKey) => GetLabel({ labelKey, labelCollection: \"CreateFrivilligJob\" })\r\n\r\n const submitPath = props.isEditContext ? 'frivilligjob/updateFrivilligjob' : 'frivilligjob/createFrivilligjob'\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.frivilligjob.isSubmitting\r\n })\r\n\r\n const url = `/${process.env.FRIVILLIGJOB_IMAGE_GET.replace(\"[frivilligjobId]\", props.jobInfo?.jobId)}`\r\n const activeImage = ref({\r\n \"name\": \"\",\r\n \"url\": url,\r\n \"size\": \"\"\r\n })\r\n\r\n const isPeriodValid = ref(true)\r\n\r\n const startDate = ref(props.jobInfo?.startDate ?? \"\")\r\n const startTime = ref(props.jobInfo?.startTime ?? \"\")\r\n const endDate = ref(props.jobInfo?.endDate ?? \"\")\r\n const endTime = ref(props.jobInfo?.endTime ?? \"\")\r\n const expirationDate = ref(props.jobInfo?.expirationDate ?? '')\r\n const images = ref((props.jobInfo?.hasImage ? [activeImage.value] : []) ?? [])\r\n const hasImageChanged = ref(false)\r\n\r\n const jobData = ref({\r\n \"jobId\": props.jobInfo?.jobId,\r\n \"jobTitle\": props.jobInfo?.jobTitle,\r\n \"aboutJob\": props.jobInfo?.aboutJob,\r\n \"offerDescription\": props.jobInfo?.offerDescription,\r\n \"expectationDescription\": props.jobInfo?.expectationDescription,\r\n \"placeName\": props.jobInfo?.placeName ?? '',\r\n \"address\": props.jobInfo?.address ?? '',\r\n \"postalCode\": props.jobInfo?.postalCode ?? '',\r\n \"city\": props.jobInfo?.city ?? '',\r\n \"isCountrywide\": props.jobInfo?.isCountrywide ?? true,\r\n \"isSelfContactPerson\": props.jobInfo?.isSelfContactPerson ?? true,\r\n \"contactPersonName\": props.jobInfo?.contactPersonName ?? '',\r\n \"contactPersonEmail\": props.jobInfo?.contactPersonEmail ?? '',\r\n \"contactPersonPhone\": props.jobInfo?.contactPersonPhone ?? '',\r\n \"timeConsumption\": props.jobInfo?.timeConsumption,\r\n \"hasSpecificTime\": props.jobInfo?.hasSpecificTime ?? false,\r\n })\r\n const hasSpecificDate = ref(props.jobInfo?.hasSpecificDate ?? false)\r\n \r\n const showSpinner = ref(false)\r\n \r\n\r\n const addressValidator = (address, postalCode, city, isCountrywide) => {\r\n return isCountrywide || (address && postalCodeValidator(postalCode) && city)\r\n }\r\n \r\n const contactInformationValidator = () => {\r\n return jobData.value.isSelfContactPerson || \r\n (nonEmptyStringValidator(jobData.value.contactPersonEmail) && nonEmptyStringValidator(jobData.value.contactPersonName)) \r\n }\r\n\r\n const validateFields = () => {\r\n return validatePeriod(\r\n formatDateTime(startDate.value, startTime.value),\r\n formatDateTime(endDate.value, endTime.value))\r\n && nonEmptyStringValidator(jobData.value.jobTitle)\r\n && nonEmptyStringValidator(jobData.value.aboutJob)\r\n && nonEmptyStringValidator(jobData.value.offerDescription)\r\n && nonEmptyStringValidator(jobData.value.expectationDescription)\r\n && addressValidator(jobData.value.address, jobData.value.postalCode, jobData.value.city, jobData.value.isCountrywide)\r\n && nonEmptyStringValidator(jobData.value.timeConsumption)\r\n && contactInformationValidator()\r\n }\r\n\r\n const setIsCountryWide = (e) => {\r\n jobData.value.isCountrywide = e.target.checked\r\n\r\n if (jobData.value.isCountrywide){\r\n jobData.value.address = '',\r\n jobData.value.city = '',\r\n jobData.value.postalCode = ''\r\n }\r\n }\r\n\r\n const setSpecificDateCheckbox = (e) => {\r\n hasSpecificDate.value = e.target.checked\r\n \r\n if (!hasSpecificDate.value){\r\n startDate.value = ''\r\n endDate.value = ''\r\n startTime.value = ''\r\n endTime.value = ''\r\n\r\n jobData.value.hasSpecificTime = false\r\n }\r\n }\r\n\r\n function isDateValid(dateStr) {\r\n return !isNaN(new Date(dateStr))\r\n }\r\n\r\n const validatePeriod = (startDate, endDate) => {\r\n if (!isDateValid(startDate) || !isDateValid(endDate)){\r\n return true\r\n }\r\n\r\n\r\n if (startDate > endDate){\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n\r\n const setSpecificTimeCheckbox = (e) => {\r\n jobData.value.hasSpecificTime = e.target.checked\r\n \r\n if (!jobData.value.hasSpecificTime){\r\n startTime.value = ''\r\n endTime.value = ''\r\n }\r\n }\r\n\r\n const handleTimeConsumptionSelector = (e) => {\r\n jobData.value.timeConsumption = e.target.value\r\n }\r\n\r\n const formatDateTime = (date, time) => {\r\n let timeString = time || \"12:00\"\r\n let combinedDatetime = `${date}T${timeString}:00`\r\n\r\n return new Date(combinedDatetime);\r\n }\r\n\r\n const createRequest = () => {\r\n return {\r\n ...jobData.value,\r\n \"startDate\": formatDateTime(startDate.value, startTime.value),\r\n \"endDate\": formatDateTime(endDate.value, endTime.value),\r\n \"expirationDate\": expirationDate.value,\r\n \"subjects\": props.subjects\r\n .filter(subject => subject.isSelected === true)\r\n .map(subject => subject.value),\r\n }\r\n }\r\n\r\n const setImage = (e) => {\r\n hasImageChanged.value = true\r\n images.value = e\r\n }\r\n\r\n const submitCreateJob = () => {\r\n displayError.value = true\r\n\r\n if (validateFields()){\r\n let request = createRequest()\r\n\r\n store.dispatch(submitPath, request)\r\n .then(async result => {\r\n if (!hasImageChanged.value){\r\n window.location.href = result.continueUrl\r\n\r\n return\r\n }\r\n\r\n if (images.value.length == 1){\r\n const formData = new FormData()\r\n formData.append('image', images.value[0])\r\n \r\n await store.dispatch('frivilligjob/submitFrivilligjobImage', {\r\n id: result.jobId,\r\n body: formData\r\n })\r\n }\r\n else {\r\n await store.dispatch('frivilligjob/removeFrivilligjobImage', result.jobId)\r\n }\r\n\r\n window.location.href = result.continueUrl\r\n })\r\n }\r\n else {\r\n displayError.value = true\r\n }\r\n }\r\n\r\n\r\n const isFutureDate = (expirationDate) => {\r\n\r\n if (!expirationDate) return false\r\n \r\n var now = new Date()\r\n var startTimestamp = new Date(`${expirationDate}`)\r\n \r\n return now <= startTimestamp\r\n }\r\n\r\n const setSubject = (id, isSelected) => props.subjects.find((subject) => subject.value === id).isSelected = isSelected\r\n\r\n return {\r\n jobData,\r\n showSpinner,\r\n displayError,\r\n isSubmitting,\r\n hasSpecificDate,\r\n startDate,\r\n endDate,\r\n startTime,\r\n endTime,\r\n isPeriodValid,\r\n expirationDate,\r\n images,\r\n getLabel,\r\n emailValidator,\r\n isBoolean,\r\n nonEmptyStringValidator,\r\n phoneValidator,\r\n postalCodeValidator,\r\n addressValidator,\r\n isFutureDate,\r\n submitCreateJob,\r\n setSubject,\r\n setSpecificDateCheckbox,\r\n setSpecificTimeCheckbox,\r\n handleTimeConsumptionSelector,\r\n setImage,\r\n setIsCountryWide\r\n }\r\n }\r\n}","import { render } from \"./CreateFrivilligJob.vue?vue&type=template&id=8a52b2e0\"\nimport script from \"./CreateFrivilligJob.vue?vue&type=script&lang=js\"\nexport * from \"./CreateFrivilligJob.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { useStore } from 'vuex'\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\n\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport { ref } from 'vue'\r\n\r\nexport default {\r\n name: \"CreateGallery\",\r\n components: {\r\n FormInputTextField,\r\n Editor\r\n },\r\n props: {\r\n groupName: {\r\n type: String,\r\n required: true,\r\n default: \"\"\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n content: {\r\n type: Object,\r\n required: false,\r\n default: null\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: 'createGallery', labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n } \r\n\r\n const galleryTitle = ref(props.content?.title)\r\n const galleryContent = ref(props.content?.description)\r\n const galleryImages = ref(props.content?.files)\r\n const showInputErrors = ref(false)\r\n\r\n const onFileChange = (e) => {\r\n const files = e.target.files\r\n Array.from(files).forEach(file => {\r\n let newFile = file\r\n newFile.url = URL.createObjectURL(file)\r\n galleryImages.value.push(newFile)\r\n })\r\n }\r\n\r\n const removeFile = (fileName) => {\r\n galleryImages.value = Array.from(galleryImages.value).filter(image => image.name !== fileName)\r\n \r\n }\r\n \r\n const submitCreateGallery = async function () {\r\n showInputErrors.value = true\r\n if (galleryTitle.value !== \"\" && galleryContent.value !== \"\" && (props.isGallery ? galleryImages.value.length > 0 : true)) {\r\n const body = {\r\n title: galleryTitle.value,\r\n content: galleryContent.value,\r\n images: galleryImages.value\r\n }\r\n\r\n if (!props.content) {\r\n store.dispatch('forum/submitCreateGallery', {\r\n body: body,\r\n id: props.groupId\r\n })\r\n } else {\r\n store.dispatch('forum/submitEditGallery', {\r\n body: body,\r\n id: props.groupId\r\n })\r\n }\r\n } \r\n }\r\n\r\n return {\r\n getLabel,\r\n galleryTitle,\r\n galleryContent,\r\n galleryImages,\r\n showInputErrors,\r\n submitCreateGallery,\r\n removeFile,\r\n onFileChange\r\n }\r\n }\r\n}","import { render } from \"./CreateGallery.vue?vue&type=template&id=1589c74d\"\nimport script from \"./CreateGallery.vue?vue&type=script&lang=js\"\nexport * from \"./CreateGallery.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed, ref } from 'vue'\r\n\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField\";\r\nimport FormInputDropdown from \"../FormInputDropdown/FormInputDropdown\";\r\n\r\nimport nameValidator from \"foundation/js/inputValidators/nameValidator\";\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\n\r\nexport default {\r\n name: \"CreateNewFileOverlay\",\r\n components: {\r\n FormInputTextField,\r\n FormInputDropdown\r\n },\r\n setup(){\r\n const store = useStore()\r\n const fileName = ref('')\r\n const fileTypeDropdown = ref('')\r\n\r\n const fileTypeDropdownOptions = computed(()=> store.state.frivillige.file_type_dropdown_options)\r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n\r\n let displayError = ref(false)\r\n\r\n const isFormValid = () => {\r\n return nameValidator(fileName.value) \r\n && nonEmptyStringValidator(fileName.value) \r\n && nonEmptyStringValidator(fileTypeDropdown.value)\r\n };\r\n\r\n const submitCreateNewFile = () => {\r\n const isValid = isFormValid();\r\n displayError.value = !isValid;\r\n\r\n const body = {\r\n fileName: fileName.value,\r\n dokumentType: fileTypeDropdown.value,\r\n gruppeKode: store.state.frivillige.globalGruppeKode,\r\n mappeKode: store.getters[\"frivillige/get_global_folder_id\"]\r\n }\r\n\r\n if (isValid) {\r\n store.dispatch(\"frivillige/submitCreateNewFile\", {\r\n body\r\n })\r\n .then(() => {\r\n store.dispatch('main/closePageOverlay')\r\n store.dispatch('search/refreshSearches')\r\n });\r\n }\r\n };\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"CreateNewFileOverlay\",\r\n labelKey: labelKey,\r\n });\r\n \r\n return {\r\n fileName,\r\n fileTypeDropdown,\r\n isSubmitting,\r\n displayError,\r\n fileTypeDropdownOptions,\r\n submitCreateNewFile,\r\n nonEmptyStringValidator,\r\n nameValidator,\r\n getLabel\r\n }\r\n \r\n }\r\n}","import { render } from \"./CreateNewFileOverlay.vue?vue&type=template&id=28685bf4\"\nimport script from \"./CreateNewFileOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./CreateNewFileOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\n\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport AttachmentsEditor from \"../AttachmentsEditor/AttachmentsEditor.vue\";\r\nimport { ref } from 'vue'\r\n\r\nexport default {\r\n name: \"CreatePost\",\r\n components: {\r\n FormInputTextField,\r\n AttachmentsEditor,\r\n Editor\r\n },\r\n props: {\r\n groupName: {\r\n type: String,\r\n required: true,\r\n default: \"\"\r\n },\r\n groupDescription: {\r\n type: String,\r\n required: true,\r\n default: \"\"\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n content: {\r\n type: Object,\r\n required: false,\r\n default: null\r\n },\r\n postId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: 'createPost', labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n } \r\n\r\n const postTitle = ref(props.content?.title ?? \"\")\r\n const postContent = ref(props.content?.description ?? \"\")\r\n const postFilesToAdd = ref([])\r\n const postFilesToRemove = ref([])\r\n\r\n const showInputErrors = ref(false)\r\n const isSubmitting = ref(false)\r\n\r\n const updateTextarea = (e) => {\r\n postContent.value = e.target.value\r\n }\r\n\r\n const validateInput = function (){\r\n return postTitle.value && postContent.value\r\n } \r\n \r\n const submitCreatePost = async function () {\r\n if(isSubmitting.value){ \r\n return;\r\n }\r\n isSubmitting.value = true\r\n\r\n if (!validateInput()) {\r\n showInputErrors.value = true\r\n isSubmitting.value = false\r\n return;\r\n }\r\n\r\n let formData = new FormData()\r\n formData.append('title', postTitle.value)\r\n formData.append('content', postContent.value)\r\n\r\n postFilesToAdd.value.forEach(file => {\r\n formData.append('filesToAdd', file)\r\n })\r\n\r\n postFilesToRemove.value.forEach(fileId => {\r\n formData.append('filesToRemove', fileId)\r\n })\r\n \r\n if (!props.content) {\r\n const response = await store.dispatch('forum/submitCreatePost', {\r\n body: formData,\r\n id: props.groupId\r\n })\r\n window.location.href = response.redirectUrl\r\n } \r\n else {\r\n const response = await store.dispatch('forum/submitEditPost', {\r\n body: formData,\r\n id: props.groupId,\r\n postId: props.postId\r\n })\r\n window.location.href = response.redirectUrl\r\n }\r\n }\r\n\r\n return {\r\n getLabel,\r\n postTitle,\r\n postContent,\r\n postFilesToAdd,\r\n postFilesToRemove,\r\n showInputErrors,\r\n submitCreatePost,\r\n updateTextarea,\r\n isSubmitting,\r\n }\r\n }\r\n}","import { render } from \"./CreatePost.vue?vue&type=template&id=fb095726\"\nimport script from \"./CreatePost.vue?vue&type=script&lang=js\"\nexport * from \"./CreatePost.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","\r\nimport { useStore } from \"vuex\"\r\nimport { ref } from 'vue'\r\nimport ActionResponseBox from \"components/ActionResponseBox/ActionResponseBox\"\r\n\r\nexport default {\r\n name: \"CTABox\",\r\n components: {\r\n ActionResponseBox\r\n },\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n },\r\n ctaId: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n\r\n const displayCopyResponse = ref(false)\r\n\r\n const actionResponseLifeTime = 2500;\r\n const actionResponseFadeOutTime = 500;\r\n\r\n const handleCopyLink = function (link) {\r\n \r\n // Copy link to clipboard\r\n navigator.clipboard.writeText(link);\r\n\r\n // Show the copied text in ActionResponseBox\r\n displayCopyResponse.value = true\r\n\r\n //decide when to hide ActionResponse\r\n setTimeout(() => { \r\n displayCopyResponse.value = false\r\n }, actionResponseLifeTime)\r\n\r\n }\r\n\r\n return {\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: `CTABox-${props.ctaId}`,\r\n labelKey\r\n }),\r\n handleCopyLink,\r\n displayCopyResponse,\r\n actionResponseLifeTime,\r\n actionResponseFadeOutTime\r\n }\r\n }\r\n}","import { render } from \"./CTABox.vue?vue&type=template&id=dffa38c4\"\nimport script from \"./CTABox.vue?vue&type=script&lang=js\"\nexport * from \"./CTABox.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {createApp} from 'vue'\r\nimport CTABox from './CTABox'\r\n\r\nconst el = '.kb-component--cta-box'\r\nconsole.log('el', el)\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CTABoxDOM)=>{\r\n const result = JSON.parse(CTABoxDOM.dataset.result)\r\n const ctaId = CTABoxDOM.dataset.ctaId\r\n const component = createApp(CTABox, { result, ctaId }).use(Store)\r\n component.mount(CTABoxDOM)\r\n })\r\n }\r\n}","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\nimport { computed } from \"vue\"\r\n \r\nexport default {\r\n name: \"DeleteCancerProfileModal\",\r\n props: {\r\n continueUrl: {\r\n type: String,\r\n required: false,\r\n default: null\r\n },\r\n continueUrlWithData: {\r\n type: String,\r\n required: false,\r\n default: null\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const cancerforumProfileId = computed(() => store.state.main.page_overlay_content_data.cancerforumProfileId)\r\n const continueUrl = computed(() => props.continueUrl !== null ? props.continueUrl : store.state.main.page_overlay_content_data.continueUrl)\r\n const continueUrlWithData = computed(() => props.continueUrlWithData !== null ? props.continueUrl : store.state.main.page_overlay_content_data.continueUrlWithData)\r\n\r\n const deleteProfileAndData = () => {\r\n store.dispatch('forum/deleteCancerProfileAndData', { id: cancerforumProfileId.value, continueUrl: continueUrl.value })\r\n }\r\n \r\n const deleteProfile = () => {\r\n store.dispatch('forum/deleteCancerProfile', { id: cancerforumProfileId.value, continueUrl: continueUrlWithData.value })\r\n } \r\n \r\n return {\r\n getLabel: (labelKey) => store.getters['labels/getLabel']({labelCollection: 'DeleteCancerProfileModal', labelKey}),\r\n deleteProfileAndData,\r\n deleteProfile\r\n }\r\n }\r\n}","import { render } from \"./DeleteCancerProfileModal.vue?vue&type=template&id=7421986b\"\nimport script from \"./DeleteCancerProfileModal.vue?vue&type=script&lang=js\"\nexport * from \"./DeleteCancerProfileModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"DeleteCommentOverlay\",\r\n setup(){\r\n const store = useStore()\r\n\r\n const deleteComment = () => {\r\n store.state.main.page_overlay_content_data.callback()\r\n }\r\n\r\n return {\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'DeleteCommentOverlay' }),\r\n deleteComment\r\n }\r\n }\r\n}","import { render } from \"./DeleteCommentOverlay.vue?vue&type=template&id=0e4d7946\"\nimport script from \"./DeleteCommentOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./DeleteCommentOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"DeleteEventModal\",\r\n setup(){\r\n const store = useStore()\r\n\r\n const deletePost = () => {\r\n store.state.main.page_overlay_content_data.callback()\r\n }\r\n\r\n return {\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'DeleteEventModal' }),\r\n deletePost\r\n }\r\n }\r\n}","import { render } from \"./DeleteEventModal.vue?vue&type=template&id=5325b1d1\"\nimport script from \"./DeleteEventModal.vue?vue&type=script&lang=js\"\nexport * from \"./DeleteEventModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n ","\r\nimport { useStore } from 'vuex'\r\nimport { computed } from 'vue'\r\n\r\nexport default {\r\n name: \"DeleteFrivilligjobOverlay\",\r\n setup(){\r\n const store = useStore()\r\n const isSubmitting = computed(()=> store.state.frivilligprofil.is_submitting)\r\n const frivilligjobId = computed(() => store.state.main.page_overlay_content_data.frivilligjobId)\r\n const redirectUrl = computed(() => store.state.main.page_overlay_content_data.redirectAfterDeleteUrl)\r\n\r\n const submitConfirmDelete = () => {\r\n store.dispatch(\"frivilligjob/deleteFrivilligjob\", frivilligjobId.value)\r\n .then((_) => {\r\n window.location.href = redirectUrl.value\r\n });\r\n };\r\n\r\n const closeOverlay = function() {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n const handleRegret = () => {\r\n closeOverlay() \r\n };\r\n\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: 'DeleteFrivilligjobOverlay', labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n }\r\n\r\n return {\r\n isSubmitting,\r\n getLabel,\r\n handleRegret,\r\n submitConfirmDelete\r\n }\r\n \r\n }\r\n}","import { render } from \"./DeleteFrivilligjobOverlay.vue?vue&type=template&id=c91173ee\"\nimport script from \"./DeleteFrivilligjobOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./DeleteFrivilligjobOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"DeletePostOverlay\",\r\n setup(){\r\n const store = useStore()\r\n\r\n const deletePost = () => {\r\n store.state.main.page_overlay_content_data.callback()\r\n }\r\n\r\n return {\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'DeletePostOverlay' }),\r\n deletePost\r\n }\r\n }\r\n}","import { render } from \"./DeletePostOverlay.vue?vue&type=template&id=7740e6d3\"\nimport script from \"./DeletePostOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./DeletePostOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed } from 'vue'\r\n\r\nexport default {\r\n name: \"DeleteRoleOverlay\",\r\n setup(){\r\n const store = useStore()\r\n const isSubmitting = computed(()=> store.state.frivilligprofil.is_submitting)\r\n const groupRoleId = computed(() => store.state.main.page_overlay_content_data.groupRoleId)\r\n\r\n const submitConfirmDelete = () => {\r\n store.dispatch(\"frivilligprofil/deleteRolletildeling\", groupRoleId.value);\r\n };\r\n\r\n const closeOverlay = function() {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n const handleRegret = () => {\r\n closeOverlay() \r\n };\r\n\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: 'DeleteRoleOverlay', labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n }\r\n\r\n return {\r\n isSubmitting,\r\n getLabel,\r\n handleRegret,\r\n submitConfirmDelete\r\n }\r\n \r\n }\r\n}","import { render } from \"./DeleteRoleOverlay.vue?vue&type=template&id=5b65699b\"\nimport script from \"./DeleteRoleOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./DeleteRoleOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { ref, computed, onMounted } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport debounce from 'foundation/js/debounce'\r\n\r\nexport default {\r\n name: 'DictionaryWord',\r\n props: {\r\n domId: {\r\n type: String,\r\n required: true\r\n },\r\n wordObject: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const { id, word, wordArticleUrl } = props.wordObject\r\n const store = useStore()\r\n\r\n let display = ref(false)\r\n const wordDefinition = computed(() =>\r\n store.getters['dictionary/getWordDefinitionById'](id)\r\n )\r\n\r\n const fetchDefinition = debounce(function () {\r\n store.dispatch('dictionary/fetch_word_definition', { id })\r\n }, 500)\r\n\r\n const setESChandler = () => {\r\n const handler = (event) => {\r\n if (event.key === 'Escape') {\r\n closeDialog()\r\n document.body.removeEventListener('keydown', handler)\r\n }\r\n }\r\n document.body.addEventListener('keydown', handler)\r\n }\r\n\r\n const highlighted = ref(null)\r\n const wordPopup = ref(null)\r\n const arrow = ref(null)\r\n const closeButton = ref(null)\r\n\r\n const clickOutsideHandler = function (e) {\r\n if (wordPopup.value.contains(e.target)) return false\r\n e.preventDefault()\r\n closeDialog()\r\n }\r\n\r\n const tapTrap = (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n closeDialog()\r\n highlighted.value.focus()\r\n }\r\n\r\n const showDialog = () => {\r\n if (store.state.main.dictionary_visible) return\r\n store.commit('main/set_dictionary_visible', true)\r\n\r\n fetchDefinition()\r\n setESChandler()\r\n\r\n display.value = true\r\n\r\n // we need to make sure the DOM has catched up and the popup element is present before we start to measure positions\r\n // wordPopup and arrow might be empty if we dont apply this slight wait\r\n setTimeout(() => {\r\n // original positions before calculations\r\n\r\n let arrowPosition = 0\r\n const currentLeftPosition =\r\n wordPopup.value.getBoundingClientRect().left\r\n const currentRightPosition =\r\n wordPopup.value.getBoundingClientRect().right\r\n const currentBottomPosition =\r\n wordPopup.value.getBoundingClientRect().bottom\r\n\r\n const popupWidth = wordPopup.value.offsetWidth\r\n const highlightedWidthCompensation =\r\n highlighted.value.offsetWidth / 2 - 10\r\n let calculatedLeftPosition =\r\n popupWidth / 2 - highlightedWidthCompensation\r\n\r\n const exceedsBottomEdge =\r\n currentBottomPosition >\r\n document.documentElement.clientHeight\r\n const exceedsLeftEdge =\r\n calculatedLeftPosition > currentLeftPosition\r\n const exceedsRightEdge =\r\n currentRightPosition - calculatedLeftPosition >\r\n document.documentElement.offsetWidth\r\n\r\n if (exceedsBottomEdge) {\r\n wordPopup.value.style.bottom =\r\n highlighted.value.offsetHeight + 10 + 'px'\r\n arrow.value.style.bottom = '-35px' // specific value matching the actual height of the rotated square being used (do not change)\r\n arrow.value.style.top = 'auto' // a reset to hardcounter styling\r\n }\r\n\r\n if (exceedsLeftEdge) {\r\n calculatedLeftPosition =\r\n calculatedLeftPosition -\r\n (calculatedLeftPosition - currentLeftPosition)\r\n arrowPosition =\r\n highlighted.value.offsetWidth / 2 -\r\n 10 +\r\n highlighted.value.getBoundingClientRect().left\r\n } else if (exceedsRightEdge) {\r\n const calculatedRightPosition =\r\n currentRightPosition -\r\n calculatedLeftPosition -\r\n document.documentElement.offsetWidth\r\n calculatedLeftPosition =\r\n calculatedLeftPosition + calculatedRightPosition\r\n arrowPosition = popupWidth / 2 + calculatedRightPosition\r\n }\r\n\r\n wordPopup.value.style.left = '-' + calculatedLeftPosition + 'px'\r\n\r\n if (arrowPosition) {\r\n arrow.value.style.left = arrowPosition + 'px'\r\n }\r\n\r\n document.body.addEventListener('click', clickOutsideHandler)\r\n\r\n closeButton.value.focus()\r\n }, 10)\r\n }\r\n\r\n onMounted(() => {\r\n /*\r\n We emit a 'dictionaryWordMounted' event when a dictionary word highlight is mounted,\r\n to allow other components to react to the mounting of a dictionary word highlight.\r\n E.g. the FactBox component listens to this event. It uses the event to control the timing of the word highlight. \r\n Specifically, the highlight does not occur when the FactBox is closed. Instead, it only happens when the FactBox is opened.\r\n If there are other components that need to handle dictionary word highlights differently, they can listen to this event and react accordingly.\r\n */\r\n const dictionaryWordDom = document.querySelector(props.domId)\r\n const higlightDom = dictionaryWordDom.querySelector('span')\r\n\r\n const dictionaryWordMountedEvent = new CustomEvent(\r\n 'dictionaryWordMounted',\r\n {\r\n bubbles: true,\r\n detail: higlightDom.innerText\r\n }\r\n )\r\n dictionaryWordDom.dispatchEvent(dictionaryWordMountedEvent)\r\n })\r\n\r\n const closeDialog = () => {\r\n document.body.removeEventListener('click', clickOutsideHandler)\r\n store.commit('main/set_dictionary_visible', false)\r\n display.value = false\r\n }\r\n\r\n return {\r\n arrow,\r\n closeDialog,\r\n closeButton,\r\n display,\r\n fetchDefinition,\r\n highlighted,\r\n id,\r\n showDialog,\r\n tapTrap,\r\n word,\r\n wordDefinition,\r\n wordArticleUrl,\r\n wordPopup\r\n }\r\n }\r\n}\r\n","import { render } from \"./DictionaryWord.vue?vue&type=template&id=e59a6174\"\nimport script from \"./DictionaryWord.vue?vue&type=script&lang=js\"\nexport * from \"./DictionaryWord.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { onMounted, createApp } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport Store from 'store'\r\nimport Mark from 'mark.js'\r\nimport DictionaryWord from '../DictionaryWord/DictionaryWord'\r\n\r\nexport default {\r\n name: 'Dictionary',\r\n components: { DictionaryWord },\r\n props: {\r\n wordObjects: {\r\n type: Array,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n\r\n onMounted(() => {\r\n let words = []\r\n const options = {\r\n accuracy: {\r\n value: 'exactly',\r\n limiters: [',', '.', '?', '!', ';', ':']\r\n },\r\n exclude: ['a', 'h1', 'h2', 'h3', 'h4', 'h5'],\r\n separateWordSearch: false,\r\n element: 'span',\r\n className:\r\n 'kb-component--dictionary-word kb-dictionary-word__definition-set',\r\n each: (node) => {\r\n \r\n const currentWordObject = props.wordObjects.find(\r\n (w) => {\r\n if (w.word.toLowerCase() == node.innerText.toLowerCase() \r\n || w.word.toLowerCase() == node.innerHTML.toLowerCase()) {\r\n return true\r\n } \r\n return false\r\n }\r\n ) \r\n if (currentWordObject) {\r\n const wordData = {\r\n id: currentWordObject.id,\r\n word: node.innerHTML,\r\n wordArticleUrl: currentWordObject.wordArticleUrl\r\n }\r\n node.setAttribute('data-word', JSON.stringify(wordData))\r\n node.setAttribute(\r\n 'id',\r\n 'kb-component--dictionary-word__' +\r\n Math.random().toString(16).slice(2)\r\n )\r\n }\r\n }\r\n }\r\n\r\n props.wordObjects.forEach((w) => words.push(w.word))\r\n\r\n\r\n document.querySelectorAll('.kb-rich-text').forEach((richText) => {\r\n const mark = new Mark(richText)\r\n mark.mark(words, options)\r\n })\r\n\r\n // Mount the DictionaryWord component to all the words contained in the dictionary\r\n const el = '.kb-component--dictionary-word'\r\n const DOMs = document.querySelectorAll(el)\r\n\r\n DOMs.forEach((DOM) => {\r\n if (\r\n DOM &&\r\n DOM.dataset.word &&\r\n !DOM.hasAttribute('data-v-app')\r\n ) {\r\n const wordObject = JSON.parse(DOM.dataset.word)\r\n const component = createApp(DictionaryWord, {\r\n domId: `#${DOM.id}`,\r\n wordObject\r\n }).use(Store)\r\n component.mount(`#${DOM.id}`)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { render } from \"./Dictionary.vue?vue&type=template&id=5825812a\"\nimport script from \"./Dictionary.vue?vue&type=script&lang=js\"\nexport * from \"./Dictionary.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport Dictionary from './Dictionary'\r\n\r\nconst el = '.kb-component--dictionary'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DictionaryDOM) => {\r\n if (DictionaryDOM.getAttribute('data-v-app') !== null) return false\r\n const wordObjects = JSON.parse(DictionaryDOM.dataset.words).words\r\n\r\n const component = createApp(Dictionary, { wordObjects }).use(Store)\r\n component.mount(DictionaryDOM)\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n \r\n {{ group.letter }}\r\n \r\n \r\n \r\n \r\n\r\n","import { computed, onMounted, ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'DictionaryList',\r\n props: {\r\n dictionary: {\r\n type: Object,\r\n required: true\r\n },\r\n showFilter: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const filterLetter = ref('')\r\n const dictionaryData = computed(\r\n () => store.getters['search/dictionaryData']\r\n )\r\n const displayList = computed(() =>\r\n store.getters['search/dictionaryFilterBySearch'].filter((group) =>\r\n filterLetter.value\r\n ? group.letter.toUpperCase() === filterLetter.value\r\n : true\r\n )\r\n )\r\n const startLettersComplete = [\r\n 'A',\r\n 'B',\r\n 'C',\r\n 'D',\r\n 'E',\r\n 'F',\r\n 'G',\r\n 'H',\r\n 'I',\r\n 'J',\r\n 'K',\r\n 'L',\r\n 'M',\r\n 'N',\r\n 'O',\r\n 'P',\r\n 'Q',\r\n 'R',\r\n 'S',\r\n 'T',\r\n 'U',\r\n 'V',\r\n 'W',\r\n 'X',\r\n 'Y',\r\n 'Z',\r\n 'Æ',\r\n 'Ø',\r\n 'Å'\r\n ]\r\n const startLettersDisplay = computed(() => {\r\n return startLettersComplete.map((letter) => {\r\n return {\r\n letter: letter,\r\n disabled: !dictionaryData.value.find(\r\n (group) => group.letter === letter.toUpperCase()\r\n )?.words.length,\r\n selected:\r\n filterLetter.value === letter.toUpperCase()\r\n ? 'kb-dictionary-list--selected'\r\n : ''\r\n }\r\n })\r\n })\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'dictionaryList',\r\n labelKey: labelKey\r\n })\r\n\r\n const filterOnLetter = function (letter) {\r\n filterLetter.value = filterLetter.value === letter ? '' : letter\r\n }\r\n\r\n const showFilter = computed(() => props.showFilter)\r\n\r\n onMounted(() => {\r\n store.commit('search/set_dictionary_data', props.dictionary)\r\n })\r\n\r\n return {\r\n displayList,\r\n filterOnLetter,\r\n filterLetter,\r\n startLettersDisplay,\r\n showFilter,\r\n getLabel\r\n }\r\n }\r\n}\r\n","import { render } from \"./DictionaryList.vue?vue&type=template&id=d7b8290e\"\nimport script from \"./DictionaryList.vue?vue&type=script&lang=js\"\nexport * from \"./DictionaryList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\";\r\nimport { computed, onMounted, ref, watch } from 'vue'\r\n\r\nexport default {\r\n name: \"DirectMessageNavigation\",\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n userData: {\r\n type: Object,\r\n required: true\r\n },\r\n chatId: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const inputText = ref('')\r\n const results = ref([])\r\n const showSpinner = computed(() => store.state.forum.is_submitting)\r\n const allResults = computed(() => store.state.forum.direct_message_threads)\r\n\r\n onMounted(() => { \r\n const profileId = new URLSearchParams(document.location.search).get('profile')\r\n store.dispatch('forum/getDirectMessageThreads', { userId: props.userData.userId, chatId: props.chatId, toProfileId: profileId })\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: 1000,\r\n showMorePageSize: 1000,\r\n url: process.env.SEARCH_DIRECT_MESSAGE_THREADS\r\n })\r\n })\r\n\r\n watch(() => allResults.value, (newValue) => {\r\n results.value = newValue\r\n })\r\n\r\n const scrollTreadInToView = function () {\r\n const thread = document.querySelector('.kb-direct-messages-content__right-wrapper')\r\n if (thread) {\r\n thread.scrollIntoView({ behavior: 'smooth' })\r\n }\r\n }\r\n\r\n const handleInputText = function (e) {\r\n inputText.value = e.target.value\r\n }\r\n\r\n const searchMessages = function () {\r\n if (inputText.value === '') {\r\n results.value = allResults.value\r\n return\r\n } \r\n\r\n const searchResults = []\r\n allResults.value.map((result) => {\r\n if (result.chatName.toLowerCase().includes(inputText.value.toLowerCase())) {\r\n searchResults.push(result)\r\n }\r\n })\r\n\r\n results.value = searchResults\r\n }\r\n\r\n const startNewMessage = function () {\r\n store.dispatch('forum/clearDirectMessageThread')\r\n scrollTreadInToView()\r\n }\r\n\r\n const changeChat = function (chatId) {\r\n store.dispatch('forum/clearDirectMessageThread')\r\n\r\n store.dispatch('forum/getDirectMessageThreadData', { \r\n chatId,\r\n userId: props.userData.userId\r\n })\r\n scrollTreadInToView()\r\n }\r\n\r\n return {\r\n showSpinner,\r\n inputText,\r\n results,\r\n allResults,\r\n handleInputText,\r\n searchMessages,\r\n startNewMessage,\r\n changeChat,\r\n getLabel: (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"DirectMessageNavigation\",\r\n labelKey,\r\n }),\r\n }\r\n }\r\n}","import { render } from \"./DirectMessageNavigation.vue?vue&type=template&id=bb53dc08\"\nimport script from \"./DirectMessageNavigation.vue?vue&type=script&lang=js\"\nexport * from \"./DirectMessageNavigation.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport AttachmentsEditor from \"../AttachmentsEditor/AttachmentsEditor.vue\";\r\nimport AttachmentsViewer from \"../AttachmentsViewer/AttachmentsViewer.vue\";\r\nimport { computed, ref, watch } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport debounce from 'foundation/js/debounce'\r\n\r\nexport default {\r\n name: \"DirectMessageThread\",\r\n components: {\r\n AttachmentsEditor,\r\n AttachmentsViewer,\r\n Editor,\r\n FormInputTextField\r\n },\r\n props: {\r\n chatId: {\r\n type: String,\r\n required: true\r\n },\r\n userData: {\r\n type: Object,\r\n required: true\r\n },\r\n userSearchTake: {\r\n type: Number,\r\n required: false,\r\n default: 15\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const newCommentModel = ref('')\r\n const editCommentModel = ref('')\r\n const userSearchModel = ref('')\r\n const userSearchRef = ref(null) \r\n const editCommentId = ref('')\r\n const displayInputError = ref(false)\r\n const isSubmitting = ref(false)\r\n \r\n const newChatUsers = computed(() => store.state.forum.new_chat_users)\r\n \r\n const filesToAdd = ref([])\r\n const attachmentsComponent = ref()\r\n const chatContentComponent = ref()\r\n \r\n const chatId = computed(() => store.state.forum.direct_message_thread_id)\r\n const chats = computed(() => store.state.forum.direct_message_thread_data.chat)\r\n watch(chats, () => { \r\n setTimeout(() => { \r\n scrollToBottom() \r\n }, 100) \r\n })\r\n\r\n const chatName = computed(() => store.state.forum.direct_message_thread_data.chatName)\r\n const chatIcon = computed(() => store.state.forum.direct_message_thread_data.chatIcon)\r\n const listOfUsers = computed(() => {\r\n const users = [] \r\n store.state.forum.add_users_data?.map(user => {\r\n if (newChatUsers.value.filter(item => item.id === user.id).length === 0) {\r\n users.push(user)\r\n }\r\n })\r\n return users\r\n })\r\n const showUserSearch = computed(() => store.state.forum.show_user_search)\r\n const showSpinner = computed(() => store.state.forum.is_submitting)\r\n\r\n const comments = computed(() => [].concat(...chats.value.map(chat => chat.comments)))\r\n \r\n const editCommentObj = computed(() => comments.value.find(comment => comment.id === editCommentId.value))\r\n const editCommentFiles = computed(() => editCommentObj.value.attachments)\r\n const editCommentFilesToAdd = ref([])\r\n const editCommentFilesToRemove = ref([])\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({labelCollection: \"DirectMessageThread\", labelKey: labelKey})\r\n\r\n const showCreateNewChatUsersLabel = computed(() => listOfUsers.value.length === 0 && newChatUsers.value.length > 0)\r\n\r\n const showSearchForUser = () => {\r\n store.commit('forum/set_show_user_search', true)\r\n }\r\n\r\n const searchForUser = (e) => {\r\n if (!userSearchRef.value) {\r\n userSearchRef.value = e.target\r\n }\r\n\r\n if (userSearchModel.value.length === 0) {\r\n store.dispatch('forum/clearSearchForUser')\r\n return\r\n }\r\n\r\n debounce(function () {\r\n store.dispatch('forum/searchForUser', { \r\n query: userSearchModel.value,\r\n take: props.userSearchTake\r\n })\r\n }, 500)()\r\n }\r\n\r\n const editComment = (commentId, text) => {\r\n editCommentId.value = commentId\r\n editCommentModel.value = text\r\n }\r\n\r\n const saveEditComment = (commentId) => {\r\n\r\n const formData = new FormData()\r\n\r\n if (editCommentModel.value) {\r\n formData.append('text', editCommentModel.value)\r\n }\r\n\r\n editCommentFilesToAdd.value.forEach(file => {\r\n formData.append('filesToAdd', file)\r\n })\r\n \r\n editCommentFilesToRemove.value.forEach(fileId => {\r\n formData.append('filesToRemove', fileId)\r\n })\r\n\r\n store.dispatch('forum/editDirectMessageThreadComment', { \r\n body: formData, \r\n commentId, \r\n chatId: chatId.value,\r\n userId: props.userData.userId\r\n })\r\n \r\n setTimeout(() => { \r\n editCommentId.value = ''\r\n }, 50)\r\n }\r\n\r\n const cancelEditComment = () => {\r\n editCommentId.value = ''\r\n }\r\n\r\n const deleteComment = (e, commentId) => {\r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: 'DeleteCommentOverlay',\r\n page_overlay_content_data: { commentId: commentId },\r\n returnTarget: e.currentTarget\r\n })\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: async () => {\r\n if(isSubmitting.value){ \r\n return;\r\n } \r\n isSubmitting.value = true\r\n await store.dispatch('forum/deleteDirectMessageThreadComment', {\r\n commentId: commentId,\r\n chatId: chatId.value,\r\n userId: props.userData.userId\r\n })\r\n isSubmitting.value = false \r\n setTimeout(() => {\r\n store.dispatch('main/closePageOverlay')\r\n }, 50)\r\n }\r\n })\r\n }\r\n\r\n const deleteThread = function(e) { \r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: 'DeletePostOverlay',\r\n returnTarget: e.currentTarget\r\n })\r\n\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: async () => {\r\n if(isSubmitting.value){ \r\n return;\r\n } \r\n isSubmitting.value = true\r\n var success = await store.dispatch('forum/deleteDirectMessageThread', {\r\n chatId: chatId.value\r\n })\r\n if (success) {\r\n location.reload()\r\n } else {\r\n isSubmitting.value = false \r\n }\r\n }\r\n })\r\n }\r\n \r\n const addUserToThread = (user) => {\r\n const existing = newChatUsers.value.filter(item => item.id !== user.id)\r\n store.commit('forum/set_new_chat_users', [...existing, user])\r\n store.dispatch('forum/clearSearchForUser')\r\n userSearchModel.value = '' \r\n userSearchRef.value?.focus()\r\n }\r\n\r\n const handleCreateNewChat = async () => {\r\n if (newChatUsers.value.length > 0) {\r\n await store.dispatch('forum/createNewDirectMessageThread', { \r\n userIds: newChatUsers.value.map(user => user.id),\r\n message: newCommentModel.value,\r\n userId: props.userData.userId,\r\n files: filesToAdd.value\r\n })\r\n }\r\n }\r\n\r\n const scrollToBottom = () => {\r\n if (chatContentComponent.value) {\r\n chatContentComponent.value.scrollTop = chatContentComponent.value.scrollHeight\r\n }\r\n }\r\n\r\n const submitNewComment = async () => {\r\n if (!newCommentModel.value) {\r\n displayInputError.value = true\r\n return\r\n }\r\n\r\n displayInputError.value = false\r\n\r\n if (!chatId.value) {\r\n handleCreateNewChat()\r\n } else {\r\n await store.dispatch('forum/submitDirectMessageThreadComment', { \r\n text: newCommentModel.value,\r\n chatId: chatId.value,\r\n userId: props.userData.userId,\r\n files: filesToAdd.value\r\n })\r\n }\r\n\r\n newCommentModel.value = ''\r\n\r\n attachmentsComponent.value.clear()\r\n\r\n scrollToBottom()\r\n }\r\n\r\n const getClassModifier = (comment) => {\r\n let result = ''\r\n if (comment.userId === props.userData.userId) {\r\n result += 'kb-direct-message-thread__content-comment--left'\r\n }\r\n if (comment.id === editCommentId.value) {\r\n result += ' kb-direct-message-thread__content-comment--edit'\r\n }\r\n return result\r\n }\r\n \r\n return {\r\n showSpinner,\r\n showCreateNewChatUsersLabel,\r\n newChatUsers,\r\n chats,\r\n chatName,\r\n chatIcon,\r\n newCommentModel,\r\n editCommentModel,\r\n userSearchModel,\r\n editCommentId,\r\n displayInputError,\r\n showUserSearch,\r\n listOfUsers,\r\n addUserToThread,\r\n getClassModifier,\r\n editComment,\r\n deleteComment,\r\n deleteThread,\r\n submitNewComment,\r\n showSearchForUser,\r\n searchForUser,\r\n saveEditComment,\r\n cancelEditComment,\r\n getLabel,\r\n filesToAdd,\r\n attachmentsComponent,\r\n chatContentComponent,\r\n editCommentFiles,\r\n editCommentFilesToAdd,\r\n editCommentFilesToRemove\r\n }\r\n }\r\n}","import { render } from \"./DirectMessageThread.vue?vue&type=template&id=7e95e60a\"\nimport script from \"./DirectMessageThread.vue?vue&type=script&lang=js\"\nexport * from \"./DirectMessageThread.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import DirectMessageNavigation from 'components/DirectMessageNavigation/DirectMessageNavigation.vue'\r\nimport DirectMessageThread from 'components/DirectMessageThread/DirectMessageThread.vue'\r\n\r\nexport default {\r\n name: \"DirectMessagesContent\",\r\n components: {\r\n DirectMessageNavigation,\r\n DirectMessageThread\r\n },\r\n props: {\r\n chatId: {\r\n type: String,\r\n required: true\r\n },\r\n userData: {\r\n type: Object,\r\n required: true\r\n },\r\n guid: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(){\r\n }\r\n}","import { render } from \"./DirectMessagesContent.vue?vue&type=template&id=35563409\"\nimport script from \"./DirectMessagesContent.vue?vue&type=script&lang=js\"\nexport * from \"./DirectMessagesContent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","import { computed } from 'vue'\r\nimport {useStore} from 'vuex'\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"FileListCard\",\r\n props: {\r\n cardData: {\r\n type: Object,\r\n required: true\r\n },\r\n cardButtonIcons: {\r\n type: Object,\r\n required: true,\r\n default: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n\r\n const exitOnEscape = function (e) {\r\n const currentCardElement = e.target.parentNode.parentNode\r\n const currentCardFileLink = currentCardElement.querySelector('.kb-js--file-link')\r\n const currentCardFunctions = currentCardElement.querySelectorAll('.kb-js--file-function')\r\n \r\n currentCardFileLink.focus()\r\n\r\n currentCardFunctions.forEach((functionButton)=> {\r\n functionButton.setAttribute('tabindex', -1)\r\n })\r\n }\r\n\r\n const enterFunctions = function (e){\r\n const currentCardElement = e.target.parentNode\r\n \r\n const currentCardFunctions = currentCardElement.querySelectorAll('.kb-js--file-function')\r\n\r\n if(!currentCardFunctions.length) {\r\n return false\r\n }\r\n\r\n currentCardFunctions[0].focus()\r\n\r\n currentCardFunctions.forEach((functionButton, index)=> {\r\n functionButton.setAttribute('tabindex', 0)\r\n\r\n if(currentCardFunctions.length -1 === index) {\r\n functionButton.addEventListener('keydown', (e)=> {\r\n\r\n if(e.code === 'Tab' && e.shiftKey === false) {\r\n currentCardFunctions.forEach((functionButton)=> {\r\n functionButton.setAttribute('tabindex', -1)\r\n })\r\n }\r\n\r\n })\r\n }\r\n\r\n if(index === 0) {\r\n functionButton.addEventListener('keydown', (e)=> {\r\n if(e.code === 'Tab' && e.shiftKey === true) {\r\n currentCardFunctions.forEach((functionButton)=> {\r\n functionButton.setAttribute('tabindex', -1)\r\n })\r\n }\r\n\r\n })\r\n }\r\n })\r\n \r\n \r\n }\r\n\r\n const getLabel = (labelKey, params) => GetLabel({ labelKey, labelCollection: 'FileListCard', params })\r\n const getLabelOrEmpty = (labelKey, params) => GetLabel({ labelKey, labelCollection: 'FileListCard', params, allowEmpty: true })\r\n\r\n const activeActionTarget = computed(() => props.cardData.type == 'Dokument' ? \"_blank\" : null);\r\n\r\n const determineStartOverlayFunction = function (e, currentOverlay, cardData) {\r\n // the active overlay mode should be set when overlay activated\r\n // when overlay closed, mode needs to be cleared\r\n store.dispatch('frivillige/setActiveOverlayMode', { mode: cardData.type }) \r\n store.dispatch('frivillige/setActiveItemName', { name: cardData.name }) \r\n store.dispatch('frivillige/setEditModeActive', { mode: true }) \r\n store.commit('frivillige/set_active_item_id', cardData.id) \r\n\r\n // for prefilled in edit mode - creating updated active_name\r\n store.dispatch('frivillige/getActiveItemName')\r\n\r\n if(currentOverlay === \"ConfirmDeleteOverlay\") {\r\n \r\n store.commit('frivillige/set_delete_item_type', cardData.type ) \r\n store.commit('frivillige/set_delete_item_id', cardData.id ) \r\n store.commit('frivillige/set_delete_item_name', cardData.name) \r\n }\r\n \r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: currentOverlay,\r\n returnTarget: e.currentTarget\r\n })\r\n \r\n }\r\n\r\n return {\r\n activeActionTarget,\r\n enterFunctions,\r\n determineStartOverlayFunction,\r\n exitOnEscape,\r\n getLabel,\r\n getLabelOrEmpty\r\n }\r\n \r\n }\r\n}","import { render } from \"./FileListCard.vue?vue&type=template&id=49157036\"\nimport script from \"./FileListCard.vue?vue&type=script&lang=js\"\nexport * from \"./FileListCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { onMounted, computed, ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport FileListCard from 'components/FileListCard/FileListCard.vue'\r\n\r\nexport default {\r\n name: \"DocumentAndFolderList\", \r\n components: { \r\n FileListCard \r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n cardButtonIcons: {\r\n type: Object,\r\n required: true,\r\n default: false\r\n },\r\n gruppeKode: {\r\n type: String,\r\n required: true\r\n },\r\n fileTypeDropdownOptions : {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const isSearching = computed(()=> store.state.search.is_searching)\r\n\r\n const mappeName = ref(null)\r\n const parentMappeName = ref(null)\r\n const parentMappeUrl = ref(null)\r\n\r\n const hasParentMappe = computed(() => !!parentMappeName.value)\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({ labelCollection: \"DocumentAndFolderList\", labelKey: labelKey })\r\n\r\n const startOverlayFunction = function (e, overlay) {\r\n if(overlay === 'CreateFolderOverlay') {\r\n // the active overlay mode should be set when overlay activated\r\n // when overlay closed, mode is cleared inside pageOverlay.options\r\n store.dispatch('frivillige/setActiveOverlayMode', { mode: \"Mappe\" }) \r\n //editModeActive should also be updated\r\n store.dispatch('frivillige/setEditModeActive', { mode: false }) \r\n \r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: overlay,\r\n returnTarget: e.currentTarget\r\n })\r\n } else {\r\n store.dispatch('frivillige/setActiveOverlayMode', { mode: \"Dokument\" }) \r\n \r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: overlay,\r\n returnTarget: e.currentTarget\r\n })\r\n } \r\n\r\n }\r\n\r\n const files = computed(() => store.state.search.results[props.guid] )\r\n\r\n onMounted(() => {\r\n initFetchPosts()\r\n store.commit('frivillige/set_file_type_dropdown_options', props.fileTypeDropdownOptions)\r\n })\r\n\r\n const initFetchPosts = function() {\r\n\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n \r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: process.env.GET_FILES_LIST.replace('[gruppeKode]', props.gruppeKode)\r\n })\r\n \r\n store.dispatch(\"frivillige/setGlobalGruppeKode\", {\r\n gruppeKode: props.gruppeKode\r\n });\r\n \r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: ''\r\n })\r\n .then((json) =>{\r\n mappeName.value = json.mappeName\r\n parentMappeName.value = json.parentMappeName\r\n parentMappeUrl.value = json.parentMappeUrl\r\n })\r\n\r\n }\r\n\r\n return {\r\n mappeName,\r\n parentMappeName,\r\n parentMappeUrl,\r\n hasParentMappe,\r\n getLabel,\r\n startOverlayFunction,\r\n files,\r\n isSearching \r\n }\r\n }\r\n}","import { render } from \"./DocumentAndFolderList.vue?vue&type=template&id=d6a6a300\"\nimport script from \"./DocumentAndFolderList.vue?vue&type=script&lang=js\"\nexport * from \"./DocumentAndFolderList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref, computed, onMounted } from 'vue'\r\nexport default {\r\n name: 'DonationAmount',\r\n props: {\r\n showCustomDonation: {\r\n type: Boolean,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const otherAmount = ref('')\r\n\r\n const updateOtherAmount = () => { \r\n otherAmount.value = otherAmount.value.replace(/[^0-9.]/g, '')\r\n }\r\n\r\n return {\r\n updateOtherAmount,\r\n otherAmount,\r\n showCustomDonation: props.showCustomDonation\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n","export default {\r\n name: 'DonationCard',\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n },\r\n modifierClass:{\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup() {}\r\n}\r\n","import { render } from \"./DonationCard.vue?vue&type=template&id=7da7b83c\"\nimport script from \"./DonationCard.vue?vue&type=script&lang=js\"\nexport * from \"./DonationCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"DonationReceiptOverlay\",\r\n props: {\r\n readMoreUrl: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const readMoreUrl = computed(() => props.readMoreUrl ?? store.state.main.page_overlay_content_data.readMoreUrl)\r\n\r\n let first,\r\n last,\r\n close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n const cancelAction = function(){\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n onMounted(() => {\r\n \r\n first = document.querySelector(\r\n '.kb-button[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-button[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n\r\n const orderId = new URLSearchParams(document.location.search).get(\r\n 'orderId'\r\n )\r\n if (orderId)\r\n store.dispatch('main/trackPurchaseData', { orderId })\r\n })\r\n\r\n return {\r\n readMoreUrl,\r\n cancelAction,\r\n tabTrap,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'DonationReceiptOverlay',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./DonationReceiptOverlay.vue?vue&type=template&id=e2498320\"\nimport script from \"./DonationReceiptOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./DonationReceiptOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { onMounted, ref } from 'vue'\r\n\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\nimport FormInputDropdown from 'components/FormInputDropdown/FormInputDropdown.vue'\r\n\r\nexport default {\r\n name: \"DropdownWithTags\",\r\n components: {\r\n FormInputDropdown\r\n },\r\n props: {\r\n initTags: {\r\n type: Array,\r\n required: false,\r\n default: null\r\n },\r\n tagsTitle: {\r\n type: String,\r\n required: true,\r\n },\r\n onChangeCallback: {\r\n type: Function,\r\n required: true,\r\n default: () => {}\r\n },\r\n fieldName: {\r\n type: String,\r\n required: true\r\n },\r\n legend: {\r\n type: String,\r\n required: false\r\n },\r\n isRequired: {\r\n type: Boolean,\r\n required: false\r\n },\r\n label: {\r\n type: String,\r\n required: true\r\n },\r\n placeholder: {\r\n type: String,\r\n required: false\r\n },\r\n isValidationError: {\r\n // this props works in 2 ways\r\n // 1 - checkout page on webshop handles all field validation and will output result here\r\n // 2 - other forms like SFL forms will use this field to notify the field to show its possible errors\r\n type: Boolean,\r\n required: false,\r\n default: null\r\n },\r\n errorMessageLabel: {\r\n type: String,\r\n required: false\r\n },\r\n selectOptions: {\r\n type: Object,\r\n required: false\r\n },\r\n },\r\n setup(props){\r\n const subjectOptions = ref(props.selectOptions.options)\r\n const tagsDropdown = ref()\r\n const tags = ref([])\r\n const returnTags = ref([])\r\n\r\n onMounted(() => {\r\n if (props.initTags && props.initTags.length > 0) {\r\n tags.value = props.initTags \r\n returnTags.value = tags.value.map(tag => props.selectOptions.options.find(option => option.name === tag).value)\r\n props.onChangeCallback(returnTags.value)\r\n }\r\n })\r\n\r\n const handleSubjectsOptions = function (e) {\r\n \r\n const tagId = e.target.value\r\n const name = getTagName(tagId)\r\n \r\n const alreadyExisting = tags.value.find(tag => tag === name)\r\n\r\n if(!alreadyExisting) {\r\n tags.value.push(name)\r\n returnTags.value.push(tagId)\r\n props.onChangeCallback(returnTags.value)\r\n } \r\n }\r\n\r\n const getTagName = function(newTag) {\r\n let result = newTag\r\n props.selectOptions.options.map((item) => {\r\n if(item.value === newTag) {\r\n newTag = item.name\r\n }\r\n })\r\n return newTag\r\n }\r\n\r\n const handleDeleteTag = function (clickedTagName) { \r\n tags.value = tags.value.filter(tag => tag !== clickedTagName)\r\n returnTags.value = tags.value.map(tag => props.selectOptions.options.find(option => option.name === tag).value)\r\n props.onChangeCallback(returnTags.value)\r\n const dropDownWrapper = document.querySelector('.kb-js--dropdown-with-tags-wrapper')\r\n const dropDown = dropDownWrapper.querySelector('#dropdown')\r\n dropDown.focus()\r\n }\r\n\r\n return {\r\n subjectOptions,\r\n tags,\r\n tagsDropdown,\r\n nonEmptyStringValidator,\r\n handleSubjectsOptions,\r\n handleDeleteTag\r\n }\r\n }\r\n}","import { render } from \"./DropdownWithTags.vue?vue&type=template&id=6d91ee0d\"\nimport script from \"./DropdownWithTags.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownWithTags.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { ref, computed } from 'vue'\r\n\r\nexport default {\r\n name: \"ProfilePicture\",\r\n props: {\r\n userId: {\r\n type: String,\r\n required: true\r\n },\r\n content: {\r\n type: Object,\r\n required: false,\r\n default: null\r\n },\r\n type: {\r\n type: String,\r\n required: true\r\n },\r\n hasProfileImage: {\r\n type: Boolean,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n\r\n const showInputErrors = ref(false)\r\n const isSubmissionError = ref(false)\r\n const profilePicture = ref(props.content)\r\n const hasProfileImage = ref(props.hasProfileImage)\r\n\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: 'profilePicture', labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n } \r\n\r\n const onPictureChange = async (e) => {\r\n try {\r\n const picture = e.target.files\r\n Array.from(picture).forEach(file => {\r\n profilePicture.value = file\r\n profilePicture.value.url = URL.createObjectURL(file)\r\n })\r\n\r\n setTimeout( ()=> {\r\n const deleteButton = document.querySelector('.kb-js--delete-uploaded-file-card')\r\n deleteButton.focus()\r\n } , 100)\r\n\r\n await submitProfilePicture()\r\n\r\n hasProfileImage.value = true\r\n }\r\n catch {\r\n isSubmissionError.value = true\r\n }\r\n }\r\n\r\n const removeFile = async () => {\r\n profilePicture.value = {\r\n url: props?.content.url\r\n }\r\n showInputErrors.value = false\r\n isSubmissionError.value = false\r\n\r\n setTimeout( ()=> {\r\n const pictureUploadLabel = document.querySelector('.kb-js--uploaded-file-label')\r\n pictureUploadLabel.focus()\r\n } , 100)\r\n\r\n if (props.type == \"frivillig\") {\r\n await store.dispatch('frivilligprofil/removeFrivilligProfilePicture')\r\n }\r\n else {\r\n await store.dispatch('forum/removeForumProfilePicture', { id: props.userId })\r\n }\r\n\r\n const profilePicturePath = profilePicture.value.url ?? props?.content?.url\r\n const url = new URL(`${window.location.origin}${profilePicturePath}`)\r\n url.searchParams.append(\"hasProfileImage\", false)\r\n profilePicture.value = {\r\n url: url.toString(),\r\n size: \"\",\r\n name: \"\",\r\n } \r\n \r\n hasProfileImage.value = false\r\n store.dispatch('main/setUserProfileImage', profilePicture.value.url)\r\n }\r\n\r\n const submitProfilePicture = async function () {\r\n showInputErrors.value = true\r\n\r\n if (profilePicture.value !== \"\") {\r\n let formData = new FormData()\r\n formData.append('file', profilePicture.value)\r\n\r\n if (props.type == \"cancerforum\") {\r\n store.dispatch('forum/submitForumProfilePicture', {\r\n formData: formData,\r\n id: props.userId\r\n })\r\n }\r\n if (props.type == \"frivillig\") {\r\n store.dispatch('frivilligprofil/submitFrivilligProfilePicture', {\r\n formData: formData,\r\n id: props.userId\r\n })\r\n }\r\n\r\n store.dispatch('main/setUserProfileImage', profilePicture.value.url ?? props?.content?.url)\r\n } \r\n }\r\n\r\n const handleTab = function (e) {\r\n const fileInput = e.target.querySelector('input')\r\n fileInput.click()\r\n\r\n }\r\n\r\n return {\r\n handleTab,\r\n getLabel,\r\n submitProfilePicture,\r\n onPictureChange,\r\n removeFile,\r\n hasProfileImage,\r\n profilePicture,\r\n showInputErrors,\r\n isSubmissionError\r\n } \r\n }\r\n}","import { render } from \"./ProfilePicture.vue?vue&type=template&id=694dad6e\"\nimport script from \"./ProfilePicture.vue?vue&type=script&lang=js\"\nexport * from \"./ProfilePicture.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import GetLabel from \"foundation/js/getLabel\"\r\nimport ProfilePicture from \"../ProfilePicture/ProfilePicture\";\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField\";\r\nimport FormInputNameField from \"../FormInputNameField/FormInputNameField\";\r\nimport FormAddressField from \"../FormAddressField/FormAddressField\";\r\nimport FormInputEmailField from \"../FormInputEmailField/FormInputEmailField\";\r\nimport FormInputTextarea from \"../FormInputTextarea/FormInputTextarea\";\r\nimport FormCheckbox from \"../FormCheckbox/FormCheckbox\";\r\nimport FormInputDropdown from \"../FormInputDropdown/FormInputDropdown\";\r\nimport { ref, computed } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default {\r\n name: \"EditFrivilligProfile\",\r\n components: {\r\n ProfilePicture,\r\n FormInputTextField,\r\n FormInputNameField,\r\n FormAddressField,\r\n FormInputEmailField,\r\n FormInputTextarea,\r\n FormInputDropdown,\r\n FormCheckbox\r\n },\r\n props: {\r\n interests: {\r\n type: Array,\r\n required: true,\r\n },\r\n userData: {\r\n type: Object,\r\n required: true,\r\n },\r\n notificationWhenCommentOnSavedPosts: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n notificationWhenDirectMessage: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n notificationWhenNewDocument: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n notificationWhenPostsOnGroups: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n addressVisible: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n phonenumberVisible: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n emailVisible: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n hasNewsletterSubscription: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n deleteProfileRedirectUrl: {\r\n type: String,\r\n required: false\r\n },\r\n hasProfileImage : {\r\n type: Boolean,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayError = ref(false)\r\n const password = ref(\"123435678\")\r\n const userData = ref(props.userData ?? {})\r\n const description = ref(props.userData.description ?? \"\")\r\n const isSubmitting = computed(()=> store.state.frivilligprofil.submitting)\r\n\r\n const notificationFrequency = ref(props.userData.notificationFrequency ?? \"\")\r\n const isSubscribedToNewsletter = ref(props.hasNewsletterSubscription ?? false)\r\n const notificationWhenCommentOnSavedPosts = ref(props.notificationWhenCommentOnSavedPosts ?? \"\")\r\n const notificationWhenPostsOnGroups = ref(props.notificationWhenPostsOnGroups ?? \"\")\r\n const notificationWhenDirectMessage = ref(props.notificationWhenDirectMessage ?? \"\")\r\n const notificationWhenNewDocument = ref(props.notificationWhenNewDocument ?? \"\")\r\n const gruppeemner = computed(() => props.interests.filter(x => x.isSelected).map(x => x.id))\r\n const addressVisible = ref(props.addressVisible)\r\n const phoneNumberVisible = ref(props.phonenumberVisible)\r\n const emailVisible = ref(props.emailVisible)\r\n\r\n const notificationfrequencyOptions = [\r\n { \"name\": \"Straks\", \"value\": \"Immediately\" },\r\n { \"name\": \"Dagligt\", \"value\": \"Daily\" },\r\n { \"name\": \"Ugentligt\", \"value\": \"Weekly\" },\r\n ]\r\n\r\n const url = `/${process.env.FRIVILLIGPROFIL_PICTURE_GET.replace(\"[id]\", userData.value.id)}`\r\n const activeProfilePicture = ref({\r\n \"name\": \"\",\r\n \"url\": url, \r\n \"size\": \"\"\r\n })\r\n\r\n const saveProfile = () => {\r\n const body = {\r\n profileImageSrc: activeProfilePicture.value.url,\r\n description: description.value,\r\n addressVisible: addressVisible.value,\r\n phonenumberVisible: phoneNumberVisible.value,\r\n emailVisible: emailVisible.value,\r\n notificationFrequency: notificationFrequency.value \r\n ? notificationFrequency.value \r\n : null,\r\n notificationWhenCommentOnSavedPosts: notificationWhenCommentOnSavedPosts.value,\r\n notificationWhenPostsOnGroups: notificationWhenPostsOnGroups.value,\r\n notificationWhenDirectMessage: notificationWhenDirectMessage.value,\r\n notificationWhenNewDocument: notificationWhenNewDocument.value,\r\n isSubscribedToNewsletter: isSubscribedToNewsletter.value,\r\n gruppeemner: gruppeemner.value\r\n }\r\n\r\n store.dispatch(\"frivilligprofil/editFrivilligprofil\", {\r\n pageId: store.state.main.page_id,\r\n body: body,\r\n })\r\n }\r\n\r\n const startUserInfoOverlay = (e) => {\r\n store.commit('main/set_page_overlay_content_data', { userId: props.userData.id, isFrivilligContext: true })\r\n\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"MemberOverlayProfileCard\",\r\n returnTarget: e.currentTarget,\r\n });\r\n }\r\n \r\n const startDeleteUserOverlay = function (e) {\r\n store.commit('main/set_page_overlay_content_data', { \r\n userProfileId: props.userData.userProfileId,\r\n continueUrl: props.deleteProfileRedirectUrl\r\n })\r\n\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"FVLConfirmDeleteProfile\",\r\n returnTarget: e.currentTarget,\r\n });\r\n };\r\n\r\n const setInterest = (name, value) => props.interests.find((interest) => interest.name === name).isSelected = value\r\n const setNotification = (name, value) => props.notificationSettings.find((setting) => setting.name === name).value = value\r\n const setNewsletterSubscription = (value) => isSubscribedToNewsletter.value = value\r\n\r\n return {\r\n displayError,\r\n description,\r\n addressVisible,\r\n phoneNumberVisible,\r\n emailVisible,\r\n activeProfilePicture,\r\n notificationFrequency,\r\n notificationWhenCommentOnSavedPosts,\r\n notificationWhenPostsOnGroups,\r\n notificationWhenDirectMessage,\r\n notificationWhenNewDocument,\r\n gruppeemner,\r\n isSubscribedToNewsletter,\r\n userData,\r\n password,\r\n notificationfrequencyOptions,\r\n isSubmitting,\r\n setInterest,\r\n setNotification,\r\n setNewsletterSubscription,\r\n saveProfile,\r\n startUserInfoOverlay,\r\n startDeleteUserOverlay,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: \"EditFrivilligProfile\" })\r\n }\r\n }\r\n}","import { render } from \"./EditFrivilligProfile.vue?vue&type=template&id=1d0e1dfc\"\nimport script from \"./EditFrivilligProfile.vue?vue&type=script&lang=js\"\nexport * from \"./EditFrivilligProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport ContentCarousel from '../ContentCarousel/ContentCarousel.vue'\r\n\r\nexport default {\r\n name: \"FeaturedGroups\",\r\n components: {\r\n ContentCarousel\r\n },\r\n props: {\r\n colorTheme: {\r\n type: String,\r\n required: false\r\n },\r\n groupsList: {\r\n type: Object,\r\n required: false\r\n },\r\n hasGroupsButton: {\r\n type: Object,\r\n required: true\r\n },\r\n noGroupsButton: {\r\n type: Object,\r\n required: true\r\n },\r\n sliderContentJson: {\r\n type: Object,\r\n required: true\r\n },\r\n sliderId: {\r\n type: String,\r\n required: true\r\n }\r\n\r\n },\r\n setup(){\r\n const store = useStore()\r\n\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: 'FeaturedGroups', labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n }\r\n\r\n return {\r\n getLabel\r\n }\r\n\r\n }\r\n}","import { render } from \"./FeaturedGroups.vue?vue&type=template&id=cc386678\"\nimport script from \"./FeaturedGroups.vue?vue&type=script&lang=js\"\nexport * from \"./FeaturedGroups.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n","import GetLabel from 'foundation/js/getLabel'\r\n\r\nexport default {\r\n name: \"FeaturedPostSpotCard\",\r\n props: {\r\n spotCardData: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(){\r\n\r\n return {\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'FeaturedPostSpotCard' })\r\n }\r\n \r\n }\r\n}","import { render } from \"./FeaturedPostSpotCard.vue?vue&type=template&id=896ad328\"\nimport script from \"./FeaturedPostSpotCard.vue?vue&type=script&lang=js\"\nexport * from \"./FeaturedPostSpotCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'FeatureNavigationTeam',\r\n props: {\r\n teamId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const componentToShow = function(type) {\r\n return {\r\n \"deltagere\": \"holdetsDeltagere\",\r\n \"runderegistreringer\": \"holdetsRoundCounterOverlay\",\r\n \"donationer\": \"holdetsDonationer\",\r\n \"lysposer\": \"holdetsLys\",\r\n }[type] ?? \"holdetsDeltagere\"\r\n }\r\n\r\n const openPageOverlay = function(type, e) {\r\n const componentName = componentToShow(type)\r\n \r\n store.commit('main/set_page_overlay_content_data', {\r\n teamId: props.teamId\r\n })\r\n \r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: componentName,\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n \r\n return {\r\n openPageOverlay\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport GetLabel from 'foundation/js/getLabel'\r\n\r\nexport default {\r\n name: 'FlowEditModal',\r\n setup() {\r\n const changesSaved = ref(false)\r\n const store = useStore()\r\n\r\n const saveChanges = function (e) {\r\n changesSaved.value = true\r\n }\r\n\r\n const closeModal = function (e) {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n return {\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'personalFundraising' }),\r\n saveChanges,\r\n closeModal,\r\n changesSaved\r\n }\r\n }\r\n}\r\n","import { render } from \"./FlowEditModal.vue?vue&type=template&id=7bc5d2a8\"\nimport script from \"./FlowEditModal.vue?vue&type=script&lang=js\"\nexport * from \"./FlowEditModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n name: \"FlowHeader\",\r\n props: {\r\n isIndependent: {\r\n type: Boolean,\r\n required: false\r\n },\r\n isStafet: {\r\n type: Boolean,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const closeFlow = function(returnUrl, forceUseReturn) {\r\n if (forceUseReturn || history.length <= 1)\r\n {\r\n document.location = returnUrl\r\n return\r\n }\r\n\r\n history.back()\r\n }\r\n\r\n return {\r\n closeFlow,\r\n isIndependent: props.isIndependent,\r\n isStafet: props.isStafet\r\n }\r\n }\r\n}","import { dawaAutocomplete } from 'dawa-autocomplete2'\r\nimport { onMounted } from 'vue'\r\n\r\nexport default {\r\n name: 'FormAddressFieldGroup',\r\n setup() {\r\n onMounted(() => {\r\n const mainInput = document.querySelector('.dawa-adresse-vej')\r\n const zipcodeInput = document.querySelector('.dawa-adresse-postnr')\r\n const cityInput = document.querySelector('.dawa-adresse-postnrnavn')\r\n\r\n // intentionally forcing input to be made in mainInput\r\n zipcodeInput.addEventListener('focus', () => {\r\n mainInput.focus()\r\n })\r\n cityInput.addEventListener('focus', () => {\r\n mainInput.focus()\r\n })\r\n\r\n // Se: \"Google Chrome forces autofill on fields set autocomplete=\"off\"\"\"\r\n // https://github.com/alphagov/accessible-autocomplete/issues/325\r\n // Note: This is also defined in the razor cshtml file\r\n // We unfortunately need to delay setting the autocomplete attribute\r\n // since either chrome or froms tries to manipulate this after the\r\n // document is loaded.\r\n setTimeout(() => {\r\n mainInput.attributes['autocomplete'].value = 'chrome-off'\r\n }, 1)\r\n\r\n dawaAutocomplete(mainInput, {\r\n select: function (selected) {\r\n zipcodeInput.value = selected.data.postnr\r\n cityInput.value = selected.data.postnrnavn\r\n //document.querySelector('#dawa-adresse-darid').innerHTML= selected.data.id;\r\n setTimeout(\r\n () =>\r\n (mainInput.value = `${selected.data.adresseringsvejnavn} ${selected.data.husnr} ${selected.data.etage ? selected.data.etage : ''} ${selected.data.dør ? selected.data.dør : ''}`),\r\n 100\r\n )\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n","/**\r\n *\r\n * @param {string} input - cpr number input\r\n * @returns\r\n */\r\n\r\nexport default function (cpr) { \r\n const pattern = /\\b(?\\d{2})(?\\d{2})(?\\d{2})(-?)(?\\d{4})\\b/\r\n const match = cpr.match(pattern);\r\n\r\n if (!match) {\r\n return false;\r\n }\r\n\r\n const dayPart = parseInt(match.groups[\"Day\"]);\r\n const monthPart = parseInt(match.groups[\"Month\"]);\r\n const yearPart = parseInt(match.groups[\"Year\"]);\r\n const currentYearPart = new Date().getFullYear() % 100;\r\n \r\n const year = yearPart <= currentYearPart ? 2000 + yearPart : 1900 + yearPart \r\n\r\n if (!isValidDate(dayPart, monthPart, year)) {\r\n return false;\r\n }\r\n \r\n if (year < 2007) {\r\n return cprMod11Validation(cpr);\r\n }\r\n return true; \r\n}\r\n\r\nfunction isValidDate(day, month, year) {\r\n const date = new Date(year, month - 1, day); // Month is zero-based\r\n return (\r\n date.getFullYear() === year &&\r\n date.getMonth() === month - 1 &&\r\n date.getDate() === day\r\n );\r\n}\r\n\r\nfunction cprMod11Validation(cpr) {\r\n const _cprScales = [4, 3, 2, 7, 6, 5, 4, 3, 2, 1]\r\n const cprWithoutDash = cpr.replace(\"-\", \"\");\r\n if (!cprWithoutDash || cprWithoutDash.length !== 10) {\r\n return false;\r\n }\r\n\r\n const cprNumber = parseInt(cprWithoutDash);\r\n if (isNaN(cprNumber)) {\r\n return false;\r\n }\r\n\r\n const cprArray = Array.from(cprWithoutDash).map(Number);\r\n\r\n let sum = 0;\r\n for (let i = 0; i < 10; i++) {\r\n sum += cprArray[i] * _cprScales[i];\r\n }\r\n\r\n return sum % 11 === 0;\r\n}\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\nimport cprValidator from 'foundation/js/inputValidators/cprValidator'\r\n\r\nconst options = formFieldCommonOptions('FormInputCprField', {\r\n validatorFunction(input) {\r\n return cprValidator(input)\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputCprField.vue?vue&type=template&id=1fe370ba\"\nimport script from \"./FormInputCprField.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputCprField.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\nimport cvrValidator from 'foundation/js/inputValidators/cvrValidator'\r\n\r\nconst options = formFieldCommonOptions('FormInputCvrField', {\r\n validatorFunction(input) {\r\n return cvrValidator(input)\r\n }\r\n})\r\n\r\nexport default options\r\n","import { render } from \"./FormInputCvrField.vue?vue&type=template&id=3703ab9b\"\nimport script from \"./FormInputCvrField.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputCvrField.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import formFieldCommonOptions from 'foundation/js/formFieldCommonOptions'\r\n\r\nconst options = formFieldCommonOptions('FormInputDatefield', {\r\n validatorFunction(input) {\r\n return !isNaN((new Date(d)).getTime());\r\n }\r\n})\r\n\r\nexport default options","import { render } from \"./FormInputDateField.vue?vue&type=template&id=715cc5f4\"\nimport script from \"./FormInputDateField.vue?vue&type=script&lang=js\"\nexport * from \"./FormInputDateField.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export default {\r\n labels: {\r\n type: Object,\r\n required: true\r\n },\r\n previousStepCallback: {\r\n type: Function,\r\n required: true\r\n },\r\n nextStepCallback: {\r\n type: Function,\r\n required: true\r\n },\r\n skipStepCallback: {\r\n type: Function,\r\n required: false,\r\n default: () => {}\r\n },\r\n displayInputError: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n },\r\n submitCallback: {\r\n type: Function,\r\n required: true\r\n },\r\n updateBasketCallback: {\r\n type: Function,\r\n required: false,\r\n default: () => {}\r\n },\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n holdId: {\r\n type: String,\r\n required: false\r\n },\r\n tshirtSizes: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n donationAmounts: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n holdData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n holdList: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n redirectToEditProfile: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n editProfileLinkText: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n lysposeMinimumAmount: {\r\n type: Number,\r\n required: false,\r\n default: 50\r\n },\r\n donationMinimumAmount: {\r\n type: Number,\r\n required: false,\r\n default: 50\r\n },\r\n isSubmitting: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }\r\n}\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport { ref, onMounted, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'FormStepSubmitting',\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const errorMessage = ref('')\r\n\r\n const loading = computed( () => {\r\n return props.isSubmitting\r\n })\r\n\r\n\r\n\r\n onMounted(async () => {\r\n await submit()\r\n })\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'formStepSubmitting',\r\n labelKey: labelKey\r\n })\r\n\r\n const submit = async () => {\r\n if (props.submitCallback) {\r\n await props.submitCallback()\r\n }\r\n }\r\n\r\n\r\n const submitRetry = async () => {\r\n loading.value = true\r\n errorMessage.value = ''\r\n await submit()\r\n }\r\n\r\n return {\r\n loading,\r\n errorMessage,\r\n submitRetry,\r\n getLabel\r\n }\r\n }\r\n}\r\n","import { render } from \"./FormStepSubmitting.vue?vue&type=template&id=0cbde7ac\"\nimport script from \"./FormStepSubmitting.vue?vue&type=script&lang=js\"\nexport * from \"./FormStepSubmitting.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'FormStepZero',\r\n props: _stafetCommonStepsProps,\r\n setup() {\r\n const store = useStore()\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'formStepZero',\r\n labelKey: labelKey\r\n })\r\n\r\n return {\r\n getLabel\r\n }\r\n }\r\n}\r\n","import { render } from \"./FormStepZero.vue?vue&type=template&id=06eb81da\"\nimport script from \"./FormStepZero.vue?vue&type=script&lang=js\"\nexport * from \"./FormStepZero.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { ref, computed } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField\";\r\nimport FormInputTextarea from \"../FormInputTextarea/FormInputTextarea\";\r\nimport FormInputDropdown from \"../FormInputDropdown/FormInputDropdown\";\r\nimport FormInputEmailField from \"../FormInputEmailField/FormInputEmailField\";\r\nimport FormCheckbox from \"../FormCheckbox/FormCheckbox\";\r\nimport FormInputNameField from \"../FormInputNameField/FormInputNameField\";\r\nimport ProfilePicture from \"../ProfilePicture/ProfilePicture\";\r\nimport DropdownWithTags from \"../DropdownWithTags/DropdownWithTags\";\r\nimport nameValidator from \"foundation/js/inputValidators/nameValidator\";\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\nimport isBoolean from \"foundation/js/inputValidators/isBoolean\";\r\n\r\nexport default {\r\n name: \"ForumEditProfile\",\r\n components: {\r\n FormInputTextField,\r\n FormInputTextarea,\r\n FormInputNameField,\r\n FormInputEmailField,\r\n FormInputDropdown,\r\n FormCheckbox,\r\n ProfilePicture,\r\n DropdownWithTags\r\n },\r\n props: {\r\n content: {\r\n type: Object,\r\n required: true,\r\n },\r\n continueUrl: {\r\n type: String,\r\n required: true,\r\n },\r\n continueUrlWithData: {\r\n type: String,\r\n required: true,\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore();\r\n const personalInfo = ref({\r\n ProfileName: props.content.memberName ?? \"\",\r\n relationToCancer: props.content.memberRoles === \"\" ? null : props.content.memberRoles,\r\n cancerType: props.content.memberDiagnosis ?? [\"\"],\r\n cancerTypeChanged: [\"\"],\r\n region: props.content.memberRegion === \"\" ? null : props.content.memberRegion,\r\n dateOfBirth: props.content.memberDateOfBirth,\r\n gender: props.content.memberGender ?? \"\",\r\n description: props.content.memberProfileText ?? \"\",\r\n NotificationForNewPostInMyGroups: props.content.notifications.postInGroup ?? false,\r\n NotificationForDirectMessage: props.content.notifications.privateMessage ?? false,\r\n NotificationForCommentOnMySavedPosts: props.content.notifications.commentOnMyPost ?? false,\r\n NotificationForNewCommentInMyGroups: props.content.notifications.commentInMyGroups ?? false,\r\n NotificationFrequency: props.content.notifications.frequency,\r\n });\r\n const notificationfrequencyOptions = [\r\n { \"name\": \"Straks\", \"value\": \"Immediately\" },\r\n { \"name\": \"Dagligt\", \"value\": \"Daily\" },\r\n { \"name\": \"Ugentligt\", \"value\": \"Weekly\" },\r\n ]\r\n const genderOptions =[\r\n { \"name\": \"Kvinde\", \"value\": \"Kvinde\"},\r\n { \"name\": \"Mand\", \"value\": \"Mand\" },\r\n { \"name\": \"Andet\", \"value\": \"Andet\" }\r\n ]\r\n\r\n const hasProfilePicture = ref(props.content.hasProfileImage === \"true\")\r\n const activeProfilePicture = ref({\r\n \"name\": props.content.memberImgName ?? \"\",\r\n \"url\": props.content.memberImgSrc ?? \"\",\r\n \"size\": props.content.memberImgSize ?? \"\"\r\n })\r\n\r\n const changePasswordUrl = props.content.changePasswordUrl\r\n\r\n const displayError = ref(false)\r\n const isSubmitting = computed(()=> store.state.forum.is_submitting)\r\n\r\n const isFormValid = () => {\r\n return nameValidator(personalInfo.value.ProfileName) &&\r\n isBoolean(personalInfo.value.NotificationForNewPostInMyGroups) &&\r\n isBoolean(personalInfo.value.NotificationForDirectMessage) &&\r\n isBoolean(personalInfo.value.NotificationForCommentOnMySavedPosts) &&\r\n nonEmptyStringValidator(personalInfo.value.NotificationFrequency)\r\n };\r\n\r\n const saveProfile = () => {\r\n const isValid = isFormValid()\r\n displayError.value = !isValid; \r\n\r\n if (!isValid) {\r\n return\r\n }\r\n\r\n if (!personalInfo.value.dateOfBirth) {\r\n personalInfo.value.dateOfBirth = null\r\n }\r\n\r\n store.dispatch('forum/submitSaveProfile', {\r\n body: personalInfo.value\r\n })\r\n };\r\n\r\n const startDeleteUserOverlay = function (e) {\r\n store.commit('main/set_page_overlay_content_data', { cancerforumProfileId: props.content.id, continueUrl: props.continueUrl, continueUrlWithData: props.continueUrlWithData })\r\n \r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"DeleteCancerProfileModal\",\r\n returnTarget: e.currentTarget,\r\n });\r\n };\r\n\r\n const startUserInfoOverlay = function (e) {\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"MemberOverlay\",\r\n returnTarget: e.currentTarget,\r\n });\r\n };\r\n\r\n const setCancerTypes = function(tags) {\r\n personalInfo.value.cancerType = tags\r\n }\r\n\r\n return {\r\n notificationfrequencyOptions,\r\n genderOptions,\r\n hasProfilePicture,\r\n activeProfilePicture,\r\n personalInfo,\r\n changePasswordUrl,\r\n saveProfile,\r\n nameValidator,\r\n nonEmptyStringValidator,\r\n startDeleteUserOverlay,\r\n displayError,\r\n isSubmitting,\r\n setCancerTypes,\r\n startUserInfoOverlay,\r\n getLabel: (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"ForumEditProfile\",\r\n labelKey,\r\n }),\r\n };\r\n },\r\n};\r\n","import { render } from \"./ForumEditProfile.vue?vue&type=template&id=11e4c805\"\nimport script from \"./ForumEditProfile.vue?vue&type=script&lang=js\"\nexport * from \"./ForumEditProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import GetLabel from \"foundation/js/getLabel\"\r\nimport { computed, onMounted, ref } from \"vue\"\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport FormAddressField from 'components/FormAddressField/FormAddressField.vue'\r\nimport phoneValidator from '../../foundation/js/inputValidators/phoneValidator'\r\nimport { useStore } from \"vuex\"\r\n\r\nexport default {\r\n name: \"FrivilligeCheckoutStepOne\",\r\n components: {\r\n FormInputTextField, \r\n FormAddressField\r\n },\r\n setup() {\r\n const store = useStore()\r\n const userInformation = computed(() => store.state.checkout.purchaseData.invoice.userInformation)\r\n const invoiceAddress = computed(() => store.state.checkout.purchaseData.invoice.invoiceAddress)\r\n\r\n const displayErrorMessages = ref(false)\r\n \r\n const disablePhoneInput = !!userInformation.value.mobilePhone\r\n const phoneInput = ref(userInformation.value?.mobilePhone || '')\r\n const phoneInputFilled = computed (() => phoneValidator(phoneInput.value) )\r\n\r\n const onSubmit = () => {\r\n displayErrorMessages.value = true\r\n if (!phoneInputFilled.value) {\r\n return\r\n }\r\n\r\n const updatedUserInformation = {\r\n ...userInformation.value,\r\n mobilePhone: phoneInput.value,\r\n }\r\n\r\n store.commit('checkout/set_active_delivery_address', invoiceAddress.value)\r\n store.commit('checkout/set_purchase_data_invoice', {\r\n userInformation: updatedUserInformation,\r\n invoiceAddress: invoiceAddress.value\r\n })\r\n\r\n // if succes set been filled to current step, as data is now in session storage\r\n store.commit('checkout/update_checkout_step_been_filled', 1)\r\n // if succes set step to next stepNumber\r\n store.commit('checkout/update_checkout_step',{nextStepNumber: 2})\r\n }\r\n \r\n return {\r\n userInformation,\r\n phoneInput,\r\n phoneInputFilled,\r\n disablePhoneInput,\r\n displayErrorMessages,\r\n invoiceAddress,\r\n onSubmit,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: \"checkout\" })\r\n }\r\n }\r\n}","import { render } from \"./FrivilligeCheckoutStepOne.vue?vue&type=template&id=8c451312\"\nimport script from \"./FrivilligeCheckoutStepOne.vue?vue&type=script&lang=js\"\nexport * from \"./FrivilligeCheckoutStepOne.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export function addNDaysToDate(date, n) {\r\n date.setDate(date.getDate() + n)\r\n return date.toISOString().split('T')[0]\r\n}","import { computed, onMounted, ref } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\nimport { addNDaysToDate } from \"foundation/js/utils/dateUtils\"\r\nimport CheckoutStepTwo from \"../CheckoutStepTwo/CheckoutStepTwo.vue\"\r\nimport FormInputTextarea from \"../FormInputTextarea/FormInputTextarea.vue\"\r\nimport FormInputTextField from \"../FormInputTextField/FormInputTextField.vue\"\r\nimport FormInputDateField from \"../FormInputDateField/FormInputDateField.vue\"\r\n\r\nexport default {\r\n name: \"FrivilligeCheckoutStepTwo\",\r\n components: {\r\n CheckoutStepTwo,\r\n FormInputTextarea,\r\n FormInputTextField,\r\n FormInputDateField,\r\n },\r\n setup() {\r\n const store = useStore()\r\n const udlaanStartDate = ref(store.state.checkout.purchaseData?.udlaansData?.startDate ?? null)\r\n const udlaanEndDate = ref(store.state.checkout.purchaseData?.udlaansData?.endDate ?? null)\r\n const udlaanComment = ref(store.state.checkout.purchaseData?.udlaansData?.comment ?? null)\r\n\r\n const udlaanMinStartDate = addNDaysToDate(new Date(), 3) \r\n const udlaanMinEndDate = computed(() => {\r\n return udlaanStartDate.value\r\n ? addNDaysToDate(new Date(udlaanStartDate.value), 1)\r\n : udlaanMinStartDate\r\n })\r\n\r\n const displayError = ref(false)\r\n\r\n const containsUdlaansvare = computed(() => store.state.basket.basketState.containsUdlaansvare)\r\n\r\n const onSubmit = (deliveryPayload) => {\r\n displayError.value = true\r\n if (deliveryPayload && (!containsUdlaansvare.value || validateUdlaanPeriode())) { \r\n store.commit('checkout/set_purchase_data_delivery', deliveryPayload)\r\n \r\n // update the active delivery address (initially is set to invoice address)\r\n store.commit('checkout/set_active_delivery_address', deliveryPayload)\r\n // set udlaan period\r\n store.commit('checkout/set_udlaans_data', {\r\n startDate: udlaanStartDate.value, \r\n endDate: udlaanEndDate.value, \r\n comment: udlaanComment.value\r\n })\r\n\r\n // if succes set step to next stepNumber\r\n store.commit('checkout/update_checkout_step',{nextStepNumber: 3})\r\n\r\n displayError.value = false\r\n }\r\n }\r\n\r\n const validateUdlaanPeriode = () => udlaanStartDateValidator(udlaanStartDate.value) && udlaanEndDateValidator(udlaanStartDate.value, udlaanEndDate.value)\r\n const udlaanStartDateValidator = (startDate) => getDate(new Date()) <= getDate(new Date(startDate))\r\n const udlaanEndDateValidator = (startDate, endDate) => \r\n getDate(new Date()) < getDate(new Date(endDate)) && getDate(new Date(startDate)) < getDate(new Date(endDate))\r\n\r\n const isUdlaanStartDateValid = computed(() => displayError.value && !udlaanStartDateValidator(udlaanStartDate.value))\r\n const isUdlaanEndDateValid = computed(() => displayError.value && !udlaanEndDateValidator(udlaanStartDate.value, udlaanEndDate.value))\r\n\r\n const getDate = (date) => {\r\n return date \r\n ? parseInt(\r\n new Date(date).toISOString()\r\n .split('T')[0]\r\n .replaceAll('-', '')\r\n ) \r\n : null\r\n }\r\n\r\n return {\r\n containsUdlaansvare,\r\n udlaanStartDate,\r\n udlaanEndDate,\r\n udlaanComment,\r\n udlaanMinStartDate,\r\n udlaanMinEndDate,\r\n isUdlaanStartDateValid,\r\n isUdlaanEndDateValid,\r\n onSubmit,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: \"checkout\", allowEmpty: true })\r\n }\r\n }\r\n}","import { render } from \"./FrivilligeCheckoutStepTwo.vue?vue&type=template&id=5d1abe7e\"\nimport script from \"./FrivilligeCheckoutStepTwo.vue?vue&type=script&lang=js\"\nexport * from \"./FrivilligeCheckoutStepTwo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed, onBeforeMount } from \"vue\"\r\nimport BasketAside from \"../BasketAside/BasketAside.vue\"\r\nimport BasketCard from \"../BasketCard/BasketCard.vue\"\r\nimport FrivilligeCheckoutStepOne from \"../FrivilligeCheckoutStepOne/FrivilligeCheckoutStepOne.vue\"\r\nimport FrivilligeCheckoutStepTwo from \"../FrivilligeCheckoutStepTwo/FrivilligeCheckoutStepTwo.vue\"\r\nimport CheckoutStepThree from \"../CheckoutStepThree/CheckoutStepThree.vue\"\r\nimport { useStore } from \"vuex\"\r\nimport deepClone from \"foundation/js/deepClone\"\r\n\r\nexport default {\r\n name: \"FrivilligeCheckoutContent\",\r\n components: {\r\n BasketAside,\r\n BasketCard,\r\n FrivilligeCheckoutStepOne,\r\n FrivilligeCheckoutStepTwo,\r\n CheckoutStepThree\r\n },\r\n props: {\r\n userData: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({ labelCollection: 'checkout', labelKey })\r\n \r\n const containsUdlaansvare = computed(() => store.state.basket.basketState.containsUdlaansvare)\r\n const checkoutInvoice = computed(() => store.state.checkout.purchaseData.invoice)\r\n const checkoutSteps = computed(() => store.state.checkout.checkoutSteps)\r\n const activeStep = computed(() => checkoutSteps.value.find((step) => step.active === true))\r\n \r\n onBeforeMount(() => {\r\n store.dispatch('basket/fetchBasket')\r\n // set user data to invoice\r\n const invoiceCopy = deepClone(checkoutInvoice.value)\r\n invoiceCopy.userInformation.contactFirstName = props.userData.firstName ?? ''\r\n invoiceCopy.userInformation.contactLastName = props.userData.lastName ?? ''\r\n invoiceCopy.userInformation.email = props.userData.email ?? ''\r\n invoiceCopy.userInformation.mobilePhone = props.userData.phoneNumber ?? ''\r\n invoiceCopy.userInformation.customerType = 'frivillige'\r\n invoiceCopy.invoiceAddress.addressLine = props.userData.address ?? ''\r\n invoiceCopy.invoiceAddress.postalCode = props.userData.postalCode ?? ''\r\n invoiceCopy.invoiceAddress.city = props.userData.city ?? ''\r\n \r\n const newCheckoutSteps = deepClone(checkoutSteps.value)\r\n newCheckoutSteps[1].stepTitle = 'Levering'\r\n\r\n store.commit('checkout/set_checkout_steps', newCheckoutSteps)\r\n store.commit('checkout/set_purchase_data_invoice', invoiceCopy)\r\n })\r\n\r\n const determineCheckoutStepContent = function () {\r\n switch (activeStep.value.stepNumber) {\r\n case 1:\r\n return 'FrivilligeCheckoutStepOne'\r\n case 2:\r\n return 'FrivilligeCheckoutStepTwo'\r\n case 3:\r\n return 'CheckoutStepThree'\r\n case 4:\r\n // here user gets directed to receipt page\r\n return\r\n default:\r\n console.warn('No active checkout step defined')\r\n break\r\n }\r\n }\r\n\r\n const checkoutDeliveryStepTitle = computed(() => {\r\n return containsUdlaansvare.value \r\n ? getLabel('udlaanCheckoutStepTitle') \r\n : activeStep.value.stepTitle\r\n })\r\n\r\n const handleStepClick = function (clickedStepNumber) {\r\n const validClickedStepNumber =\r\n clickedStepNumber < activeStep.value.stepNumber\r\n ? clickedStepNumber\r\n : activeStep.value.stepNumber\r\n store.commit('checkout/update_checkout_step', {\r\n nextStepNumber: validClickedStepNumber\r\n })\r\n }\r\n\r\n\r\n return {\r\n activeStep,\r\n checkoutSteps,\r\n checkoutDeliveryStepTitle,\r\n determineCheckoutStepContent,\r\n handleStepClick\r\n }\r\n }\r\n}","import { render } from \"./FrivilligeCheckoutContent.vue?vue&type=template&id=3b4aa9ba\"\nimport script from \"./FrivilligeCheckoutContent.vue?vue&type=script&lang=js\"\nexport * from \"./FrivilligeCheckoutContent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import { computed, ref, onMounted } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\n\r\nexport default {\r\n name: \"GroupPost\",\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n },\r\n isFrivilligContext: {\r\n type: Boolean,\r\n required: false\r\n },\r\n handlePostClick: {\r\n type: Function,\r\n required: true\r\n },\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const userInfoExpanded = ref(false)\r\n const isMasked = computed(() => !props.result.postText)\r\n\r\n const latestComment = computed(() => store.state.forum.post_latest_comment[props.result.id])\r\n const statistics = computed(() => store.state.forum.post_statistics[props.result.id])\r\n const commentsCount = computed(() => props.result.hasComments ? statistics.value?.commentsCount : 0)\r\n \r\n const overlayContent = props.isFrivilligContext\r\n ? \"MemberOverlayProfileCard\"\r\n : \"MemberOverlay\"\r\n \r\n const startUserInfoOverlay = (e, userId) => {\r\n\r\n if (userId == undefined){\r\n return\r\n }\r\n\r\n store.commit('main/set_page_overlay_content_data', { \r\n userId,\r\n isFrivilligContext: props.isFrivilligContext })\r\n\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: overlayContent,\r\n returnTarget: e.currentTarget,\r\n })\r\n }\r\n\r\n onMounted(() => {\r\n\r\n if (props.result.hasComments) {\r\n store.dispatch(\"forum/getPostLatestComment\", {\r\n postId: props.result.id\r\n })\r\n store.dispatch(\"forum/getPostStatistics\", {\r\n postId: props.result.id\r\n })\r\n }\r\n\r\n })\r\n \r\n return {\r\n getLabel: (labelKey)=> store.getters['labels/getLabel']({labelCollection: \"GroupPost\", labelKey: labelKey}),\r\n userInfoExpanded,\r\n isMasked,\r\n startUserInfoOverlay,\r\n latestComment,\r\n commentsCount,\r\n }\r\n }\r\n}","import { render } from \"./GroupPost.vue?vue&type=template&id=0b5edf88\"\nimport script from \"./GroupPost.vue?vue&type=script&lang=js\"\nexport * from \"./GroupPost.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import deepClone from \"foundation/js/deepClone\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\nimport { computed, ref, onMounted } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport GroupPost from \"../GroupPost/GroupPost\"\r\nimport FeaturedPostSpotCard from \"../FeaturedPostSpotCard/FeaturedPostSpotCard\"\r\n\r\nexport default {\r\n name: \"FrivilligePostsList\",\r\n components: {\r\n GroupPost,\r\n FeaturedPostSpotCard\r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n featuredPostSpotCards: {\r\n type: Object,\r\n required: false,\r\n default: null\r\n },\r\n isMember: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n },\r\n isLoggedIn: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n },\r\n skip: {\r\n type: Number,\r\n required: true,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n required: false,\r\n default: 8\r\n },\r\n universId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const numberOfItems = ref(0)\r\n \r\n const numFeaturedPosts = props.featuredPostSpotCards?.length ?? 0\r\n const posts = computed(() => deepClone(store.state.search.results[props.guid] ?? []))\r\n const totalAmount = computed(() => numFeaturedPosts + store.state.search.scoped_total[props.guid] ?? 0)\r\n const showSpinner = computed(()=> store.state.search.search_inprogress[props.guid] )\r\n\r\n onMounted(() => {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: process.env.GET_POSTS_LIST + \"?id=\" + props.groupId + \"&comments=1\"\r\n })\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: '',\r\n skip: props.skip,\r\n take: props.take,\r\n })\r\n })\r\n\r\n const getMorePosts = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n const handlePostClick = (e, post) => {\r\n if(!props.isLoggedIn){\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: \"LoginOverlay\",\r\n returnTarget: e.currentTarget\r\n })\r\n \r\n return\r\n }\r\n\r\n if (!props.isMember) {\r\n store.commit('main/set_page_overlay_content_data', { isFrivilligContext: true })\r\n\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: \"ClosedGroupOverlay\",\r\n returnTarget: e.currentTarget\r\n })\r\n\r\n return\r\n }\r\n\r\n window.location.href = post.url\r\n }\r\n\r\n return {\r\n numberOfItems,\r\n showSpinner,\r\n posts,\r\n totalAmount,\r\n handlePostClick,\r\n getMorePosts,\r\n getLabel: (labelKey, params) => GetLabel({ labelKey, labelCollection: 'FrivilligePostsList', params })\r\n }\r\n },\r\n}","import { render } from \"./FrivilligePostsList.vue?vue&type=template&id=70a5cb1e\"\nimport script from \"./FrivilligePostsList.vue?vue&type=script&lang=js\"\nexport * from \"./FrivilligePostsList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\nimport { computed, onMounted } from \"vue\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"FrivilligeShopWrongRoleModal\",\r\n setup(){\r\n const store = useStore()\r\n\r\n let first, close\r\n\r\n const tabTrap = function (e) {\r\n if (e.key === 'Tab' && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n return\r\n }\r\n\r\n first.focus()\r\n }\r\n\r\n onMounted(() => {\r\n first = document.querySelector('.kb-button[data-order=\"first\"]')\r\n close = document.querySelector('.kb-page-overlay__close')\r\n\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n \r\n const url = computed(() => store.state.main.page_overlay_content_data.rolePageUrl)\r\n const redirect = () => {\r\n window.location.href = url.value\r\n }\r\n\r\n return {\r\n tabTrap,\r\n redirect,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'FrivilligeShopWrongRoleModal' }),\r\n }\r\n }\r\n}","import { render } from \"./FrivilligeShopWrongRoleModal.vue?vue&type=template&id=c7023198\"\nimport script from \"./FrivilligeShopWrongRoleModal.vue?vue&type=script&lang=js\"\nexport * from \"./FrivilligeShopWrongRoleModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from \"vuex\"\r\n\r\nexport default {\r\n name: \"FrivilligGroupHero\",\r\n props: {\r\n isLoggedIn: {\r\n type: Boolean,\r\n required: true\r\n },\r\n loginUrl: {\r\n type: String,\r\n required: false\r\n },\r\n closedGroup: {\r\n type: Boolean,\r\n required: false\r\n },\r\n gruppeKode: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const openCalendarOverlay = () => {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'CalendarOverlay'\r\n })\r\n }\r\n\r\n const openMedlemsOverlay = () => {\r\n store.commit('main/set_page_overlay_content_data', { groupId: props.gruppeKode })\r\n\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'MemberListOverlayFVL'\r\n })\r\n }\r\n \r\n const joinGroup = async () => {\r\n\r\n if (!props.isLoggedIn) {\r\n window.location.href = props.loginUrl\r\n return\r\n }\r\n\r\n if (!props.closedGroup)\r\n {\r\n await store.dispatch('frivillige/joinGroup', {\r\n gruppeKode: props.gruppeKode,\r\n })\r\n window.location.reload()\r\n return;\r\n }\r\n\r\n store.commit('main/set_page_overlay_content_data', { isFrivilligContext: true })\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'ClosedGroupOverlay',\r\n })\r\n }\r\n\r\n return {\r\n openCalendarOverlay,\r\n openMedlemsOverlay,\r\n joinGroup\r\n }\r\n }\r\n}","import {useStore} from 'vuex'\r\n\r\nexport default {\r\n name: \"FrivilligjobAside\",\r\n props: {\r\n jobId: {\r\n type: String,\r\n required: true\r\n },\r\n redirectAfterDeleteUrl: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const openDeleteOverlay = function (e) {\r\n if (!props.jobId) return false\r\n \r\n store.commit('main/set_page_overlay_content_data', {\r\n frivilligjobId: props.jobId,\r\n redirectAfterDeleteUrl: props.redirectAfterDeleteUrl\r\n })\r\n\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'DeleteFrivilligjobOverlay',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n return {\r\n openDeleteOverlay\r\n }\r\n }\r\n}","\r\n\r\n\r\n","import GetLabel from \"foundation/js/getLabel\"\r\nimport { ref, onMounted } from 'vue'\r\nimport {useStore} from 'vuex'\r\n\r\nexport default {\r\n name: \"FrivilligjobCard\",\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const tags = ref([])\r\n const hasFetchedGruppeemner = ref(false)\r\n onMounted(() => {\r\n store\r\n .dispatch(\"frivilligjob/getGruppeemner\", props.result.id)\r\n .then(result => {\r\n tags.value = result\r\n hasFetchedGruppeemner.value = true\r\n })\r\n })\r\n\r\n return {\r\n tags,\r\n hasFetchedGruppeemner,\r\n getLabel: (labelKey, params) => GetLabel({ labelKey, labelCollection: 'FrivilligjobCard', params })\r\n }\r\n }\r\n}","import { render } from \"./FrivilligjobCard.vue?vue&type=template&id=0edeb298\"\nimport script from \"./FrivilligjobCard.vue?vue&type=script&lang=js\"\nexport * from \"./FrivilligjobCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/**\r\n *\r\n * @param {function} callback\r\n */\r\nexport default function (callback) {\r\n const callbackList = Array.isArray(window.__onScrollCallbacks)\r\n ? window.__onScrollCallbacks\r\n : []\r\n\r\n callbackList.push(callback)\r\n window.__onScrollCallbacks = callbackList\r\n\r\n window.onscroll = function () {\r\n callbackList.forEach((callback) => callback())\r\n }\r\n}\r\n","/*\r\n\r\n Complex image / video module with resizing based on scroll\r\n\r\n ## Resizing\r\n ------------\r\n Resizing is handled via intersection observer set to 15 steps.\r\n At each step (when intersecting / image is in view) the size is modifed.\r\n Scrolling down = image gets wider\r\n Scrolling up = image gets narrower\r\n\r\n Min-width is collected from image information\r\n Max-width is the max width of the window\r\n\r\n ## opacity\r\n ------------\r\n Opacity is controlled via an on-scroll event.\r\n The reason is that the image is now position-fixed, and no more thresholds are firing.\r\n\r\n When the image is at top of the screen it gets fixed.\r\n Based on scroll distance, the opacity is calculated.\r\n\r\n All of this works in reverse as well.\r\n\r\n*/\r\n\r\nimport addScrollCallback from '../../foundation/js/addScrollCallback'\r\n\r\nconst el = '.kb-component--fullscreen-media'\r\n\r\nfunction buildThresholdList() {\r\n let thresholds = []\r\n let numSteps = 201\r\n\r\n for (let i = 1; i <= numSteps; i++) {\r\n let ratio = i / numSteps\r\n thresholds.push(ratio)\r\n }\r\n\r\n return thresholds\r\n}\r\n\r\n// this modifier takes a look at screen width vs height.\r\n// For 16:9 videos to properly display (without cropping) on 16:9 screens in full screen width.\r\n// if there is enough height, the media is displayed in full pagewidth.\r\nfunction maxWidthModifier() {\r\n const threshold16_9 = 1.8\r\n return document.documentElement.clientWidth /\r\n document.documentElement.clientHeight >\r\n threshold16_9\r\n ? 0.9\r\n : 1\r\n}\r\n\r\n// Value specifically requested per KBE0026-425\r\nconst MEDIA_FADE_FACTOR = 60\r\n\r\nexport default function () {\r\n const DOM = document.querySelectorAll(el)\r\n\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FullscreenMediaDOM) => {\r\n // Remove the wrapping contentarea div\r\n FullscreenMediaDOM.parentElement.replaceWith(FullscreenMediaDOM)\r\n\r\n let currentScrollTopVal = window.scrollY\r\n let currentScrollTopValGeneral = window.scrollY\r\n let maxScreenWidth =\r\n document.documentElement.clientWidth * maxWidthModifier()\r\n let element = FullscreenMediaDOM.querySelector('#fullscreen-media')\r\n let minBoxWidth = element.getBoundingClientRect().width\r\n let boxHeight = element.getBoundingClientRect().height\r\n\r\n // censor element is the actual element that is being observed.\r\n // this way we have a container to apply a certain height to, and prevent the browser from getting the height calculations wrong.\r\n // this is what prevents flickering occuring in some cases.\r\n const sensor = FullscreenMediaDOM.querySelector(\r\n '#fullscreen-media-sensor'\r\n )\r\n sensor.style.height = '99vh'\r\n\r\n const elementDistanceFromDocumentTop = Math.round(\r\n window.scrollY + element.getBoundingClientRect().top\r\n )\r\n let scrolledFromTop =\r\n elementDistanceFromDocumentTop - window.scrollY > 0\r\n ? 0\r\n : (elementDistanceFromDocumentTop - window.scrollY) * -1\r\n\r\n // image resizing is handled inside the intersecton handler below.\r\n function handleIntersect(entries, observer) {\r\n entries.forEach((entry) => {\r\n const currentRatio = entry.intersectionRatio\r\n let scrollingDown = currentScrollTopVal < window.scrollY\r\n let scrollingUp = currentScrollTopVal > window.scrollY\r\n\r\n const animationControl = function (config) {\r\n config = Object.assign(\r\n {\r\n currentRatio: currentRatio,\r\n minBoxWidth: minBoxWidth,\r\n maxScreenWidth: maxScreenWidth,\r\n element: element,\r\n ratioModifierFunction: null\r\n },\r\n config\r\n )\r\n\r\n // calculating new max-width based on ratio\r\n let modifiedRatio = config.ratioModifierFunction()\r\n let newMaxWidth =\r\n config.minBoxWidth +\r\n (config.maxScreenWidth - config.minBoxWidth) *\r\n modifiedRatio\r\n\r\n config.element.style.maxWidth =\r\n currentRatio < 1\r\n ? newMaxWidth <= maxScreenWidth\r\n ? newMaxWidth + 'px'\r\n : maxScreenWidth + 'px'\r\n : maxScreenWidth + 'px'\r\n }\r\n\r\n if (scrollingDown) {\r\n animationControl({\r\n ratioModifierFunction: () => currentRatio\r\n })\r\n } else if (scrollingUp) {\r\n animationControl({\r\n ratioModifierFunction: () => currentRatio\r\n })\r\n }\r\n })\r\n }\r\n\r\n // image opacity is handled inside the on-scroll handler.\r\n addScrollCallback(() => {\r\n if (window.innerWidth < 769) {\r\n element.style.opacity = 1\r\n return true\r\n }\r\n\r\n const imageAtTopOfPage =\r\n element.getBoundingClientRect().top <= 0\r\n const currentOpacity =\r\n getComputedStyle(element).getPropertyValue('opacity')\r\n let newOpacity = currentOpacity\r\n\r\n let scrollingDown = currentScrollTopValGeneral < window.scrollY\r\n let scrollingUp = currentScrollTopValGeneral > window.scrollY\r\n scrolledFromTop =\r\n elementDistanceFromDocumentTop - window.scrollY > 0\r\n ? 0\r\n : (elementDistanceFromDocumentTop - window.scrollY) * -1\r\n\r\n if (imageAtTopOfPage && scrollingDown) {\r\n newOpacity =\r\n 1 -\r\n ((scrolledFromTop * 100) / boxHeight < 100\r\n ? (scrolledFromTop * 100) / boxHeight\r\n : 100) /\r\n MEDIA_FADE_FACTOR\r\n currentScrollTopValGeneral = window.scrollY\r\n } else if (imageAtTopOfPage && scrollingUp) {\r\n newOpacity =\r\n 1 -\r\n ((scrolledFromTop * 100) / boxHeight < 100\r\n ? (scrolledFromTop * 100) / boxHeight\r\n : 100) /\r\n MEDIA_FADE_FACTOR\r\n } else {\r\n newOpacity = 1\r\n }\r\n\r\n element.style.opacity = newOpacity\r\n currentScrollTopValGeneral = window.scrollY\r\n })\r\n\r\n // Set things up\r\n window.addEventListener(\r\n 'load',\r\n (event) => {\r\n const fullscreenMediaElement = document.querySelector(\r\n '#fullscreen-media-sensor'\r\n )\r\n\r\n let observer\r\n\r\n let options = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: buildThresholdList()\r\n }\r\n\r\n observer = new IntersectionObserver(\r\n handleIntersect,\r\n options\r\n )\r\n observer.observe(fullscreenMediaElement)\r\n },\r\n false\r\n )\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n\r\n
    \r\n \r\n {{ getLabel('customDonationAmountTitle') }}\r\n \r\n \r\n
    \r\n\r\n
    \r\n

    \r\n {{ getLabel('informationText') }}\r\n

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n\r\n
    \r\n \r\n\r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n
    \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ getLabel('validationComments') }}\r\n

    \r\n \r\n\r\n
    \r\n\r\n
    \r\n

    \r\n {{\r\n getLabel('paymentLabel')\r\n }}\r\n

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n {{ getLabel('validationPaymentMethod') }}\r\n

    \r\n
    \r\n
    \r\n \r\n {{ getLabel('cancelButtonText') }}\r\n \r\n\r\n \r\n {{ getLabel('submitButtonText') }}\r\n \r\n
    \r\n\r\n \r\n \r\n\r\n","import { nextTick } from 'vue'\r\n\r\n\r\nexport const scrollToFirstError = async () => {\r\n await nextTick();\r\n\r\n const errorElement = document.querySelector(\".Form__Element__ValidationError, .validation-error\");\r\n\r\n if (errorElement) {\r\n const elementRect = errorElement.getBoundingClientRect();\r\n const offset = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n let viewportOffset = 100;\r\n\r\n if (errorElement.classList.contains(\"Form__Element__ValidationError\")) {\r\n viewportOffset = 150; \r\n }\r\n\r\n const top = elementRect.top + offset - viewportOffset;\r\n\r\n window.scrollTo({\r\n top,\r\n behavior: 'smooth',\r\n });\r\n\r\n if (typeof errorElement.focus === \"function\") {\r\n errorElement.setAttribute(\"tabindex\", \"-1\"); \r\n errorElement.focus({ preventScroll: true });\r\n }\r\n } else {\r\n console.warn(\"No validation error elements found.\");\r\n }\r\n};\r\n\r\n\r\n","import { ref, computed, onMounted} from 'vue'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport { useStore } from 'vuex'\r\nimport emailValidator from '../../foundation/js/inputValidators/emailValidator'\r\nimport phoneValidator from '../../foundation/js/inputValidators/phoneValidator'\r\nimport nameValidator from '../../foundation/js/inputValidators/nameValidator'\r\nimport cprValidator from '../../foundation/js/inputValidators/cprValidator'\r\nimport textAreaValidator from '../../foundation/js/inputValidators/textAreaValidator'\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport TooltipComponent from 'components/TooltipComponent/TooltipComponent.vue'\r\nimport FormAddressField from 'components/FormAddressField/FormAddressField.vue'\r\n\r\nexport default {\r\n name: 'FundraiseForm',\r\n components: {\r\n FormInputTextField,\r\n TooltipComponent,\r\n FormAddressField\r\n },\r\n props: {\r\n fundraisingCampaignId: {\r\n type: String,\r\n required: true\r\n },\r\n cancelUrl: {\r\n type: String,\r\n required: false\r\n },\r\n isMindegave: {\r\n type: Boolean,\r\n required: false\r\n },\r\n draft: {\r\n type: Object,\r\n required: false\r\n },\r\n showUnsavedChangesWarning: {\r\n type: Boolean,\r\n required: false\r\n }\r\n\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const donationSettings = computed(\r\n () => store.state.fundraising.donation_settings\r\n )\r\n const pageId = computed(() => store.state.main.page_id)\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'fundraiseForm',\r\n labelKey: labelKey\r\n })\r\n const isSubmitting = computed(\r\n () => store.state.fundraising.isSubmitting\r\n )\r\n\r\n const showUnsavedChangesWarning = props.showUnsavedChangesWarning;\r\n\r\n const handleBeforeUnload = (e) => {\r\n if (store.state.fundraising.isEditing && showUnsavedChangesWarning) {\r\n e.preventDefault();\r\n e.returnValue = ''; \r\n }\r\n };\r\n \r\n if (showUnsavedChangesWarning) {\r\n window.addEventListener('beforeunload', handleBeforeUnload);\r\n } else {\r\n window.removeEventListener('beforeunload', handleBeforeUnload);\r\n }\r\n\r\n const unSubmitted = ref(true)\r\n\r\n const firstNameInput = ref(props.draft?.contactFirstName ?? '')\r\n const firstNameInputFilled = computed(() => {\r\n return unSubmitted.value && !firstNameInput.value\r\n ? true\r\n : nameValidator(firstNameInput.value)\r\n })\r\n\r\n const lastNameInput = ref(props.draft?.contactLastName ?? '')\r\n const lastNameInputFilled = computed(() => {\r\n return unSubmitted.value && !lastNameInput.value\r\n ? true\r\n : nameValidator(lastNameInput.value)\r\n })\r\n\r\n const phoneInput = ref(props.draft?.mobilePhone ?? '')\r\n const phoneInputFilled = computed(() => {\r\n return unSubmitted.value ? true : phoneValidator(phoneInput.value)\r\n })\r\n\r\n const emailInput = ref(props.draft?.email ?? '')\r\n const emailInputFilled = computed(() => {\r\n return unSubmitted.value ? true : emailValidator(emailInput.value)\r\n })\r\n\r\n const cprNumberInput = ref(props.draft?.cprNo ?? '')\r\n const cprNumberInputFilled = computed(() => {\r\n return unSubmitted.value ? true : cprValidator(cprNumberInput.value)\r\n })\r\n\r\n const cvrNumberInput = ref(props.draft?.cvrNo ?? '')\r\n const cvrNumberInputFilled = computed(() => {\r\n return unSubmitted.value ? true : cvrNumberInput.value.length > 2\r\n })\r\n\r\n const addressLineInput = ref(props.draft?.addressLine1 ?? '')\r\n const addressLineInputFilled = computed(() => {\r\n return unSubmitted.value && !addressLineInput.value\r\n ? true\r\n : addressLineInput.value.length > 2 &&\r\n textAreaValidator(addressLineInput.value)\r\n })\r\n\r\n const postalCodeInput = ref(props.draft?.postalCode ?? '')\r\n const postalCodeInputFilled = computed(() => {\r\n return unSubmitted.value && !addressLineInput.value\r\n ? true\r\n : postalCodeInput.value.length === 4 &&\r\n textAreaValidator(addressLineInput.value)\r\n })\r\n\r\n const cityInput = ref(props.draft?.city ?? '')\r\n const cityInputFilled = computed(() => {\r\n return unSubmitted.value && !addressLineInput.value\r\n ? true\r\n : cityInput.value.length > 2 &&\r\n textAreaValidator(addressLineInput.value)\r\n })\r\n\r\n const paymentMethodInput = ref(props.draft?.paymentMethod ?? '')\r\n const paymentMethodInputFilled = computed(() => {\r\n return unSubmitted.value ? true : !!paymentMethodInput.value\r\n })\r\n\r\n const anonymousDonationInput = ref(props.draft?.isAnonymous ? '1' : '0')\r\n const isAnonymous = computed(() => anonymousDonationInput.value === '1')\r\n\r\n const customerTypeInput = ref(\r\n props.draft?.customerType == 0 ? 'Company' : 'Private'\r\n )\r\n const isPrivate = computed(() => customerTypeInput.value === 'Private')\r\n const isCompany = computed(() => customerTypeInput.value === 'Company')\r\n const companyNameInput = ref(props.draft?.companyName ?? '')\r\n\r\n const companyNameInputFilled = computed(() => {\r\n return unSubmitted.value && !companyNameInput.value ? true : textAreaValidator(companyNameInput.value)\r\n })\r\n\r\n const commentsInput = ref(props.draft?.comments ?? '')\r\n const commentsInputFilled = computed(() => {\r\n return unSubmitted.value && !commentsInput.value\r\n ? true\r\n : commentsInput.value\r\n ? textAreaValidator(commentsInput.value)\r\n : true\r\n })\r\n\r\n const taxDeductibleInput = ref(props.draft?.isTaxDeductible ?? false)\r\n\r\n const donationAmountInput = ref('')\r\n const donationAmountInputFilled = computed(() => {\r\n return unSubmitted.value ? true : donationAmountInput.value\r\n })\r\n\r\n const customDonationAmountInput = ref(donationAmountInput.value)\r\n const customDonationAmountInputIsValid = computed(() => {\r\n return unSubmitted.value && !forceCustomAmountValidation.value\r\n ? true\r\n : customDonationAmountInput.value >=\r\n (donationSettings.value.minimumAmount ?? 1)\r\n })\r\n\r\n const customDonation = ref(false)\r\n const forceCustomAmountValidation = ref(false)\r\n const valueinputfield = ref(null)\r\n const enableCustomDonation = async function () {\r\n forceCustomAmountValidation.value = true\r\n customDonation.value = true\r\n donationAmountInput.value = ''\r\n await nextTick()\r\n valueinputfield.value.focus()\r\n }\r\n\r\n const disableCustomDonation = function () {\r\n customDonation.value = false\r\n forceCustomAmountValidation.value = false\r\n }\r\n\r\n const addressIsRequired = computed(\r\n () => isCompany.value || props.isMindegave\r\n )\r\n const cprIsRequired = computed(\r\n () => isPrivate.value && taxDeductibleInput.value\r\n )\r\n const cvrIsRequired = computed(() => isCompany.value)\r\n\r\n const inputIsValid = function () {\r\n var addressFilled =\r\n addressLineInputFilled.value &&\r\n postalCodeInputFilled.value &&\r\n cityInputFilled.value\r\n\r\n return enableCustomDonation.value\r\n ? customDonationAmountInputIsValid.value\r\n : true &&\r\n (isPrivate.value || companyNameInputFilled.value) &&\r\n firstNameInputFilled.value &&\r\n lastNameInputFilled.value &&\r\n phoneInputFilled.value &&\r\n emailInputFilled.value &&\r\n commentsInputFilled.value &&\r\n (!cprIsRequired.value || cprNumberInputFilled.value) &&\r\n (!cvrIsRequired.value || cvrNumberInputFilled.value) &&\r\n (!addressIsRequired.value || addressFilled) &&\r\n paymentMethodInputFilled.value\r\n }\r\n\r\n onMounted(() => {\r\n if (props.draft?.totalPrice) {\r\n var draftPreset = donationSettings.value.presets.find(\r\n (val) => val == props.draft?.totalPrice\r\n )\r\n if (draftPreset) {\r\n donationAmountInput.value = props.draft?.totalPrice\r\n } else {\r\n customDonationAmountInput.value = props.draft?.totalPrice\r\n forceCustomAmountValidation.value = true\r\n customDonation.value = true\r\n }\r\n } else {\r\n donationAmountInput.value =\r\n props.draft?.totalPrice ??\r\n donationSettings.value.presets[\r\n donationSettings.value.defaultPreset\r\n ]\r\n }\r\n })\r\n\r\n const onSubmit = function () {\r\n unSubmitted.value = false\r\n if (!inputIsValid()) {\r\n scrollToFirstError('validation-error')\r\n return false;\r\n }\r\n\r\n const donationPayload = {\r\n pageId: pageId.value,\r\n paymentMethod: paymentMethodInput.value,\r\n totalPrice:\r\n customDonationAmountInput.value ||\r\n donationAmountInput.value,\r\n addressLine1: addressIsRequired.value\r\n ? addressLineInput.value\r\n : null,\r\n postalCode: addressIsRequired.value\r\n ? postalCodeInput.value\r\n : null,\r\n city: addressIsRequired.value ? cityInput.value : null,\r\n mobilePhone: phoneInput.value,\r\n email: emailInput.value,\r\n companyName: companyNameInput.value,\r\n contactFirstName: firstNameInput.value,\r\n contactLastName: lastNameInput.value,\r\n cprNo: cprIsRequired ? cprNumberInput.value : null,\r\n cvrNo: cvrIsRequired ? cvrNumberInput.value : null,\r\n comments: commentsInput.value ? commentsInput.value : null,\r\n isTaxDeductible: taxDeductibleInput.value,\r\n isAnonymous: isAnonymous.value,\r\n customerType: customerTypeInput.value,\r\n referrer: document.referrer\r\n }\r\n\r\n store.dispatch('fundraising/submitPersonalDonation2', {\r\n fundraisingCampaignId: props.fundraisingCampaignId,\r\n payload: donationPayload\r\n })\r\n\r\n console.log('donationPayload', donationPayload)\r\n }\r\n\r\n const showCpr = computed(\r\n () => isPrivate.value && taxDeductibleInput.value\r\n )\r\n const showAddress = computed(() => isCompany.value || props.isMindegave)\r\n\r\n return {\r\n getLabel,\r\n donationSettings,\r\n companyNameInput,\r\n firstNameInput,\r\n lastNameInput,\r\n phoneInput,\r\n emailInput,\r\n addressLineInput,\r\n postalCodeInput,\r\n cityInput,\r\n cprNumberInput,\r\n cvrNumberInput,\r\n paymentMethodInput,\r\n anonymousDonationInput,\r\n isAnonymous,\r\n commentsInput,\r\n taxDeductibleInput,\r\n companyNameInputFilled,\r\n firstNameInputFilled,\r\n lastNameInputFilled,\r\n phoneInputFilled,\r\n emailInputFilled,\r\n addressLineInputFilled,\r\n postalCodeInputFilled,\r\n cityInputFilled,\r\n cprNumberInputFilled,\r\n cvrNumberInputFilled,\r\n paymentMethodInputFilled,\r\n donationAmountInput,\r\n donationAmountInputFilled,\r\n customDonation,\r\n customDonationAmountInput,\r\n customDonationAmountInputIsValid,\r\n commentsInputFilled,\r\n enableCustomDonation,\r\n disableCustomDonation,\r\n cancelUrl: props.cancelUrl,\r\n onSubmit,\r\n showCpr,\r\n isSubmitting,\r\n valueinputfield,\r\n customerTypeInput,\r\n isPrivate,\r\n isCompany,\r\n showAddress\r\n }\r\n }\r\n}\r\n","import { render } from \"./FundraiseForm.vue?vue&type=template&id=302cadcc\"\nimport script from \"./FundraiseForm.vue?vue&type=script&lang=js\"\nexport * from \"./FundraiseForm.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: \"FundraisingAsideVue\",\r\n props: {\r\n isAuthenticated: {\r\n type: Boolean,\r\n required: false\r\n },\r\n creatorProfile: {\r\n type: Object,\r\n required: false\r\n },\r\n ownsPersonalFundraising: {\r\n type: Boolean,\r\n required: false\r\n },\r\n title: {\r\n type: String,\r\n required: false\r\n },\r\n detailItems: {\r\n type: Array,\r\n required: false\r\n },\r\n loginLogoutButton: {\r\n type: Object,\r\n required: false\r\n },\r\n editFundraising: {\r\n type: Object,\r\n required: false\r\n },\r\n qrCode: {\r\n type: Object,\r\n required: false\r\n },\r\n\r\n },\r\n \r\n setup(props) {\r\n const store = useStore()\r\n\r\n const openPageOverlay = function(e) {\r\n\r\n store.commit('main/set_page_overlay_content_data', {\r\n fundraisingId: props.qrCode.fundraisingId\r\n })\r\n \r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: \"FundraisingQrCodeOverlay\",\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n \r\n return {\r\n openPageOverlay\r\n }\r\n }\r\n}","import { render } from \"./FundraisingAsideVue.vue?vue&type=template&id=d1495214\"\nimport script from \"./FundraisingAsideVue.vue?vue&type=script&lang=js\"\nexport * from \"./FundraisingAsideVue.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed } from 'vue'\r\n\r\nexport default {\r\n name: 'FundraisingCard',\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true,\r\n default: {\r\n imgUrl: '',\r\n name: '',\r\n target: '',\r\n current: ''\r\n }\r\n }\r\n },\r\n setup(props) {\r\n // new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number)\r\n\r\n const target = computed(() =>\r\n new Intl.NumberFormat('da-DK', {\r\n style: 'currency',\r\n currency: 'DKK',\r\n maximumFractionDigits: 0\r\n }).format(props.result.target)\r\n )\r\n const current = computed(() =>\r\n new Intl.NumberFormat('da-DK', {\r\n style: 'currency',\r\n currency: 'DKK',\r\n maximumFractionDigits: 0\r\n }).format(props.result.current)\r\n )\r\n const progress = computed(() => {\r\n // Cap progress at 100%\r\n const rawProgress =\r\n (props.result.current * 100) / props.result.target\r\n return Math.min(rawProgress, 100)\r\n })\r\n\r\n return {\r\n target,\r\n current,\r\n progress\r\n }\r\n }\r\n}\r\n","import { render } from \"./FundraisingCard.vue?vue&type=template&id=ad8bbae6\"\nimport script from \"./FundraisingCard.vue?vue&type=script&lang=js\"\nexport * from \"./FundraisingCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n name: 'FundraisingHero',\r\n setup() {}\r\n}\r\n","\r\n\r\n\r\n","import { onMounted, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"FVLConfirmDeleteProfile\",\r\n setup() {\r\n const store = useStore()\r\n\r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n const continueUrl = computed(() => store.state.main.page_overlay_content_data.continueUrl)\r\n const userProfileId = computed(() => store.state.main.page_overlay_content_data.userProfileId)\r\n \r\n let first, last, close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n const confirmAction = function () {\r\n isSubmitting.value = true\r\n store.dispatch('frivilligprofil/deleteFrivilligprofil', { \r\n pageId: store.state.main.page_id,\r\n id: userProfileId.value,\r\n continueUrl: continueUrl.value \r\n })\r\n isSubmitting.value = false\r\n }\r\n\r\n const cancelAction = function () {\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n onMounted(() => {\r\n first = document.querySelector('.kb-button[data-order=\"first\"]')\r\n last = document.querySelector('.kb-button[data-order=\"last\"]')\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n isSubmitting,\r\n continueUrl,\r\n cancelAction,\r\n confirmAction,\r\n tabTrap,\r\n getLabel: (labelKey, params) => GetLabel({ labelKey, labelCollection: 'FVLConfirmDeleteProfile', params })\r\n \r\n }\r\n }\r\n \r\n}","import { render } from \"./FVLConfirmDeleteProfile.vue?vue&type=template&id=e395ca22\"\nimport script from \"./FVLConfirmDeleteProfile.vue?vue&type=script&lang=js\"\nexport * from \"./FVLConfirmDeleteProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\n\r\nexport default {\r\n name: \"GalleryCard\",\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true,\r\n default: {}\r\n }\r\n },\r\n setup() {\r\n const store = useStore()\r\n\r\n return {\r\n getLabel: (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"GalleryCard\",\r\n labelKey,\r\n }),\r\n }\r\n }\r\n}","import { render } from \"./GalleryCard.vue?vue&type=template&id=c22e2384\"\nimport script from \"./GalleryCard.vue?vue&type=script&lang=js\"\nexport * from \"./GalleryCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./SearchResultCard.vue?vue&type=template&id=3c992bfb\"\nimport script from \"./SearchResultCard.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./RecipeCard.vue?vue&type=template&id=e5ccae34\"\nimport script from \"./RecipeCard.vue?vue&type=script&lang=js\"\nexport * from \"./RecipeCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import imageTransform from 'foundation/js/imageTransformation/imageTransform'\r\nimport { locationCard_5_4 } from 'foundation/js/imageTransformation/imagePresets'\r\n\r\nexport default {\r\n name: 'LocationCard',\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup() {\r\n const transformImage = (imageUrl) =>\r\n imageTransform(imageUrl, locationCard_5_4)\r\n return { transformImage }\r\n }\r\n}\r\n","import { render } from \"./LocationCard.vue?vue&type=template&id=0bb866fe\"\nimport script from \"./LocationCard.vue?vue&type=script&lang=js\"\nexport * from \"./LocationCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { ref } from 'vue'\r\nexport default {\r\n name: 'SortDropdown',\r\n props: {\r\n config: {\r\n type: Object,\r\n required: true\r\n },\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n sortingHandler: {\r\n type: Function,\r\n required: true\r\n }\r\n },\r\n setup() {\r\n const sortingValue = ref('')\r\n\r\n return {\r\n sortingValue\r\n }\r\n }\r\n}\r\n","import { render } from \"./SortDropdown.vue?vue&type=template&id=3cf4baf6\"\nimport script from \"./SortDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./SortDropdown.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, ref, onMounted } from 'vue'\r\n\r\nexport default {\r\n name: 'SimpleCard',\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n\r\n const isInternalLink = computed(() => \r\n props.result.isInternalLink \r\n ?? props.result.url?.startsWith(location.origin)\r\n )\r\n\r\n return {\r\n isInternalLink: isInternalLink\r\n }\r\n }\r\n}\r\n","import { render } from \"./SimpleCard.vue?vue&type=template&id=2abda490\"\nimport script from \"./SimpleCard.vue?vue&type=script&lang=js\"\nexport * from \"./SimpleCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nimport { computed, ref, onMounted } from 'vue'\r\nimport deepClone from 'foundation/js/deepClone'\r\nimport SearchResultCard from './subcomponents/SearchResultCard'\r\nimport RecipeCard from './subcomponents/RecipeCard'\r\nimport ActivityCard from '../ActivityCard/ActivityCard.vue'\r\nimport FrivilligjobCard from '../FrivilligjobCard/FrivilligjobCard.vue'\r\nimport LocationCard from '../LocationCard/LocationCard.vue'\r\nimport SortDropdown from '../SortDropdown/SortDropdown.vue'\r\nimport FundraisingCard from '../FundraisingCard/FundraisingCard.vue'\r\nimport DonationCard from '../DonationCard/DonationCard.vue'\r\nimport SimpleCard from '../SimpleCard/SimpleCard.vue'\r\nimport SpotCard from '../SpotCard/SpotCard.vue'\r\nimport GalleryCard from '../GalleryCard/GalleryCard.vue'\r\nimport SpotCardGrid from '../SpotCardGrid/SpotCardGrid.vue'\r\nimport eventDataAdapter from './subcomponents/eventDataAdapter'\r\n\r\nconst sortOptions = {\r\n fundraising : {\r\n \"name\":\"Sorter\",\r\n \"options\": [\r\n {\r\n \"name\":\"Senest oprettet\",\r\n \"handler\": \"latest\"\r\n },\r\n {\r\n \"name\":\"Flest indsamlet penge\",\r\n \"handler\": \"highestCollected\"\r\n \r\n }\r\n ]\r\n }\r\n}\r\n\r\nconst urlMap = {\r\n counselling: 'COUNSELLING_SEARCH',\r\n events: 'EVENT_SEARCH',\r\n fundraising: 'FUNDRAISING_SEARCH',\r\n donations: 'DONATION_SEARCH',\r\n gallery: 'GALLERY_SEARCH',\r\n patientAssociations: 'PATIENT_ASSOCIATIONS_SEARCH',\r\n jobs: 'FRIVILLIGJOB_SEARCH',\r\n}\r\n\r\nconst getUrl = function(type){\r\n return urlMap[type] ?? 'GENERAL_SEARCH'\r\n}\r\n\r\nconst generalSearch = function(props,store){\r\n store.dispatch('search/initSearchScope',{\r\n guid:props.guid,\r\n firstPageSize:props.firstPageSize,\r\n showMorePageSize:props.showMorePageSize,\r\n url: process.env[getUrl(props.type)]\r\n })\r\n\r\n const inputText = new URLSearchParams(document.location.search).get('q')\r\n const skip = new URLSearchParams(document.location.search).get('skip')\r\n const take = new URLSearchParams(document.location.search).get('take') ?? props.take\r\n store.dispatch('search/performZeroSearch',{\r\n guid:props.guid\r\n })\r\n \r\n store.dispatch('search/performSearch',{\r\n guid:props.guid,\r\n query:inputText,\r\n skip,\r\n take\r\n })\r\n}\r\n\r\nexport default {\r\n name: \"GeneralSearch\",\r\n components: {SearchResultCard,RecipeCard,ActivityCard, FrivilligjobCard, LocationCard, FundraisingCard,SortDropdown, DonationCard, GalleryCard, SimpleCard, SpotCard, SpotCardGrid},\r\n props:{\r\n guid: {\r\n type: String,\r\n required:true\r\n },\r\n type: {\r\n type: String,\r\n required:false,\r\n default: \"general\"\r\n },\r\n firstPageSize: {\r\n type: Number,\r\n required:false\r\n },\r\n showMorePageSize: {\r\n type: Number,\r\n required:false\r\n },\r\n spotCardData: {\r\n type: Object,\r\n required:false\r\n },\r\n hideNoResults: {\r\n type: Boolean,\r\n required:false,\r\n default:false\r\n },\r\n avoidSetQueryInUrl:\r\n {\r\n type: Boolean,\r\n required:false,\r\n default: false\r\n },\r\n isMultisearch:\r\n {\r\n type: Boolean,\r\n required:false,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const inputText = computed(()=>store.state.search.queries[props.guid] ?? \"\")\r\n const store = useStore()\r\n const results = computed(()=> props.type === 'events' \r\n ? eventDataAdapter(deepClone(store.state.search.results[props.guid] ?? [])) \r\n : deepClone(store.state.search.results[props.guid] ?? []))\r\n const totalCount = computed(()=> store.state.search.scoped_total[props.guid] ?? 0)\r\n const tags = computed(()=> store.getters['search/selectedTags'](props.guid) ?? []) \r\n const showSpinner = computed(()=> store.state.search.search_inprogress[props.guid] )\r\n const searchLabelCollection = props.isMultisearch ? `generalSearch-${props.guid}` : \"generalSearch\"\r\n const getLabel = (labelKey)=> store.getters['labels/getLabel']({labelCollection: searchLabelCollection, labelKey: labelKey})\r\n const existLabel = (labelKey)=> store.getters['labels/existLabel']({labelCollection: searchLabelCollection, labelKey: labelKey})\r\n\r\n const getMoreResults = function(){\r\n store.dispatch('search/performMoreSearch',{\r\n guid:props.guid\r\n })\r\n }\r\n\r\n onMounted(()=>{\r\n if (props.avoidSetQueryInUrl) {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n }\r\n\r\n if(props.guid === 'dictionarySearch'){\r\n store.dispatch('search/initSearchScope',{\r\n guid:props.guid,\r\n url: null,\r\n })\r\n } else {\r\n generalSearch(props,store)\r\n }\r\n })\r\n\r\n const getResultImageRatio = function(result) {\r\n if (!result || !result.documentType) return null\r\n\r\n return {\r\n 'NewsPage': '3-2',\r\n 'LongreadPage': '3-2',\r\n 'PodcastPage': '1-1',\r\n 'RecipePage': '4-5',\r\n 'ReportPage': 'A4'\r\n }[result.documentType] ?? null\r\n }\r\n\r\n const getResultImageType = function(result) {\r\n if (!result || !result.documentType) return null\r\n\r\n return {\r\n 'PodcastPage': 'podcast',\r\n 'RecipePage': 'recipe',\r\n 'ReportPage': 'report'\r\n }[result.documentType] ?? null\r\n }\r\n\r\n const clearFilterOnTag = function(tag) {\r\n store.dispatch('search/performSearch',{\r\n guid:props.guid,\r\n query: inputText.value,\r\n facet: tag\r\n })\r\n }\r\n\r\n const sortingHandler = function(sorting){\r\n store.dispatch('search/performSearch',{\r\n guid:props.guid,\r\n sorting\r\n })\r\n }\r\n\r\n const canShowMore = computed(()=>store.getters['search/canShowMore'](props.guid))\r\n\r\n // if list is type with grid, class placed on parent in order to hit meta-top-container too\r\n const gridTypeList = () => {\r\n // recipe grid has unique 2 col mobile grid, hence modifier\r\n if (props.type === 'recipe' ) {\r\n return 'kb-grid-list kb-grid-list--recipe'\r\n } else if (props.type === 'counselling' || 'fundraising' ) {\r\n return 'kb-grid-list'\r\n } \r\n }\r\n\r\n const displayProperties = {\r\n 'news': {card: 'SearchResultCard', grid: false, date: true, showCardTitle: true, summary: {hidable: true}, image: true, breadcrumbs: false},\r\n 'recipe': {card: 'RecipeCard', grid: true, listType:'4col'},\r\n 'events': {card: 'ActivityCard', grid: false, listType: 'fixed-header'},\r\n 'donations': {card: 'DonationCard', grid: false, hideTotalCount: true, listType:'content-width'},\r\n 'gallery': {card: 'GalleryCard', grid: false, hideTotalCount: false},\r\n 'fundraising': {card: 'FundraisingCard', grid: true, listType:'3col', sortOptions:sortOptions['fundraising']},\r\n 'counselling': {card: 'LocationCard', grid: true, hideTotalCount: true, hideTags: true, showSearchTitleCount: true, listType:'3col'},\r\n 'patientAssociations': {card: 'SimpleCard', grid: true, listType:'3col'},\r\n 'documentList': {card: 'SimpleCard', grid: true, listType:'3col'},\r\n 'jobs': {card: 'FrivilligjobCard', grid: false, hideTotalCount: false, hideTags: false, showSearchTitleCount: true, showCtaButton: true },\r\n\r\n }[props.type] ?? {card: 'SearchResultCard', grid: false, date: false, showCardTitle: true, summary: true, image: true, breadcrumbs: true}\r\n\r\n const displayModifications = computed (() => {\r\n \r\n const grid = 'kb-general-search__results--grid'\r\n const list = 'kb-general-search__results--list'\r\n const gridModifications = (displayProperties.grid && displayProperties.listType) ? displayProperties.listType ? grid + '-' + displayProperties.listType : '' : null\r\n const listModifications = (!displayProperties.grid && displayProperties.listType) ? list + '-' + displayProperties.listType : null\r\n\r\n return gridModifications\r\n ? gridModifications\r\n : listModifications\r\n ? listModifications\r\n : ''\r\n })\r\n\r\n // Flatten the results in case the list is fixed-header, where the results are grouped in categories.\r\n // This was we can make sure to place the spot card in the correct position\r\n const flatResults = computed(() => {\r\n if (displayProperties.listType === 'fixed-header') {\r\n return Object.values(results.value).flatMap(month => month.entries)\r\n }\r\n\r\n return results.value\r\n })\r\n\r\n const resultCount = computed(()=>{\r\n if (displayProperties.listType === 'fixed-header') {\r\n let totalCount = 0\r\n \r\n for (const key in results.value) {\r\n if (results.value.hasOwnProperty(key)) {\r\n const array = results.value[key].entries\r\n totalCount += array.length\r\n }\r\n }\r\n\r\n return totalCount\r\n }\r\n\r\n return results.value.length\r\n })\r\n\r\n const totalCountLabel = computed(() => getLabel('resultCountTitle').replace('{}', totalCount.value))\r\n const searchTitleCountLabel = computed(() => getLabel('searchTitleCount')?.replace('{}', totalCount.value))\r\n\r\n const spotCard = displayProperties.grid ? SpotCardGrid : SpotCard\r\n const spotCardIndex = computed(()=> Math.min(props.spotCardData.position - 1, totalCount.value))\r\n \r\n const shouldRenderSpotCard = function(result, isLastRender) {\r\n if (!props.spotCardData) return false\r\n\r\n const realIndex = flatResults.value.findIndex(r => r === result)\r\n\r\n if (!isLastRender) {\r\n return realIndex === spotCardIndex.value\r\n }\r\n\r\n return (realIndex === resultCount.value - 1) && (spotCardIndex.value >= resultCount.value)\r\n }\r\n\r\n return {\r\n displayProperties,\r\n results,\r\n resultCount,\r\n tags,\r\n getLabel,\r\n getMoreResults,\r\n clearFilterOnTag,\r\n gridTypeList,\r\n showSpinner,\r\n totalCount,\r\n totalCountLabel,\r\n searchTitleCountLabel,\r\n canShowMore,\r\n sortingHandler,\r\n displayModifications,\r\n spotCard,\r\n spotCardIndex,\r\n shouldRenderSpotCard,\r\n canShowMore,\r\n getResultImageRatio,\r\n getResultImageType,\r\n existLabel\r\n }\r\n }\r\n}\r\n","export default function (input) {\r\n const result = {};\r\n\r\n input.forEach((hit) => {\r\n const key = `${hit.year}-${hit.monthName[0]}`;\r\n\r\n if (!result[key]) {\r\n result[key] = { month: hit.monthName[0], year: hit.year, entries: [] };\r\n }\r\n\r\n result[key].entries.push(hit);\r\n });\r\n\r\n const sortedResult = Object.values(result).sort((a, b) => {\r\n if (a.year === b.year) {\r\n return new Date(`${a.month} 1, 2000`) - new Date(`${b.month} 1, 2000}`);\r\n }\r\n return a.year - b.year;\r\n });\r\n\r\n return sortedResult;\r\n}\r\n","import { render } from \"./GeneralSearch.vue?vue&type=template&id=328b963e\"\nimport script from \"./GeneralSearch.vue?vue&type=script&lang=js\"\nexport * from \"./GeneralSearch.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport GeneralSearch from './GeneralSearch'\r\n\r\nconst el = '.kb-component--general-search'\r\nconst DOMs = document.querySelectorAll(el)\r\n\r\nexport default function (Store) {\r\n if (DOMs && DOMs.length) {\r\n DOMs.forEach((DOM) => {\r\n const guid = DOM.dataset.guid\r\n const type = DOM.dataset.type\r\n const firstPageSize = parseInt(DOM.dataset.firstPageSize) ?? 10\r\n const showMorePageSize =\r\n parseInt(DOM.dataset.showMorePageSize) ?? 10\r\n const spotCardData = DOM.dataset.spotCard\r\n ? JSON.parse(DOM.dataset.spotCard)\r\n : null\r\n const hideNoResults = DOM.hasAttribute('hide-no-results')\r\n const avoidSetQueryInUrl = DOM.hasAttribute('avoid-set-query-in-url')\r\n const isMultisearch = DOM.hasAttribute('is-multisearch')\r\n const component = createApp(GeneralSearch,{\r\n guid,\r\n type,\r\n firstPageSize,\r\n showMorePageSize,\r\n spotCardData,\r\n hideNoResults,\r\n avoidSetQueryInUrl,\r\n isMultisearch\r\n }).use(Store)\r\n\r\n const mountOn = DOM.id ? `#${DOM.id}` : el\r\n component.mount(mountOn)\r\n })\r\n }\r\n}\r\n","\r\n\r\n","import { useStore } from \"vuex\"\r\nimport { computed, onMounted } from 'vue'\r\n\r\nexport default {\r\n name: \"GroupCard\",\r\n props: {\r\n content: {\r\n type: Object,\r\n default: {},\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const groupId = props.content.groupId ?? props.content.id\r\n\r\n const statistics = computed(() => store.state.forum.group_statistics[groupId])\r\n const memberCount = computed(() => statistics.value?.memberCount)\r\n const postsCount = computed(() => statistics.value?.postsCount)\r\n \r\n onMounted(() => {\r\n store.dispatch(\"forum/getGroupStatistics\", {\r\n groupId: groupId\r\n })\r\n })\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"GroupCard\",\r\n labelKey,\r\n })\r\n\r\n return {\r\n memberCount,\r\n postsCount,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./GroupCard.vue?vue&type=template&id=2ee7212b\"\nimport script from \"./GroupCard.vue?vue&type=script&lang=js\"\nexport * from \"./GroupCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { ref, computed, onMounted, watch, nextTick } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport GroupCard from \"../GroupCard/GroupCard.vue\"\r\nimport SpotCardGrid from \"../SpotCardGrid/SpotCardGrid.vue\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"GroupSearchResult\",\r\n components: {\r\n GroupCard,\r\n SpotCardGrid\r\n },\r\n props: {\r\n source: {\r\n type: String,\r\n required: false\r\n },\r\n hovedgruppekode: {\r\n type: String,\r\n required: false\r\n },\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n skip: {\r\n type: Number,\r\n required: true,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n required: true,\r\n default: 10\r\n },\r\n spotCard: {\r\n type: Object,\r\n required: false\r\n },\r\n disableInitialSearch: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n },\r\n setup(props) {\r\n const store = useStore() \r\n\r\n onMounted(() => {\r\n initFetchGroups()\r\n })\r\n\r\n const url = computed(() => {\r\n switch (props.source) {\r\n case 'frivillig-all':\r\n return process.env.FRIVILLIGE_GROUPS_SEARCH\r\n .replace('[pageId]', store.state.main.page_id)\r\n case 'frivillig-hovedgruppe':\r\n return process.env.FRIVILLIGE_GROUPS_HOVEDGRUPPE_SEARCH\r\n .replace('[pageId]', store.state.main.page_id)\r\n .replace('[hovedgruppekode]', props.hovedgruppekode)\r\n default:\r\n return process.env.GET_GROUP_SEARCH_RESULT\r\n }\r\n })\r\n \r\n const resultFocusIndex = ref(0)\r\n const isNotCancerforum = props.source != 'cancerforum'\r\n const totalAmount = computed(() => store.state.search.scoped_total[props.guid] ?? 0)\r\n const searchQuery = computed(() => store.state.search.queries[props.guid] ?? '')\r\n const results = computed(() => store.state.search.results[props.guid] ?? [])\r\n const tags = computed(() => store.getters['search/selectedTags'](props.guid) ?? [])\r\n const showSpinner = computed(() => store.state.search.search_inprogress[props.guid])\r\n const showResults = computed(() => store.state.search.show_results[props.guid])\r\n const resultCount = computed(() => results.value.length)\r\n\r\n const displaySearchResults = computed(() => showResults.value && (isNotCancerforum || searchQuery.value.length > 0))\r\n\r\n const initFetchGroups = () => {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: url.value\r\n })\r\n\r\n if(props.disableInitialSearch !== true) {\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: '',\r\n skip: props.skip,\r\n take: props.take\r\n })\r\n }\r\n }\r\n\r\n watch(results, async (newResults, _) => {\r\n if (resultFocusIndex.value === 0) {\r\n return\r\n }\r\n\r\n const newestResult = newResults[resultFocusIndex.value]\r\n await nextTick()\r\n const resultToFocus = document.getElementById(newestResult.id)\r\n resultToFocus.focus()\r\n })\r\n\r\n const getMoreResults = async (isKeydownEvent = false) => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n \r\n if (isKeydownEvent) {\r\n // If the getMoreResults button was pressed using the enter key, we update the index keeping track of the result to focus\r\n resultFocusIndex.value = results.value.length\r\n }\r\n }\r\n\r\n return {\r\n isNotCancerforum,\r\n totalAmount,\r\n searchQuery,\r\n results,\r\n tags,\r\n showSpinner,\r\n showResults,\r\n resultCount,\r\n displaySearchResults,\r\n getMoreResults,\r\n getLabel: (labelKey, params) => GetLabel({ labelKey, labelCollection: 'GroupSearchResult', params })\r\n }\r\n } \r\n}","import { render } from \"./GroupSearchResult.vue?vue&type=template&id=6a4fd3a8\"\nimport script from \"./GroupSearchResult.vue?vue&type=script&lang=js\"\nexport * from \"./GroupSearchResult.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onMounted } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\n\r\nexport default {\r\n name: \"GruppeadgangsanmodningList\",\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n skip: {\r\n type: Number,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n default: 10\r\n }\r\n },\r\n setup(props) { \r\n const store = useStore()\r\n\r\n const notifications = computed(() => store.state.search.results[props.guid] ?? [])\r\n const totalNumberOfNotifications = computed(() => store.state.search.scoped_total[props.guid] ?? 0)\r\n const showSpinner = computed(() => store.state.search.search_inprogress[props.guid])\r\n\r\n onMounted(() => {\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: process.env.GET_GRUPPEADGANGSANMODNINGER\r\n })\r\n \r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n guery: '',\r\n skip: props.skip,\r\n take: props.take\r\n })\r\n })\r\n\r\n const getLabel = (labelKey) => \r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"gruppeadgangsanmodningList\",\r\n labelKey,\r\n });\r\n\r\n const getMoreNotifications = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n const rejectGruppeadgangsanmodning = async (gruppeadgangsanmodningId) => {\r\n store.dispatch('forum/rejectGruppeadgangsanmodning', { gruppeadgangsanmodningId: gruppeadgangsanmodningId})\r\n\r\n const label = getLabel(\"notificationRejectedLabel\")\r\n await removeNotification(gruppeadgangsanmodningId, label)\r\n }\r\n\r\n const approveGruppeadgangsanmodning = async (gruppeadgangsanmodningId) => {\r\n store.dispatch('forum/approveGruppeadgangsanmodning', { gruppeadgangsanmodningId: gruppeadgangsanmodningId})\r\n\r\n const label = getLabel(\"notificationConfirmedLabel\")\r\n await removeNotification(gruppeadgangsanmodningId, label)\r\n }\r\n\r\n const removeNotification = async (id, label) => {\r\n const actionsElementId = getActionsElementId(id)\r\n const actionsElement = document.getElementById(actionsElementId)\r\n actionsElement.innerHTML = label\r\n\r\n await new Promise(r => setTimeout(r, 2000))\r\n\r\n updateList()\r\n }\r\n\r\n const updateList = () => {\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n guery: '',\r\n skip: 0,\r\n take: notifications.value.length \r\n })\r\n }\r\n\r\n const getActionsElementId = (gruppeadgangsanmodningId) => 'actions-' + gruppeadgangsanmodningId\r\n\r\n return {\r\n notifications,\r\n totalNumberOfNotifications,\r\n showSpinner,\r\n getActionsElementId,\r\n getMoreNotifications,\r\n getLabel,\r\n rejectGruppeadgangsanmodning,\r\n approveGruppeadgangsanmodning\r\n }\r\n }\r\n}","import { render } from \"./GruppeadgangsanmodningList.vue?vue&type=template&id=4a3875e2\"\nimport script from \"./GruppeadgangsanmodningList.vue?vue&type=script&lang=js\"\nexport * from \"./GruppeadgangsanmodningList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export default {\r\n name: 'GtmTracker',\r\n props: {\r\n trackData: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n if (!props.trackData || !window.dataLayer) return\r\n\r\n window.dataLayer.push({ ecommerce: null }) // Clear the previous ecommerce object.\r\n window.dataLayer.push(props.trackData)\r\n }\r\n}\r\n","import { render } from \"./GtmTracker.vue?vue&type=template&id=6852334c\"\nimport script from \"./GtmTracker.vue?vue&type=script&lang=js\"\nexport * from \"./GtmTracker.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nimport { computed, onMounted, ref } from 'vue'\r\nimport debounce from 'foundation/js/debounce'\r\n\r\nexport default {\r\n name: 'HeroGeneralSearch',\r\n props: {\r\n guids: {\r\n type: Array,\r\n required: true\r\n },\r\n primaryTagsDisplayed: {\r\n type: Number,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const hasTags = ref(false)\r\n const inputText = computed({\r\n get: () => store.state.search.queries[props.guids[0]] ?? '',\r\n set: (v) => {\r\n if (props.guids && props.guids.length) {\r\n props.guids.forEach((g) =>\r\n store.dispatch('search/setSearchQuery', {\r\n guid: g,\r\n query: v\r\n })\r\n )\r\n }\r\n }\r\n })\r\n const tagDisplay = computed(() => {\r\n let allPrimaryTags = []\r\n props.guids.forEach((guid) => {\r\n let values = store.getters['search/allPrimaryTags'](guid)\r\n if (values) {\r\n allPrimaryTags.push(...values)\r\n }\r\n })\r\n // Remove duplicate tags by facetId property\r\n const uniquePrimaryTags = [\r\n ...new Map(\r\n allPrimaryTags.map((tag) => [tag['facetId'], tag])\r\n ).values()\r\n ]\r\n return uniquePrimaryTags.slice(0, props.primaryTagsDisplayed)\r\n })\r\n\r\n const termInput = debounce(() => {\r\n props.guids.forEach((g) => {\r\n store.dispatch('search/performSearch', {\r\n guid: g,\r\n query: inputText.value\r\n })\r\n })\r\n }, 500)\r\n\r\n const filterOnTag = function (tag) {\r\n props.guids.forEach((g) => {\r\n store.dispatch('search/performSearch', {\r\n guid: g,\r\n query: inputText.value,\r\n facet: tag\r\n })\r\n })\r\n }\r\n\r\n const startFilterOverlay = function (e) {\r\n props.guids.forEach((g) => {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'FilterOverlay',\r\n returnTarget: e.currentTarget\r\n })\r\n })\r\n }\r\n\r\n onMounted(() => {\r\n store.commit('search/set_filter_overlay_scopes', props.guids)\r\n hasTags.value = true\r\n })\r\n\r\n return {\r\n inputText,\r\n filterOnTag,\r\n startFilterOverlay,\r\n tagDisplay,\r\n termInput,\r\n hasTags\r\n }\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './HeroGeneralSearch.options'\r\n\r\nconst el = '.kb-component--hero-general-search'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (DOM) {\r\n var guid = []\r\n if (DOM.dataset.guid.length && DOM.dataset.guid.startsWith('[')) {\r\n guid = JSON.parse(DOM.dataset.guid)\r\n } else {\r\n guid = [DOM.dataset.guid]\r\n }\r\n const primaryTagsDisplayed = DOM.dataset.numberOfPrimaryTags\r\n ? parseInt(DOM.dataset.numberOfPrimaryTags)\r\n : 3\r\n const component = createApp(options, {\r\n guids: guid,\r\n primaryTagsDisplayed\r\n }).use(Store)\r\n const template = DOM.outerHTML\r\n options.template = template\r\n component.mount(el)\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { useStore} from 'vuex'\r\nimport { ref, onMounted } from 'vue'\r\nimport { post } from \"foundation/js/api\"\r\n\r\nexport default {\r\n name: 'HeroSectionCancerforum',\r\n props: {\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n isLoggedIn: {\r\n type: Boolean,\r\n required: true\r\n },\r\n isClosedGroup: {\r\n type: Boolean,\r\n required: true\r\n },\r\n isUserAwaitingAccess: {\r\n type: Boolean,\r\n required: true\r\n },\r\n loginUrl: {\r\n type: String,\r\n required: true\r\n },\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const isSubmitting = ref(false)\r\n const buttonText = ref('')\r\n\r\n const handleClick = async function (e) {\r\n if (!props.isLoggedIn) {\r\n window.location.href = props.loginUrl\r\n return\r\n }\r\n \r\n if (props.isClosedGroup) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: \"ClosedGroupOverlay\",\r\n returnTarget: e.currentTarget\r\n })\r\n return\r\n }\r\n\r\n isSubmitting.value = true\r\n\r\n const url = `${document.location.origin}/${process.env.FORUM_JOIN_GROUP}`.replace('[groupId]', props.groupId) \r\n await post(url, null)\r\n\r\n isSubmitting.value = false\r\n window.location.reload()\r\n }\r\n\r\n onMounted(() => {\r\n buttonText.value = getInitialButtonText()\r\n })\r\n\r\n const getInitialButtonText = () => {\r\n const labelKey = props.isUserAwaitingAccess \r\n ? \"ctaButtonLabelAwaitingAccess\"\r\n : \"ctaButtonLabelNotMember\"\r\n\r\n return getLabel(labelKey)\r\n }\r\n\r\n const getLabel = function(labelKey) {\r\n return store.getters['labels/getLabel']({\r\n labelCollection: 'HeroSectionCancerforum',\r\n labelKey\r\n })\r\n }\r\n\r\n return {\r\n handleClick,\r\n getLabel,\r\n buttonText,\r\n isSubmitting,\r\n }\r\n }\r\n}\r\n","import { render } from \"./HeroSectionCancerforum.vue?vue&type=template&id=4874e448\"\nimport script from \"./HeroSectionCancerforum.vue?vue&type=script&lang=js\"\nexport * from \"./HeroSectionCancerforum.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import{defineComponent as e,createVNode as t,Fragment as o,ref as l,reactive as n,computed as a,watch as r,nextTick as i,onMounted as s,onBeforeUnmount as c,Teleport as u,Transition as d,isVNode as p,withModifiers as b,isRef as v}from\"vue\";function m(e,t){void 0===t&&(t={});var o=t.insertAt;if(e&&\"undefined\"!=typeof document){var l=document.head||document.getElementsByTagName(\"head\")[0],n=document.createElement(\"style\");n.type=\"text/css\",\"top\"===o&&l.firstChild?l.insertBefore(n,l.firstChild):l.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}m(\".vel-fade-enter-active,.vel-fade-leave-active{-webkit-transition:all .3s ease;transition:all .3s ease}.vel-fade-enter-from,.vel-fade-leave-to{opacity:0}.vel-img-swiper{display:block;position:relative}.vel-modal{background:rgba(0,0,0,.5);bottom:0;left:0;margin:0;position:fixed;right:0;top:0;z-index:9998}.vel-img-wrapper{left:50%;margin:0;position:absolute;top:50%;-webkit-transform:translate(-50% -50%);transform:translate(-50% -50%);-webkit-transition:.3s linear;transition:.3s linear;will-change:transform opacity}.vel-img,.vel-img-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vel-img{background-color:rgba(0,0,0,.7);-webkit-box-shadow:0 5px 20px 2px rgba(0,0,0,.7);box-shadow:0 5px 20px 2px rgba(0,0,0,.7);display:block;max-height:80vh;max-width:80vw;position:relative;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}@media (max-width:750px){.vel-img{max-height:95vh;max-width:85vw}}.vel-btns-wrapper{position:static}.vel-btns-wrapper .btn__close,.vel-btns-wrapper .btn__next,.vel-btns-wrapper .btn__prev{-webkit-tap-highlight-color:transparent;color:#fff;cursor:pointer;font-size:32px;opacity:.6;outline:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:.15s linear;transition:.15s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vel-btns-wrapper .btn__close:hover,.vel-btns-wrapper .btn__next:hover,.vel-btns-wrapper .btn__prev:hover{opacity:1}.vel-btns-wrapper .btn__close.disable,.vel-btns-wrapper .btn__close.disable:hover,.vel-btns-wrapper .btn__next.disable,.vel-btns-wrapper .btn__next.disable:hover,.vel-btns-wrapper .btn__prev.disable,.vel-btns-wrapper .btn__prev.disable:hover{cursor:default;opacity:.2}.vel-btns-wrapper .btn__next{right:12px}.vel-btns-wrapper .btn__prev{left:12px}.vel-btns-wrapper .btn__close{right:10px;top:24px}@media (max-width:750px){.vel-btns-wrapper .btn__next,.vel-btns-wrapper .btn__prev{font-size:20px}.vel-btns-wrapper .btn__close{font-size:24px}.vel-btns-wrapper .btn__next{right:4px}.vel-btns-wrapper .btn__prev{left:4px}}.vel-modal.is-rtl .vel-btns-wrapper .btn__next{left:12px;right:auto}.vel-modal.is-rtl .vel-btns-wrapper .btn__prev{left:auto;right:12px}@media (max-width:750px){.vel-modal.is-rtl .vel-btns-wrapper .btn__next{left:4px;right:auto}.vel-modal.is-rtl .vel-btns-wrapper .btn__prev{left:auto;right:4px}}.vel-modal.is-rtl .vel-img-title{direction:rtl}\");m('.vel-loading{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.vel-loading .ring{display:inline-block;height:64px;width:64px}.vel-loading .ring:after{-webkit-animation:ring 1.2s linear infinite;animation:ring 1.2s linear infinite;border-color:hsla(0,0%,100%,.7) transparent;border-radius:50%;border-style:solid;border-width:5px;content:\" \";display:block;height:46px;margin:1px;width:46px}@-webkit-keyframes ring{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ring{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}');m(\".vel-on-error{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.vel-on-error .icon{color:#aaa;font-size:80px}\");m(\".vel-img-title{bottom:60px;color:#ccc;cursor:default;font-size:12px;left:50%;line-height:1;max-width:80%;opacity:.8;overflow:hidden;position:absolute;text-align:center;text-overflow:ellipsis;-webkit-transform:translate(-50%);transform:translate(-50%);-webkit-transition:opacity .15s;transition:opacity .15s;white-space:nowrap}.vel-img-title:hover{opacity:1}\");m(\".vel-icon{fill:currentColor;height:1em;overflow:hidden;vertical-align:-.15em;width:1em}\");m(\".vel-toolbar{border-radius:4px;bottom:8px;display:-webkit-box;display:-ms-flexbox;display:flex;left:50%;opacity:.9;overflow:hidden;padding:0;position:absolute;-webkit-transform:translate(-50%);transform:translate(-50%)}.vel-toolbar,.vel-toolbar .toolbar-btn{background-color:#2d2d2d;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vel-toolbar .toolbar-btn{-ms-flex-negative:0;-webkit-tap-highlight-color:transparent;color:#fff;cursor:pointer;flex-shrink:0;font-size:20px;outline:none;padding:6px 10px}.vel-toolbar .toolbar-btn:active,.vel-toolbar .toolbar-btn:hover{background-color:#3d3d3d}\");const g=\"vel\",f=e({name:\"SvgIcon\",props:{type:{type:String,default:\"\"}},setup:e=>()=>t(\"svg\",{class:`${g}-icon icon`,\"aria-hidden\":\"true\"},[t(\"use\",{\"xlink:href\":`#icon-${e.type}`},null)])}),h=\"undefined\"!=typeof window,w=()=>{};let x=!1;if(h)try{const e={};Object.defineProperty(e,\"passive\",{get(){x=!0}}),window.addEventListener(\"test-passive\",w,e)}catch(e){}const y=function(e,t,o){let l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];h&&e.addEventListener(t,o,!!x&&{capture:!1,passive:l})},z=(e,t,o)=>{h&&e.removeEventListener(t,o)},k=e=>{e.preventDefault()},_=Object.prototype.toString,D=e=>t=>_.call(t).slice(8,-1)===e;const M=e=>!!e&&D(\"Object\")(e),S=e=>!!e&&D(\"String\")(e);function L(e){return null!=e}const C=e({name:\"Toolbar\",props:{zoomIn:{type:Function,default:w},zoomOut:{type:Function,default:w},rotateLeft:{type:Function,default:w},rotateRight:{type:Function,default:w},resize:{type:Function,default:w},rotateDisabled:{type:Boolean,default:!1},zoomDisabled:{type:Boolean,default:!1}},setup:e=>()=>t(\"div\",{class:`${g}-toolbar`},[!e.zoomDisabled&&t(o,null,[t(\"div\",{role:\"button\",\"aria-label\":\"zoom in button\",class:\"toolbar-btn toolbar-btn__zoomin\",onClick:e.zoomIn},[t(f,{type:\"zoomin\"},null)]),t(\"div\",{role:\"button\",\"aria-label\":\"zoom out button\",class:\"toolbar-btn toolbar-btn__zoomout\",onClick:e.zoomOut},[t(f,{type:\"zoomout\"},null)])]),t(\"div\",{role:\"button\",\"aria-label\":\"resize image button\",class:\"toolbar-btn toolbar-btn__resize\",onClick:e.resize},[t(f,{type:\"resize\"},null)]),!e.rotateDisabled&&t(o,null,[t(\"div\",{role:\"button\",\"aria-label\":\"image rotate left button\",class:\"toolbar-btn toolbar-btn__rotate\",onClick:e.rotateLeft},[t(f,{type:\"rotate-left\"},null)]),t(\"div\",{role:\"button\",\"aria-label\":\"image rotate right button\",class:\"toolbar-btn toolbar-btn__rotate\",onClick:e.rotateRight},[t(f,{type:\"rotate-right\"},null)])])])}),Y=()=>t(\"div\",{class:`${g}-loading`},[t(\"div\",{class:\"ring\"},null)]),B=()=>t(\"div\",{class:`${g}-on-error`},[t(\"div\",{class:\"ring\"},null),t(f,{type:\"img-broken\"},null)]),X=(e,o)=>{let{slots:l}=o;return t(\"div\",{class:`${g}-img-title`},[l.default?l.default():\"\"])},E=e({name:\"DefaultIcons\",setup:()=>()=>t(\"svg\",{\"aria-hidden\":!0,style:\"position: absolute; width: 0; height: 0; overflow: hidden; visibility: hidden;\"},[t(\"symbol\",{id:\"icon-rotate-right\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M275.199914 450.496179v20.031994c0.384-38.079988 12.543996-67.423979 36.479989-87.967973 22.431993-20.351994 49.215985-30.55999 80.319975-30.55999 32.06399 0 59.295981 10.175997 81.759974 30.55999 22.815993 20.543994 34.591989 49.887984 35.359989 87.967973v123.935961c-0.768 37.887988-12.543996 67.135979-35.359989 87.679973-22.431993 20.351994-49.695984 30.75199-81.759974 31.10399a120.255962 120.255962 0 0 1-72.991978-24.895992c-21.503993-15.839995-35.359989-38.751988-41.567987-68.735979h60.831981c9.247997 23.007993 27.167992 34.495989 53.759983 34.49599 37.535988-0.384 56.863982-21.407993 57.983982-63.071981v-38.751988c-28.095991 8.863997-54.303983 13.119996-78.623975 12.735996a91.263971 91.263971 0 0 1-68.447979-27.711991c-18.847994-18.303994-28.095991-47.231985-27.711991-86.847973z m62.55998 24.863992c7.103998 24.799992 25.215992 37.343988 54.271983 37.663989 27.103992-0.288 44.703986-11.327996 52.831984-33.11999 3.135999-8.383997 2.655999-29.599991-1.28-38.559988-8.607997-19.615994-25.791992-29.695991-51.551984-30.20799-28.383991 0.576-46.303986 12.639996-53.759983 36.159988a58.719982 58.719982 0 0 0-0.512 28.063991z m390.335878 115.711964v-116.895963c-1.12-41.311987-20.447994-62.335981-57.983981-63.07198-37.727988 0.768-56.959982 21.791993-57.695982 63.07198v116.895963c0.768 41.663987 19.999994 62.68798 57.695982 63.071981 37.535988-0.384 56.863982-21.407993 57.983981-63.071981z m-174.815945 3.391999v-123.935961c0.384-38.079988 12.543996-67.423979 36.479989-87.967973 22.431993-20.351994 49.215985-30.55999 80.319975-30.55999 32.06399 0 59.295981 10.175997 81.759974 30.55999 22.815993 20.543994 34.591989 49.887984 35.359989 87.967973v123.935961c-0.768 37.887988-12.543996 67.135979-35.359989 87.679973-22.431993 20.351994-49.695984 30.75199-81.759974 31.10399-31.10399-0.384-57.887982-10.751997-80.319975-31.10399-23.935993-20.543994-36.127989-49.791984-36.479989-87.679973z m282.559912-479.07185A509.887841 509.887841 0 0 0 511.99984 0.00032C229.215928 0.00032 0 229.216248 0 512.00016s229.215928 511.99984 511.99984 511.99984 511.99984-229.215928 511.99984-511.99984c0-3.743999-0.032-7.455998-0.128-11.167997-1.631999-11.295996-8.159997-27.103992-31.87199-27.103991-27.487991 0-31.67999 21.247993-32.03199 32.06399l0.032 4.127999a30.62399 30.62399 0 0 0 0.16 2.079999H959.9997c0 247.423923-200.575937 447.99986-447.99986 447.99986S63.99998 759.424083 63.99998 512.00016 264.575917 64.0003 511.99984 64.0003a446.079861 446.079861 0 0 1 277.439913 96.22397l-94.91197 91.679971c-25.439992 24.607992-17.439995 44.991986 17.887994 45.599986l188.031942 3.295999a64.31998 64.31998 0 0 0 65.055979-62.84798l3.295999-188.127942C969.407697 15.040315 949.311703 5.792318 923.871711 30.368311l-87.999972 85.023973z\",fill:\"\"},null)]),t(\"symbol\",{id:\"icon-rotate-left\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M275.199914 450.496179v20.031994c0.384-38.079988 12.543996-67.423979 36.479989-87.967973 22.431993-20.351994 49.215985-30.55999 80.319975-30.55999 32.06399 0 59.295981 10.175997 81.759974 30.55999 22.815993 20.543994 34.591989 49.887984 35.359989 87.967973v123.935961c-0.768 37.887988-12.543996 67.135979-35.359989 87.679973-22.431993 20.351994-49.695984 30.75199-81.759974 31.10399a120.255962 120.255962 0 0 1-72.991978-24.895992c-21.503993-15.839995-35.359989-38.751988-41.567987-68.735979h60.831981c9.247997 23.007993 27.167992 34.495989 53.759983 34.49599 37.535988-0.384 56.863982-21.407993 57.983982-63.071981v-38.751988c-28.095991 8.863997-54.303983 13.119996-78.623975 12.735996a91.263971 91.263971 0 0 1-68.447979-27.711991c-18.847994-18.303994-28.095991-47.231985-27.711991-86.847973z m62.55998 24.863992c7.103998 24.799992 25.215992 37.343988 54.271983 37.663989 27.103992-0.288 44.703986-11.327996 52.831984-33.11999 3.135999-8.383997 2.655999-29.599991-1.28-38.559988-8.607997-19.615994-25.791992-29.695991-51.551984-30.20799-28.383991 0.576-46.303986 12.639996-53.759983 36.159988a58.719982 58.719982 0 0 0-0.512 28.063991z m390.335878 115.711964v-116.895963c-1.12-41.311987-20.447994-62.335981-57.983981-63.07198-37.727988 0.768-56.959982 21.791993-57.695982 63.07198v116.895963c0.768 41.663987 19.999994 62.68798 57.695982 63.071981 37.535988-0.384 56.863982-21.407993 57.983981-63.071981z m-174.815945 3.391999v-123.935961c0.384-38.079988 12.543996-67.423979 36.479989-87.967973 22.431993-20.351994 49.215985-30.55999 80.319975-30.55999 32.06399 0 59.295981 10.175997 81.759974 30.55999 22.815993 20.543994 34.591989 49.887984 35.359989 87.967973v123.935961c-0.768 37.887988-12.543996 67.135979-35.359989 87.679973-22.431993 20.351994-49.695984 30.75199-81.759974 31.10399-31.10399-0.384-57.887982-10.751997-80.319975-31.10399-23.935993-20.543994-36.127989-49.791984-36.479989-87.679973zM188.159941 115.392284A509.887841 509.887841 0 0 1 511.99984 0.00032c282.783912 0 511.99984 229.215928 511.99984 511.99984s-229.215928 511.99984-511.99984 511.99984S0 794.784072 0 512.00016c0-3.743999 0.032-7.455998 0.128-11.167997 1.631999-11.295996 8.159997-27.103992 31.87199-27.103991 27.487991 0 31.67999 21.247993 32.03199 32.06399L63.99998 509.920161a30.62399 30.62399 0 0 1-0.16 2.079999H63.99998c0 247.423923 200.575937 447.99986 447.99986 447.99986s447.99986-200.575937 447.99986-447.99986S759.423763 64.0003 511.99984 64.0003a446.079861 446.079861 0 0 0-277.439913 96.22397l94.91197 91.679971c25.439992 24.607992 17.439995 44.991986-17.887994 45.599986L123.551961 300.800226a64.31998 64.31998 0 0 1-65.055979-62.84798l-3.295999-188.127942C54.591983 15.040315 74.687977 5.792318 100.127969 30.368311l87.999972 85.023973z\",fill:\"\"},null)]),t(\"symbol\",{id:\"icon-resize\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M456.036919 791.8108 270.553461 791.8108 460.818829 601.572038l-39.593763-39.567157L231.314785 751.915162l0.873903-183.953615c0-15.465227-12.515035-27.981285-27.981285-27.981285s-27.981285 12.515035-27.981285 27.981285l0 251.829516c0 8.3072 3.415796 14.975063 8.826016 19.564591 5.082762 5.192256 12.132318 8.416693 19.947308 8.416693l251.036453 0c15.46625 0 27.981285-12.514012 27.981285-27.981285C484.018204 804.325835 471.504192 791.8108 456.036919 791.8108zM838.945819 184.644347c-5.082762-5.191232-12.132318-8.416693-19.947308-8.416693L567.961034 176.227654c-15.46625 0-27.981285 12.515035-27.981285 27.981285 0 15.46625 12.514012 27.981285 27.981285 27.981285l185.483458 0L563.206754 422.427962l39.567157 39.567157 189.910281-189.910281-0.873903 183.953615c0 15.46625 12.514012 27.981285 27.981285 27.981285s27.981285-12.514012 27.981285-27.981285L847.772858 204.208938C847.771835 195.902762 844.356039 189.234899 838.945819 184.644347zM847.771835 64.303538 176.227142 64.303538c-61.809741 0-111.924115 50.115398-111.924115 111.924115l0 671.544693c0 61.809741 50.114374 111.924115 111.924115 111.924115l671.544693 0c61.809741 0 111.924115-50.114374 111.924115-111.924115l0-671.544693C959.69595 114.418936 909.581576 64.303538 847.771835 64.303538zM903.733381 847.772346c0 30.878265-25.056676 55.962569-55.962569 55.962569L176.227142 903.734916c-30.90487 0-55.962569-25.084305-55.962569-55.962569l0-671.544693c0-30.9325 25.056676-55.962569 55.962569-55.962569l671.544693 0c30.90487 0 55.962569 25.03007 55.962569 55.962569L903.734404 847.772346z\"},null)]),t(\"symbol\",{id:\"icon-img-broken\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M810.666667 128H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v597.333334c0 46.933333 38.4 85.333333 85.333333 85.333333h597.333334c46.933333 0 85.333333-38.4 85.333333-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z m0 682.666667H213.333333v-195.413334l42.24 42.24 170.666667-170.666666 170.666667 170.666666 170.666666-170.24L810.666667 530.346667V810.666667z m0-401.493334l-43.093334-43.093333-170.666666 171.093333-170.666667-170.666666-170.666667 170.666666-42.24-42.666666V213.333333h597.333334v195.84z\"},null)]),t(\"symbol\",{id:\"icon-prev\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M784.652701 955.6957 346.601985 517.644983c-2.822492-2.822492-2.822492-7.902977 0-11.289967l439.179713-439.179713c6.77398-6.77398 10.725469-16.370452 10.725469-25.966924L796.507166 36.692393c0-20.32194-16.370452-36.692393-36.692393-36.692393l-4.515987 0c-9.596472 0-19.192944 3.951488-25.966924 10.725469L250.072767 489.420066c-12.418964 12.418964-12.418964 32.740904 0 45.159868l477.565601 477.565601c7.338479 7.338479 17.499449 11.854465 28.224917 11.854465l0 0c22.015436 0 40.079383-18.063947 40.079383-40.079383l0 0C796.507166 973.759647 791.99118 963.598677 784.652701 955.6957z\"},null)]),t(\"symbol\",{id:\"icon-next\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M246.121279 955.6957l438.050717-438.050717c2.822492-2.822492 2.822492-7.902977 0-11.289967L244.992282 67.175303c-6.77398-6.77398-10.725469-16.370452-10.725469-25.966924L234.266814 36.692393C234.266814 16.370452 250.637266 0 270.959206 0l4.515987 0c9.596472 0 19.192944 3.951488 25.966924 10.725469l478.694598 478.694598c12.418964 12.418964 12.418964 32.740904 0 45.159868l-477.565601 477.565601c-7.338479 7.338479-17.499449 11.854465-28.224917 11.854465l0 0c-22.015436 0-40.079383-18.063947-40.079383-40.079383l0 0C234.266814 973.759647 238.7828 963.598677 246.121279 955.6957z\"},null)]),t(\"symbol\",{id:\"icon-zoomin\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M725.504 652.864c46.4-61.44 71.744-136.448 71.744-218.752C797.248 230.464 632.768 64 430.656 64S64 230.464 64 434.112C64 639.36 228.48 805.76 430.656 805.76c86.656 0 164.48-30.144 227.52-81.088L889.984 960 960 891.264l-234.496-238.4z m-294.848 67.456c-155.776 0-282.624-128.896-282.624-286.208s126.848-286.208 282.624-286.208 282.624 128.896 282.624 286.208-126.912 286.208-282.624 286.208z\"},null),t(\"path\",{d:\"M235.712 369.92h390.72v127.104H235.712z\"},null),t(\"path\",{d:\"M367.488 238.144h127.104v390.72H367.488z\"},null)]),t(\"symbol\",{id:\"icon-close\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M570.24 512l259.2 259.2-58.88 58.24L512 570.24l-261.12 261.12-58.24-58.24L453.76 512 194.56 252.8l58.24-58.24L512 453.76l261.12-261.12 58.24 58.24z\"},null)]),t(\"symbol\",{id:\"icon-zoomout\",viewBox:\"0 0 1024 1024\"},[t(\"path\",{d:\"M725.504 652.864c46.4-61.44 71.744-136.448 71.744-218.752C797.248 230.464 632.768 64 430.656 64S64 230.464 64 434.112C64 639.36 228.48 805.76 430.656 805.76c86.656 0 164.48-30.144 227.52-81.088L889.984 960 960 891.264l-234.496-238.4z m-294.848 67.456c-155.776 0-282.624-128.896-282.624-286.208s126.848-286.208 282.624-286.208 282.624 128.896 282.624 286.208-126.912 286.208-282.624 286.208z\"},null),t(\"path\",{d:\"M235.712 369.92h390.72v127.104H235.712z\"},null)])])}),T=h?window:global;let $=Date.now();function O(e){const t=Date.now(),o=Math.max(0,16-(t-$)),l=setTimeout(e,o);return $=t+o,l}function I(e){return(T.requestAnimationFrame||O).call(T,e)}function R(e){(T.cancelAnimationFrame||T.clearTimeout).call(T,e)}function A(e,t){const o=e.clientX-t.clientX,l=e.clientY-t.clientY;return Math.sqrt(o*o+l*l)}function j(e){return\"function\"==typeof e||\"[object Object]\"===Object.prototype.toString.call(e)&&!p(e)}var H=e({name:\"VueEasyLightbox\",props:{imgs:{type:[Array,String],default:()=>\"\"},visible:{type:Boolean,default:!1},index:{type:Number,default:0},scrollDisabled:{type:Boolean,default:!0},escDisabled:{type:Boolean,default:!1},moveDisabled:{type:Boolean,default:!1},titleDisabled:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},teleport:{type:[String,Object],default:null},swipeTolerance:{type:Number,default:50},loop:{type:Boolean,default:!1},rtl:{type:Boolean,default:!1},zoomScale:{type:Number,default:.12},maxZoom:{type:Number,default:3},minZoom:{type:Number,default:.1},rotateDisabled:{type:Boolean,default:!1},zoomDisabled:{type:Boolean,default:!1},pinchDisabled:{type:Boolean,default:!1}},emits:{hide:()=>!0,\"on-error\":e=>!0,\"on-prev\":(e,t)=>!0,\"on-next\":(e,t)=>!0,\"on-prev-click\":(e,t)=>!0,\"on-next-click\":(e,t)=>!0,\"on-index-change\":(e,t)=>!0,\"on-rotate\":e=>!0},setup(e,o){let{emit:p,slots:v}=o;const{imgRef:m,imgState:h,setImgSize:w}=(()=>{const e=l(),t=n({width:0,height:0,maxScale:1});return{imgRef:e,imgState:t,setImgSize:()=>{if(e.value){const{width:o,height:l,naturalWidth:n}=e.value;t.maxScale=n/o,t.width=o,t.height=l}}}})(),x=l(0),_=l(\"\"),T=n({scale:1,lastScale:1,rotateDeg:0,top:0,left:0,initX:0,initY:0,lastX:0,lastY:0,touches:[]}),$=n({loadError:!1,loading:!1,dragging:!1,gesturing:!1,wheeling:!1}),O=a((()=>{return t=e.imgs,D(\"Array\")(t)?e.imgs.map((e=>\"string\"==typeof e?{src:e}:function(e){return M(e)&&S(e.src)}(e)?e:void 0)).filter(L):S(e.imgs)?[{src:e.imgs}]:[];var t})),H=a((()=>{const e=O.value[x.value]?.src;return e})),F=a((()=>O.value[x.value]?.title)),N=a((()=>O.value[x.value]?.alt)),P=a((()=>({cursor:$.loadError?\"default\":e.moveDisabled?$.dragging?\"grabbing\":\"grab\":\"move\",top:`calc(50% + ${T.top}px)`,left:`calc(50% + ${T.left}px)`,transition:$.dragging||$.gesturing?\"none\":\"\",transform:`translate(-50%, -50%) scale(${T.scale}) rotate(${T.rotateDeg}deg)`}))),V=()=>{p(\"hide\")},Z=()=>{T.scale=1,T.lastScale=1,T.rotateDeg=0,T.top=0,T.left=0,$.loadError=!1,$.dragging=!1,$.loading=!0},q=(t,o)=>{const l=x.value;Z(),x.value=t,O.value[x.value]===O.value[t]&&i((()=>{$.loading=!1})),e.visible&&l!==t&&(o&&o(l,t),p(\"on-index-change\",l,t))},U=()=>{const t=x.value,o=e.loop?(t+1)%O.value.length:t+1;!e.loop&&o>O.value.length-1||q(o,((e,t)=>{p(\"on-next\",e,t),p(\"on-next-click\",e,t)}))},W=()=>{const t=x.value;let o=t-1;if(0===t){if(!e.loop)return;o=O.value.length-1}q(o,((e,t)=>{p(\"on-prev\",e,t),p(\"on-prev-click\",e,t)}))},G=e=>{Math.abs(1-e)<.05?e=1:Math.abs(h.maxScale-e)<.05&&(e=h.maxScale),T.lastScale=T.scale,T.scale=e},J=()=>{const t=T.scale+e.zoomScale;t{const t=T.scale-e.zoomScale;t>e.minZoom&&G(t)},Q=()=>{const e=T.rotateDeg%360;p(\"on-rotate\",Math.abs(e<0?e+360:e))},ee=()=>{T.rotateDeg-=90,Q()},te=()=>{T.rotateDeg+=90,Q()},oe=()=>{T.scale=1,T.top=0,T.left=0},le=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return!e.moveDisabled&&0===t},{onMouseDown:ne,onMouseMove:ae,onMouseUp:re}=((e,t,o)=>{let l,n=!1;return{onMouseDown:o=>{e.initX=e.lastX=o.clientX,e.initY=e.lastY=o.clientY,t.dragging=!0,n=!1,o.stopPropagation()},onMouseUp:e=>{o(e.button)&&R(l),t.dragging=!1,n=!1},onMouseMove:a=>{if(t.dragging)if(o(a.button)){if(n)return;n=!0,l=I((()=>{const{top:t,left:o,lastY:l,lastX:r}=e;e.top=t-l+a.clientY,e.left=o-r+a.clientX,e.lastX=a.clientX,e.lastY=a.clientY,n=!1}))}else e.lastX=a.clientX,e.lastY=a.clientY;a.stopPropagation()}}})(T,$,le),{onTouchStart:ie,onTouchMove:se,onTouchEnd:ce}=((e,t,o,l,n)=>{let a,r=!1;return{onTouchStart:e=>{const{touches:l}=e;l.length>1&&n()?(o.gesturing=!0,t.touches=l):(t.initX=t.lastX=l[0].clientX,t.initY=t.lastY=l[0].clientY,o.dragging=!0),e.stopPropagation()},onTouchMove:i=>{if(r)return;const{touches:s}=i,{lastX:c,lastY:u,left:d,top:p,scale:b}=t;if(!o.gesturing&&o.dragging){if(!s[0])return;const{clientX:e,clientY:o}=s[0];l()?a=I((()=>{t.lastX=e,t.lastY=o,t.top=p-u+o,t.left=d-c+e,r=!1})):(t.lastX=e,t.lastY=o)}else o.gesturing&&t.touches.length>1&&s.length>1&&n()&&(a=I((()=>{const o=(A(t.touches[0],t.touches[1])-A(s[0],s[1]))/e.width;t.touches=s;const l=b-1.3*o;l>.5&&l<1.5*e.maxScale&&(t.scale=l),r=!1})))},onTouchEnd:()=>{R(a),o.dragging=!1,o.gesturing=!1,r=!1}}})(h,T,$,le,(()=>!e.pinchDisabled)),ue=()=>{T.scale!==h.maxScale?(T.lastScale=T.scale,T.scale=h.maxScale):T.scale=T.lastScale},de=t=>{$.loadError||$.gesturing||$.loading||$.dragging||$.wheeling||!e.scrollDisabled||e.zoomDisabled||($.wheeling=!0,setTimeout((()=>{$.wheeling=!1}),80),t.deltaY<0?J():K())},pe=t=>{const o=t;e.visible&&(!e.escDisabled&&\"Escape\"===o.key&&e.visible&&V(),\"ArrowLeft\"===o.key&&(e.rtl?U():W()),\"ArrowRight\"===o.key&&(e.rtl?W():U()))},be=()=>{e.maskClosable&&V()},ve=()=>{w()},me=()=>{$.loading=!1},ge=e=>{$.loading=!1,$.loadError=!0,p(\"on-error\",e)},fe=()=>{e.visible&&w()};r((()=>e.index),(e=>{e<0||e>=O.value.length||q(e)})),r((()=>$.dragging),((t,o)=>{const l=!t&&o;if(!le()&&l){const t=T.lastX-T.initX,o=T.lastY-T.initY,l=e.swipeTolerance;Math.abs(t)>Math.abs(o)&&(t<-1*l?U():t>l&&W())}})),r((()=>e.visible),(t=>{if(t){Z();const t=O.value.length;if(0===t)return x.value=0,$.loading=!1,void i((()=>$.loadError=!0));x.value=e.index>=t?t-1:e.index<0?0:e.index,e.scrollDisabled&&he()}else e.scrollDisabled&&we()}));const he=()=>{document&&(_.value=document.body.style.overflowY,document.body.style.overflowY=\"hidden\")},we=()=>{document&&(document.body.style.overflowY=_.value)};s((()=>{y(document,\"keydown\",pe),y(window,\"resize\",fe)})),c((()=>{z(document,\"keydown\",pe),z(window,\"resize\",fe),we()}));const xe=()=>$.loading?v.loading?v.loading({key:\"loading\"}):t(Y,{key:\"img-loading\"},null):$.loadError?v.onerror?v.onerror({key:\"onerror\"}):t(B,{key:\"img-on-error\"},null):t(\"div\",{class:`${g}-img-wrapper`,style:P.value,key:\"img-wrapper\"},[t(\"img\",{alt:N.value,ref:m,draggable:\"false\",class:`${g}-img`,src:H.value,onMousedown:ne,onMouseup:re,onMousemove:ae,onTouchstart:ie,onTouchmove:se,onTouchend:ce,onLoad:ve,onDblclick:ue,onDragstart:e=>{e.preventDefault()}},null)]),ye=()=>{if(v[\"prev-btn\"])return v[\"prev-btn\"]({prev:W});if(O.value.length<=1)return;const o=!e.loop&&x.value<=0;return t(\"div\",{role:\"button\",\"aria-label\":\"previous image button\",class:\"btn__prev \"+(o?\"disable\":\"\"),onClick:W},[e.rtl?t(f,{type:\"next\"},null):t(f,{type:\"prev\"},null)])},ze=()=>{if(v[\"next-btn\"])return v[\"next-btn\"]({next:U});if(O.value.length<=1)return;const o=!e.loop&&x.value>=O.value.length-1;return t(\"div\",{role:\"button\",\"aria-label\":\"next image button\",class:\"btn__next \"+(o?\"disable\":\"\"),onClick:U},[e.rtl?t(f,{type:\"prev\"},null):t(f,{type:\"next\"},null)])},ke=()=>{if(F.value&&!e.titleDisabled&&!$.loading&&!$.loadError)return v.title?v.title():t(X,null,{default:()=>[F.value]})},_e=()=>{let o;if(e.visible)return t(\"div\",{onTouchmove:k,class:[`${g}-modal`,e.rtl?\"is-rtl\":\"\"],onClick:b(be,[\"self\"]),onWheel:de},[t(E,null,null),t(d,{name:`${g}-fade`,mode:\"out-in\"},j(o=xe())?o:{default:()=>[o]}),t(\"img\",{style:\"display:none;\",src:H.value,onError:ge,onLoad:me},null),t(\"div\",{class:`${g}-btns-wrapper`},[ye(),ze(),ke(),v[\"close-btn\"]?v[\"close-btn\"]({close:V}):t(\"div\",{role:\"button\",\"aria-label\":\"close image preview button\",class:\"btn__close\",onClick:V},[t(f,{type:\"close\"},null)]),v.toolbar?v.toolbar({toolbarMethods:{zoomIn:J,zoomOut:K,rotate:ee,rotateLeft:ee,rotateRight:te,resize:oe},zoomIn:J,zoomOut:K,rotate:ee,rotateLeft:ee,rotateRight:te,resize:oe}):t(C,{zoomIn:J,zoomOut:K,resize:oe,rotateLeft:ee,rotateRight:te,rotateDisabled:e.rotateDisabled,zoomDisabled:e.zoomDisabled},null)])])};return()=>{let o;if(e.teleport){let o;return t(u,{to:e.teleport},{default:()=>[t(d,{name:`${g}-fade`},j(o=_e())?o:{default:()=>[o]})]})}return t(d,{name:`${g}-fade`},j(o=_e())?o:{default:()=>[o]})}}});const F=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{imgs:\"\"};const{imgs:t=\"\",initIndex:o=0}=e,n=l(t),a=l(o),r=l(!1),i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.value;a.value=e};return{imgsRef:n,indexRef:a,visibleRef:r,show:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.value;\"number\"==typeof e?i(e):v(e)&&\"number\"==typeof e.value?i(e.value):e instanceof Event&&i(a.value),r.value=!0},onHide:()=>{r.value=!1},changeIndex:i}},N=Object.assign(H,{install:e=>{e.component(H.name,H)}});export{N as default,F as useEasyLightbox};\n","import { ref, computed, onMounted } from 'vue'\r\nimport deepClone from 'foundation/js/deepClone'\r\nimport VueEasyLightbox from 'vue-easy-lightbox'\r\nimport Glide from \"@glidejs/glide\"\r\n\r\nlet glide\r\n\r\nexport default {\r\n name: \"ImageGallery\",\r\n components: { VueEasyLightbox },\r\n props: {\r\n imgs: {\r\n type: Object,\r\n required: true\r\n },\r\n type: {\r\n type: String,\r\n required: false,\r\n default: \"Product\"\r\n }\r\n },\r\n setup(props) {\r\n\r\n const imgs = computed(() => props.imgs.imgs)\r\n const imgRatio = computed(() => props.type === \"Product\" ? \"5-4\" : \"2-3\")\r\n const visibleRef = ref(false)\r\n let indexRef = ref(0) // default 0\r\n const imgsRef = ref(imgs.value)\r\n const activeImg = ref(deepClone(imgs.value[0]))\r\n\r\n const mobileSlider = ref(window.innerWidth > 475 ? false : true)\r\n\r\n const onShow = () => {\r\n visibleRef.value = true\r\n }\r\n\r\n const showMultiple = () => {\r\n imgsRef.value = imgsRef.value\r\n\r\n let isActiveImg = (element) => element.src === activeImg.value.src\r\n let activeIndex = imgsRef.value.findIndex(isActiveImg)\r\n\r\n indexRef.value = activeIndex\r\n\r\n onShow()\r\n }\r\n\r\n const onHide = () => (visibleRef.value = false)\r\n\r\n const updateActiveImg = function (e) {\r\n activeImg.value.src = e.target.src\r\n activeImg.value.alt = e.target.alt\r\n }\r\n\r\n onMounted(() => {\r\n glide = new Glide('#imageGalleryGlideId', {\r\n perView: 1.15,\r\n gap: 15,\r\n peek: {\r\n after: 0,\r\n before: 0\r\n }\r\n })\r\n \r\n if (imgs.value.length > 1) {\r\n glide.mount()\r\n }\r\n\r\n window.addEventListener(\"resize\", () => {\r\n if (window.innerWidth > 475) {\r\n mobileSlider.value = false\r\n\r\n } else if (window.innerWidth <= 475) {\r\n mobileSlider.value = true\r\n\r\n if (imgs.value.length > 1) {\r\n glide.mount()\r\n }\r\n\r\n }\r\n })\r\n\r\n })\r\n\r\n return {\r\n visibleRef,\r\n indexRef,\r\n imgsRef,\r\n showMultiple,\r\n onHide,\r\n imgs,\r\n imgRatio,\r\n activeImg,\r\n mobileSlider,\r\n updateActiveImg\r\n }\r\n\r\n }\r\n}","import { render } from \"./ImageGallery.vue?vue&type=template&id=b37283c4\"\nimport script from \"./ImageGallery.vue?vue&type=script&lang=js\"\nexport * from \"./ImageGallery.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nexport default {\r\n name: 'TheHeader',\r\n setup() {\r\n const store = useStore()\r\n const startBurgermenu = function (e) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'BurgerMenu',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n const startSearchoverlay = function (e) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'SearchOverlay',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n const startDonationFlow = function (e) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'personalDonation',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n\r\n const showStafetRoundCounter = document.location.hash.indexOf('stafetTeamRoundCounter') !== -1\r\n const showDonationReceipt = document.location.hash.indexOf('personalDonationReceipt') !== -1\r\n const showStafetTeamSignupReceipt = document.location.hash.indexOf('stafetTeamSignupReceipt') !== -1\r\n const showStafetTeamCreationReceipt = document.location.hash.indexOf('stafetTeamCreationReceipt') !== -1\r\n const showStafetTeamUpdateReceipt = document.location.hash.indexOf('stafetTeamUpdateReceipt') !== -1\r\n const showCreateHold = document.location.hash.indexOf('createTeam') !== -1 \r\n const showProfileDeleted = document.location.hash.indexOf('profileDeleted') !== -1 \r\n const showChangesSaved = document.location.hash.indexOf('changesSaved') !== -1 \r\n const showProfileCreated = document.location.hash.indexOf('tilmeldProfilKvittering') !== -1 \r\n const showStafetDonationReceipt = document.location.hash.indexOf('donationReceiptOverlay') !== -1 \r\n const showDeleteCancerProfileModal = document.location.hash.indexOf('deleteCancerProfileModal') !== -1 \r\n const showDeletePostOverlay = document.location.hash.indexOf('DeletePostOverlay') !== -1\r\n const showDeleteCommentOverlay = document.location.hash.indexOf('DeleteCommentOverlay') !== -1\r\n const showDeleteEventModal = document.location.hash.indexOf('deleteEventModal') !== -1\r\n const showFrivilligeShopWrongRoleModal = document.location.hash.indexOf('frivilligeShopWrongRoleModal') !== -1\r\n const showCalendarOverlay = document.location.hash.indexOf('calendarOverlay') !== -1\r\n const showLoginOverlay = document.location.hash.indexOf('LoginOverlay') !== -1\r\n\r\n if (showDonationReceipt) {\r\n store.dispatch('fundraising/showReceipt')\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'personalDonation'\r\n })\r\n } else if (showStafetTeamSignupReceipt) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'tilmeldHoldKvittering'\r\n })\r\n } else if (showStafetTeamCreationReceipt) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'HoldOprettelseKvittering'\r\n })\r\n } else if (showStafetRoundCounter) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'HoldetsRoundCounterOverlay'\r\n })\r\n } else if (showStafetTeamUpdateReceipt){\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'HoldRedigerKvittering'\r\n })\r\n } else if (showCreateHold){\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'OpretHoldOverlay'\r\n })\r\n } else if (showProfileDeleted) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'ProfileDeleted'\r\n })\r\n } else if (showChangesSaved) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'ChangesSaved'\r\n })\r\n }\r\n else if (showProfileCreated) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'tilmeldProfilKvittering'\r\n })\r\n } \r\n else if (showStafetDonationReceipt) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'donationReceiptOverlay'\r\n })\r\n }\r\n else if (showDeleteCancerProfileModal) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'DeleteCancerProfileModal'\r\n })\r\n }\r\n else if (showDeletePostOverlay) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'DeletePostOverlay'\r\n })\r\n }\r\n else if (showDeleteCommentOverlay) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'DeleteCommentOverlay'\r\n })\r\n }\r\n else if (showDeleteEventModal) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'DeleteEventModal'\r\n })\r\n }\r\n else if (showFrivilligeShopWrongRoleModal) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'FrivilligeShopWrongRoleModal'\r\n })\r\n }\r\n else if (showCalendarOverlay) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'CalendarOverlay'\r\n })\r\n }\r\n else if (showLoginOverlay) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'LoginOverlay'\r\n })\r\n } \r\n\r\n return {\r\n startBurgermenu,\r\n startSearchoverlay,\r\n startDonationFlow\r\n }\r\n }\r\n}\r\n","import headerOptions from '../TheHeader/TheHeader.options'\r\n\r\nconst options = Object.assign({},headerOptions,{name: \"IndependentHeader\"})\r\nexport default options","import { createApp } from 'vue'\r\nimport options from './IndependentHeader.options'\r\n\r\nconst el = '.kb-component--independent-header'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n\r\n if(DOM){\r\n const template = DOM.innerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(el)\r\n }\r\n}\r\n\r\n","import Glide from '@glidejs/glide'\r\nimport getLabel from 'foundation/js/getLabel'\r\nimport { onMounted, ref } from 'vue'\r\n\r\nconst unifyCardHeight = function (root) {\r\n root.value.querySelectorAll('.glide__slide').forEach((slide) => {\r\n slide.style.height = `auto`\r\n })\r\n}\r\n\r\nexport default {\r\n name: 'InfoCarousel',\r\n setup() {\r\n const root = ref(null)\r\n const options = {\r\n type: 'slider',\r\n rewind: false,\r\n startAt: 0,\r\n perView: 1,\r\n gap: 32,\r\n peek: {\r\n after: 150,\r\n before: 0\r\n },\r\n breakpoints: {\r\n 768: {\r\n gap: 18,\r\n peek: {\r\n after: 54,\r\n before: 0\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n const glide = new Glide(root.value.parentNode, options)\r\n\r\n glide.mount()\r\n unifyCardHeight(root)\r\n\r\n root.value.parentNode.querySelectorAll('a').forEach((a) =>\r\n a.addEventListener('focus', function (event) {\r\n var el = event.target\r\n while (el && !el.hasAttribute('data-index')) {\r\n el = el.parentNode\r\n }\r\n\r\n var index = el?.attributes['data-index']?.value\r\n if (index) glide.go('=' + index)\r\n })\r\n )\r\n })\r\n\r\n return {\r\n getLabel,\r\n root\r\n }\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './InfoCarousel.options'\r\n\r\nconst el = '.kb-component--info-carousel'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((InfoCarouselDOM) => {\r\n if (InfoCarouselDOM.hasAttribute('data-v-app')) return false\r\n const template = InfoCarouselDOM.innerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(InfoCarouselDOM)\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { onMounted, ref, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"LoginOverlay\",\r\n props: {\r\n loginUrl: {\r\n type: String,\r\n required: true\r\n },\r\n createProfileUrl: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const loginUrl = computed(() => props.loginUrl ?? store.state.main.page_overlay_content_data.loginUrl)\r\n const createProfileUrl = computed(() => props.createProfileUrl ?? store.state.main.page_overlay_content_data.createProfileUrl)\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active\r\n\r\n const descriptionWrapper = ref(null)\r\n\r\n let first,\r\n last,\r\n close\r\n\r\n const decodeHtml = (htmlRaw) => {\r\n const txt = document.createElement('textarea')\r\n txt.innerHTML = htmlRaw\r\n return txt.value\r\n }\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n\r\n var descriptionRaw = getLabel('text')\r\n var descriptionHtml = decodeHtml(descriptionRaw)\r\n descriptionWrapper.value.innerHTML = descriptionHtml\r\n \r\n first = document.querySelector(\r\n '.kb-button[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-button[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n\r\n if (!gtmActive) return\r\n const orderId = new URLSearchParams(document.location.search).get(\r\n 'teamId'\r\n )\r\n })\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'LoginOverlay',\r\n labelKey\r\n })\r\n\r\n return {\r\n loginUrl,\r\n createProfileUrl,\r\n descriptionWrapper,\r\n decodeHtml,\r\n tabTrap,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./LoginOverlay.vue?vue&type=template&id=81d10c78\"\nimport script from \"./LoginOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./LoginOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed, ref } from 'vue'\r\nimport FormInputDropdown from \"../FormInputDropdown/FormInputDropdown\";\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\n\r\nexport default {\r\n name: \"LotteryForm\",\r\n props: {\r\n lotteryRounds : {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n components: {\r\n FormInputDropdown,\r\n FormInputTextField\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const getLabel = (labelKey, params) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'lotteryForm',\r\n labelKey,\r\n params\r\n })\r\n \r\n const lotteryDropdown = ref('')\r\n const controlNumber = ref('')\r\n const displayFormValidationError = ref(false)\r\n const displayLotteryTicketError = ref(false)\r\n\r\n const showSpinner = computed(() => store.state.lottery.submitting)\r\n const lotteryTicket = computed(() => store.state.lottery.lottery_ticket)\r\n const showResultPage = ref(false)\r\n const controlNumberValidationErrorLabel = computed(() => \r\n getLabel(displayLotteryTicketError ? 'validationMessage' : getLabel('controlNumberError')))\r\n const lotteryDropdownOptions = computed(() => props.lotteryRounds.map(r => {\r\n return {\r\n name: r.roundName,\r\n value: r.roundId\r\n }\r\n }))\r\n\r\n\r\n const validateFields = () => {\r\n return nonEmptyStringValidator(lotteryDropdown.value)\r\n && nonEmptyStringValidator(controlNumber.value)\r\n }\r\n\r\n const onSubmit = () => {\r\n displayLotteryTicketError.value = false\r\n\r\n if(!validateFields()){\r\n displayFormValidationError.value = true\r\n\r\n return\r\n }\r\n\r\n store.dispatch('lottery/getLotteryTicketResult', {\r\n roundNumber: lotteryDropdown.value,\r\n lotteryTicketId: controlNumber.value\r\n })\r\n .then((resp) => {\r\n showResultPage.value = true\r\n })\r\n .catch((_) =>{\r\n displayLotteryTicketError.value = true\r\n })\r\n }\r\n\r\n const clear = () => {\r\n displayFormValidationError.value = false\r\n controlNumber.value = ''\r\n lotteryDropdown.value = ''\r\n showResultPage.value = false\r\n\r\n store.commit('lottery/SET_LOTTERY_TICKET', undefined)\r\n }\r\n\r\n return {\r\n lotteryDropdown,\r\n controlNumber,\r\n displayFormValidationError,\r\n nonEmptyStringValidator,\r\n showSpinner,\r\n lotteryTicket,\r\n showResultPage,\r\n displayLotteryTicketError,\r\n controlNumberValidationErrorLabel,\r\n lotteryDropdownOptions,\r\n getLabel,\r\n onSubmit,\r\n clear\r\n }\r\n }\r\n}","import { render } from \"./LotteryForm.vue?vue&type=template&id=5c7a6aac\"\nimport script from \"./LotteryForm.vue?vue&type=script&lang=js\"\nexport * from \"./LotteryForm.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export default {\r\n name: 'MaterialCard',\r\n props: {\r\n data: {\r\n type: Object,\r\n required: true,\r\n default: {\r\n imageUrl: 'https://picsum.photos/500/700',\r\n title: 'Grundbog i små børns sorg Grundbog i små børns sorg Grundbog i små børns sorg Grundbog i små børns sorg',\r\n displayPrice: '139,-',\r\n url: 'https://www.dr.dk'\r\n }\r\n }\r\n },\r\n setup() {\r\n return {}\r\n }\r\n}\r\n","import { render } from \"./MaterialCard.vue?vue&type=template&id=2b3de732\"\nimport script from \"./MaterialCard.vue?vue&type=script&lang=js\"\nexport * from \"./MaterialCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { onMounted, computed, ref } from 'vue'\r\n\r\nexport default {\r\n name: 'MemberListOverlayFVL',\r\n props: {\r\n },\r\n setup() {\r\n const store = useStore()\r\n\r\n const groupId = computed(() => store.state.main.page_overlay_content_data.groupId)\r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n const members = computed(()=> store.state.frivillige.member_list_data)\r\n \r\n const skip = ref(0)\r\n const take = ref(10) \r\n\r\n const canMessage = ref(false)\r\n const canRemove = ref(false)\r\n\r\n const memberCount = computed(() => store.state.frivillige.member_list_data_total)\r\n\r\n const fetchGruppemedlemmer = function () {\r\n store.dispatch('frivillige/fetchGruppemedlemmerData', {\r\n pageId: store.state.main.page_id,\r\n groupId: groupId.value,\r\n skip: skip.value,\r\n take: take.value\r\n })\r\n .then(result => {\r\n canRemove.value = result.canRemoveMembers\r\n canMessage.value = result.canMessage\r\n })\r\n }\r\n\r\n const loadMore = function(){\r\n skip.value = take.value\r\n take.value = (take.value + skip.value)\r\n fetchGruppemedlemmer()\r\n }\r\n\r\n onMounted(fetchGruppemedlemmer)\r\n\r\n const toggleAccordion = function (e) {\r\n const isExpanded = !!(\r\n e.currentTarget.getAttribute('aria-expanded') === 'true'\r\n )\r\n const accordionTarget = document.querySelector(\r\n `#${e.currentTarget.getAttribute('aria-controls')}`\r\n )\r\n const chevronTarget = e.currentTarget.querySelector(\r\n '.kb-member-list-overlay__member-chevron'\r\n )\r\n\r\n chevronTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-member-list-overlay__member-chevron--open'\r\n )\r\n accordionTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-member-list-overlay__content--open'\r\n )\r\n e.currentTarget.setAttribute(\r\n 'aria-expanded',\r\n isExpanded ? 'false' : 'true'\r\n )\r\n\r\n accordionTarget.querySelectorAll('a').forEach((a) => {\r\n if (isExpanded) {\r\n a.setAttribute('tabindex', -1)\r\n } else {\r\n a.removeAttribute('tabindex')\r\n }\r\n })\r\n }\r\n\r\n const getLabel = (labelKey, strings) => {\r\n let label = store.getters['labels/getLabel']({\r\n labelCollection: 'MemberListOverlayFVL',\r\n labelKey\r\n })\r\n\r\n if (strings) {\r\n strings.forEach((str, index) => {\r\n label = label.replace(`{${index}}`, str)\r\n })\r\n }\r\n\r\n return label\r\n }\r\n\r\n const handleRemoveMember = async (frivilligprofilId) => {\r\n const config = {\r\n groupId: groupId.value, \r\n frivilligprofilId: frivilligprofilId\r\n }\r\n await store.dispatch(\"frivillige/removeMember\",config);\r\n store.dispatch('main/closePageOverlay')\r\n };\r\n\r\n const getRolleText = (roller) => {\r\n return roller\r\n .map(r => {\r\n return r.gruppeName == undefined\r\n ? `${r.rolleName}`\r\n : `${r.rolleName} - ${r.gruppeName}`\r\n })\r\n .join(', ')\r\n }\r\n\r\n return {\r\n members,\r\n memberCount,\r\n isSubmitting,\r\n canRemove,\r\n canMessage,\r\n toggleAccordion,\r\n handleRemoveMember,\r\n getLabel,\r\n fetchGruppemedlemmer,\r\n loadMore,\r\n getRolleText\r\n }\r\n }\r\n}","import { render } from \"./MemberListOverlayFVL.vue?vue&type=template&id=0df7a4b3\"\nimport script from \"./MemberListOverlayFVL.vue?vue&type=script&lang=js\"\nexport * from \"./MemberListOverlayFVL.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { onMounted,computed } from 'vue'\r\n\r\nexport default {\r\n name: \"MemberOverlay\",\r\n\r\n setup(){\r\n const store = useStore()\r\n\r\n const isSubmitting = computed(()=> store.state.forum.is_submitting)\r\n const userId = computed(()=> store.state.main.page_overlay_content_data.userId)\r\n\r\n const memberData = computed(()=>{\r\n return store.state.forum.member_data\r\n })\r\n\r\n onMounted(() => {\r\n store.dispatch('forum/getMemberData', { userId: userId.value })\r\n })\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"MemberOverlay\",\r\n labelKey,\r\n });\r\n \r\n return {\r\n memberData,\r\n isSubmitting,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./MemberOverlay.vue?vue&type=template&id=677cb3a0\"\nimport script from \"./MemberOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./MemberOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { onMounted,computed, ref } from 'vue'\r\n\r\nexport default {\r\n name: \"MemberOverlayProfileCard\",\r\n setup(){\r\n const store = useStore()\r\n\r\n const isSubmitting = computed(()=> store.state.frivilligprofil.is_submitting)\r\n const userProfileId = computed(() => store.state.main.page_overlay_content_data.userId)\r\n\r\n const memberData = computed(()=>{\r\n return store.state.frivilligprofil.member_data\r\n })\r\n\r\n const memberDataFetched = ref(false);\r\n\r\n onMounted(() => {\r\n store.dispatch('frivilligprofil/fetchMemberData', {\r\n pageId: store.state.main.page_id,\r\n userProfileId: userProfileId.value\r\n }).then(() => \r\n memberDataFetched.value = true\r\n )\r\n })\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"MemberOverlayProfileCard\",\r\n labelKey: labelKey,\r\n });\r\n \r\n return {\r\n memberDataFetched,\r\n memberData,\r\n isSubmitting,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./MemberOverlayProfileCard.vue?vue&type=template&id=28a742b6\"\nimport script from \"./MemberOverlayProfileCard.vue?vue&type=script&lang=js\"\nexport * from \"./MemberOverlayProfileCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: \"MitIdLogout\",\r\n setup(){\r\n const store = useStore()\r\n\r\n const logout = () => {\r\n store.dispatch('mitid/logout')\r\n .then((_) => {\r\n window.location.reload()\r\n })\r\n }\r\n\r\n return {\r\n logout\r\n }\r\n }\r\n}","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed, ref, onBeforeMount} from 'vue'\r\n\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\nimport FormInputDropdown from \"../FormInputDropdown/FormInputDropdown\";\r\n\r\nexport default {\r\n name: \"MoveFileOverlay\",\r\n components: {\r\n FormInputDropdown\r\n },\r\n setup(){\r\n const store = useStore()\r\n\r\n const overlayMode = computed(()=> store.state.frivillige.active_overlay_mode)\r\n\r\n onBeforeMount(() => {\r\n store.dispatch('frivillige/getFolderDropdownOptions')\r\n })\r\n\r\n const activeFileName = computed(()=> store.state.frivillige.active_file_name)\r\n const activeFolderName = computed(()=> store.state.frivillige.active_folder_name)\r\n const activeName = computed(()=> overlayMode === 'Dokument' ? activeFileName.value : activeFolderName.value)\r\n\r\n const folderDropdown = ref()\r\n const folderDropdownOptions = computed(()=> store.state.frivillige.folder_dropdown_options)\r\n\r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n\r\n let displayError = ref(false)\r\n\r\n const isFormValid = () => {\r\n return nonEmptyStringValidator(folderDropdown.value)\r\n };\r\n\r\n const submitMoveFile = () => {\r\n const isValid = isFormValid();\r\n displayError.value = !isValid;\r\n\r\n if (isValid) {\r\n store.dispatch(\"frivillige/submitMoveFileOrFolder\", {\r\n mappeKode: folderDropdown.value\r\n })\r\n .then(() => {\r\n store.dispatch('main/closePageOverlay')\r\n store.dispatch('search/refreshSearches')\r\n });\r\n }\r\n };\r\n const determineLabelCollection = function() {\r\n if(overlayMode.value === \"Dokument\") {\r\n return \"MoveFileOverlay\"\r\n } else if (overlayMode.value === \"Mappe\"){\r\n return \"MoveFolderOverlay\"\r\n } \r\n }\r\n\r\n const getLabel = (labelKey, replacements) => {\r\n let label = store.getters['labels/getLabel']({ labelCollection: determineLabelCollection(), labelKey: labelKey })\r\n if (replacements) {\r\n replacements.forEach((replacement, index) => {\r\n label = label.replace(`{${index}}`, replacement)\r\n })\r\n }\r\n return label\r\n }\r\n\r\n return {\r\n getLabel,\r\n submitMoveFile,\r\n nonEmptyStringValidator,\r\n activeName,\r\n folderDropdown,\r\n folderDropdownOptions,\r\n isSubmitting\r\n }\r\n }\r\n}","import { render } from \"./MoveFileOverlay.vue?vue&type=template&id=ea984fa4\"\nimport script from \"./MoveFileOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./MoveFileOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed } from 'vue'\r\nimport {useStore} from 'vuex'\r\n\r\nexport default {\r\n name: \"NoSearchResults\",\r\n props: {\r\n guids: {\r\n type: Array,\r\n required: true\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({ labelCollection: \"noResults\", labelKey: labelKey })\r\n \r\n const totalCount = computed(() => {\r\n return props.guids.reduce((sum, guid) => sum + store.state.search.scoped_total[guid], 0)\r\n })\r\n\r\n\r\n return {\r\n totalCount,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./NoSearchResults.vue?vue&type=template&id=03bcfe96\"\nimport script from \"./NoSearchResults.vue?vue&type=script&lang=js\"\nexport * from \"./NoSearchResults.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onMounted } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport getLabelFromStore from '../../foundation/js/getLabel'\r\n\r\nexport default {\r\n name: \"NotificationList\",\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n skip: {\r\n type: Number,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n default: 10\r\n }\r\n },\r\n setup(props) { \r\n const store = useStore()\r\n\r\n const notifications = computed(() => store.state.search.results[props.guid] ?? [])\r\n const totalNumberOfNotifications = computed(() => store.state.search.scoped_total[props.guid] ?? 0)\r\n const showSpinner = computed(() => store.state.search.search_inprogress[props.guid])\r\n\r\n onMounted(() => {\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: process.env.GET_FORUM_NOTIFICATIONS\r\n })\r\n \r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: '',\r\n skip: props.skip,\r\n take: props.take\r\n })\r\n })\r\n\r\n const getLabel = (key, strings) => {\r\n let label = getLabelFromStore({\r\n labelKey: key,\r\n labelCollection: 'notificationList'\r\n })\r\n\r\n if (strings) {\r\n strings.forEach((str, index) => {\r\n label = label.replace(`{${index}}`, str)\r\n })\r\n }\r\n\r\n return label\r\n }\r\n\r\n const getMoreNotifications = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n const rejectNotification = (notificationId) => {\r\n store.dispatch('forum/rejectNotification', { notificationId: notificationId, callback: updateList})\r\n }\r\n\r\n const approveNotification = (notificationId) => {\r\n store.dispatch('forum/approveNotification', { notificationId: notificationId, callback: updateList})\r\n }\r\n\r\n const updateList = () => {\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n guery: '',\r\n skip: 0,\r\n take: notifications.value.length \r\n })\r\n }\r\n\r\n return {\r\n notifications,\r\n totalNumberOfNotifications,\r\n showSpinner,\r\n getMoreNotifications,\r\n getLabel,\r\n rejectNotification,\r\n approveNotification\r\n }\r\n }\r\n}","import { render } from \"./NotificationList.vue?vue&type=template&id=1c4c1ac2\"\nimport script from \"./NotificationList.vue?vue&type=script&lang=js\"\nexport * from \"./NotificationList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, ref, computed, onUpdated } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"OpretHoldOverlay\",\r\n props: {\r\n createHoldUrl: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active\r\n\r\n const createHoldUrl = computed(() => props.createHoldUrl ?? store.state.main.page_overlay_content_data.createHoldUrl)\r\n const reactivateHoldUrl = computed(() => `${createHoldUrl.value}?previous-holdkode=${selectedPreviousTeam.value}`)\r\n\r\n const selectedPreviousTeam = ref(null)\r\n\r\n const previousTeams = computed(()=> {\r\n const teamlist = store.state.stafet.previousTeams\r\n return (Array.isArray(teamlist)) \r\n ? teamlist\r\n : null\r\n })\r\n\r\n const showSpinner = computed(()=>previousTeams.value === null)\r\n\r\n let first,\r\n last,\r\n close\r\n \r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n const handleCreateTeam = function(){\r\n location.href = createHoldUrl.value\r\n }\r\n\r\n const handleReactivateTeam = function(){\r\n location.href = reactivateHoldUrl.value\r\n }\r\n\r\n onMounted(() => {\r\n store.dispatch('stafet/getPreviousTeams')\r\n first = document.querySelector(\r\n '[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n if(first){\r\n first.focus()\r\n } else {\r\n close.focus()\r\n }\r\n \r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n onUpdated(()=>{\r\n first = document.querySelector(\r\n '[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '[data-order=\"last\"]'\r\n )\r\n\r\n selectedPreviousTeam.value = !selectedPreviousTeam.value \r\n ? selectedPreviousTeam.value = previousTeams.value[0].id\r\n : selectedPreviousTeam.value\r\n })\r\n\r\n return {\r\n handleCreateTeam,\r\n handleReactivateTeam,\r\n tabTrap,\r\n previousTeams,\r\n showSpinner,\r\n selectedPreviousTeam,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'OpretHoldOverlay',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./OpretHoldOverlay.vue?vue&type=template&id=742b3720\"\nimport script from \"./OpretHoldOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./OpretHoldOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\n\r\nexport default {\r\n name: \"OrdreOverview\",\r\n props: {\r\n orders: {\r\n type: Object,\r\n required: true\r\n },\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n \r\n const results = computed(() => {\r\n return props.orders\r\n })\r\n\r\n return {\r\n results,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'OrdreOverview' })\r\n }\r\n\r\n }\r\n}","import { render } from \"./OrdreOverview.vue?vue&type=template&id=28ee00d4\"\nimport script from \"./OrdreOverview.vue?vue&type=script&lang=js\"\nexport * from \"./OrdreOverview.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","import { render } from \"./SubNavProfile.vue?vue&type=template&id=6592b596\"\nimport script from \"./SubNavProfile.vue?vue&type=script&lang=js\"\nexport * from \"./SubNavProfile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import SubNavigationMobile from './childComponents/SubNavigationMobile'\r\nimport SubNavProfile from './childComponents/SubNavProfile'\r\nimport {ref, onBeforeMount, computed} from 'vue'\r\nimport addScrollCallback from \"../../foundation/js/addScrollCallback\";\r\nimport { useStore } from 'vuex';\r\n\r\n\r\nexport default {\r\n name: \"SubNavigation\",\r\n components: {SubNavigationMobile, SubNavProfile},\r\n props: {\r\n userData: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const mobileMenuOpen = ref(false)\r\n\r\n const overlay = document.createElement('div')\r\n overlay.classList.add(\r\n 'kb-page-overlay__cover',\r\n 'kb-page-overlay--subnavigation'\r\n )\r\n\r\n let bodysize = 0\r\n const toggleMobileMenu = function (e,originalTrigger) {\r\n mobileMenuOpen.value = !mobileMenuOpen.value\r\n overlay.classList.toggle('kb-page-overlay--subnavigation--visible')\r\n\r\n // move focus to original trigger button on the page\r\n if(!mobileMenuOpen.value){\r\n if(originalTrigger){\r\n originalTrigger.focus()\r\n }\r\n }\r\n \r\n // close the mobilemenu when the screen resizes\r\n // this to prevent the menu from staying open if the screen resizes to desktop\r\n const overlayElement = document.body\r\n const resizeObserver = new ResizeObserver((entry) => {\r\n if(!bodysize){\r\n bodysize = entry[0].contentRect.width\r\n } else {\r\n bodysize = 0\r\n mobileMenuOpen.value = false\r\n overlay.classList.remove('kb-page-overlay--subnavigation--visible')\r\n resizeObserver.unobserve(overlayElement)\r\n }\r\n\r\n })\r\n resizeObserver.observe(overlayElement);\r\n }\r\n\r\n const smallScreensStickyControls = function () {\r\n const oldScrollY = ref(0)\r\n const subNav = document.querySelector('.kb-sub-navigation')\r\n\r\n const showClass = 'kb-sub-navigation--mobile-sticky'\r\n\r\n addScrollCallback(() => {\r\n const direction =\r\n window.scrollY - oldScrollY.value > 0 ? 'down' : 'up'\r\n oldScrollY.value = window.scrollY\r\n const scrolledOverViewportHeight = window.pageYOffset > 250 // window.innerHeight\r\n\r\n //show subnav when scrolling up once we are past a certain threshold\r\n if (direction === 'up' && scrolledOverViewportHeight) {\r\n // show sticky\r\n // remove hide nav above wrapper to animate in\r\n subNav.classList.add(showClass)\r\n } else {\r\n if (subNav.classList.contains(showClass)) {\r\n subNav.classList.remove(showClass)\r\n }\r\n }\r\n\r\n return false\r\n })\r\n }\r\n\r\n overlay.addEventListener('click', toggleMobileMenu)\r\n\r\n onBeforeMount(() => {\r\n document.documentElement.classList.add('kb-has-subnav')\r\n document.body.appendChild(overlay)\r\n smallScreensStickyControls()\r\n store.dispatch('main/setUserData', props.userData)\r\n })\r\n\r\n return {\r\n toggleMobileMenu,\r\n mobileMenuOpen\r\n }\r\n }\r\n}\r\n","import { render } from \"./SubNavigationMobile.vue?vue&type=template&id=3f54b688\"\nimport script from \"./SubNavigationMobile.vue?vue&type=script&lang=js\"\nexport * from \"./SubNavigationMobile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport options from './SubNavigation.options'\r\n\r\nconst el = '.kb-component--sub-navigation'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (!DOM || DOM.hasAttribute('data-v-app')) return\r\n\r\n const generalLink = {\r\n href: DOM.querySelector(':scope > A')?.href,\r\n displayName: DOM.querySelector(':scope > A')?.innerText\r\n }\r\n\r\n const subLinks = Array.from(DOM.querySelectorAll(':scope > UL A')).map(\r\n (link) => {\r\n return {\r\n href: link?.href,\r\n displayName: link?.innerText,\r\n ariaCurrent: link?.ariaCurrent\r\n }\r\n }\r\n )\r\n\r\n Store.commit('main/set_sub_navigation_links', { generalLink, subLinks })\r\n const props = {\r\n userData: DOM.dataset.userData ? JSON.parse(DOM.dataset.userData) : null\r\n }\r\n const component = createApp(options, props).use(Store)\r\n\r\n const template = DOM.outerHTML\r\n options.template = template\r\n component.mount(el)\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './TheHeader.options'\r\n\r\nconst el = '.kb-component--the-header'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (DOM && !DOM.hasAttribute('data-v-app')) {\r\n const component = createApp(options).use(Store)\r\n\r\n const donateButton = DOM.querySelector('.kb-js--donate-button')\r\n const donationSettings = donateButton?.dataset.donationSettings\r\n if (donationSettings)\r\n Store.commit(\r\n 'fundraising/set_donation_settings',\r\n JSON.parse(donationSettings)\r\n )\r\n\r\n const template = DOM.outerHTML\r\n options.template = template\r\n component.mount(el)\r\n }\r\n}\r\n","import onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\nimport pageOverlayOpeningCallback from 'foundation/js/pageOverlayOpeningCallback'\r\nimport pageOverlayClosingCallback from 'foundation/js/pageOverlayClosingCallback'\r\n\r\nimport componentsToInititalize from './OverlayComponents.init'\r\n\r\nconst el = '.kb-component--overlay-link-interceptor'\r\nconst DOM = document.querySelector(el)\r\nconst overlayLinksEl = '[content-type=overlaylinks]'\r\n\r\nconst isVisible = function (element) {\r\n if (\r\n window.getComputedStyle(element).getPropertyValue('visibility') ===\r\n 'hidden'\r\n ) {\r\n return false\r\n }\r\n if (\r\n window.getComputedStyle(element).getPropertyValue('display') === 'none'\r\n ) {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nconst getLastAnchor = function (overlay) {\r\n let last = undefined\r\n Array.from(overlay.querySelectorAll('a')).map((elem) => {\r\n let lastNotFound = true\r\n if (isVisible(elem) && lastNotFound) {\r\n elem.dataset.order = 'last'\r\n lastNotFound = false\r\n last = elem\r\n }\r\n })\r\n return last\r\n}\r\n\r\nconst getFirstAnchor = function (overlay) {\r\n let first = undefined\r\n Array.from(overlay.querySelectorAll('a'))\r\n .toReversed()\r\n .map((elem) => {\r\n let firstNotFound = true\r\n if (isVisible(elem) && firstNotFound) {\r\n elem.dataset.order = 'first'\r\n firstNotFound = false\r\n first = elem\r\n }\r\n })\r\n return first\r\n}\r\n\r\nexport default function (Store) {\r\n if (!DOM || DOM.hasAttribute('data-v-app')) return\r\n\r\n const openArticleOverlay = function (overlay, content) {\r\n overlay.querySelector('.kb-article-overlay--target').innerHTML = content\r\n overlay.querySelector('.kb-article-overlay--target').scrollTop = 0 // scroll should be reset inside overlay\r\n\r\n const last = getLastAnchor(overlay)\r\n const first = getFirstAnchor(overlay)\r\n\r\n last.addEventListener('keydown', (e) => {\r\n if (!e.shiftKey) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n })\r\n\r\n first.addEventListener('keydown', (e) => {\r\n if (e.shiftKey) {\r\n e.preventDefault()\r\n last.focus()\r\n }\r\n })\r\n\r\n componentsToInititalize(Store)\r\n overlay\r\n .querySelector('.kb-page-overlay__container')\r\n .classList.add('open')\r\n Store.commit('main/set_article_overlay_open', true)\r\n onTransitionendCallback({\r\n opening() {\r\n pageOverlayOpeningCallback()\r\n overlay.querySelector('.kb-page-overlay__close').focus()\r\n },\r\n statePropName: 'article_overlay_open',\r\n parent: overlay\r\n })\r\n }\r\n\r\n const closeArticleOverlay = function (overlay) {\r\n overlay\r\n .querySelector('.kb-page-overlay__container')\r\n .classList.remove('open')\r\n overlay\r\n .querySelector('.kb-page-overlay__container')\r\n .classList.add('closed')\r\n Store.commit('main/set_article_overlay_open', false)\r\n onTransitionendCallback({\r\n closing() {\r\n overlay\r\n .querySelector('.kb-page-overlay__container')\r\n .classList.remove('closed')\r\n overlay\r\n .querySelector('.kb-page-overlay__container')\r\n .classList.add('ready')\r\n pageOverlayClosingCallback()\r\n },\r\n statePropName: 'article_overlay_open',\r\n parent: overlay\r\n })\r\n }\r\n\r\n const overlay = document.createElement('div')\r\n overlay.classList.add('kb-page-overlay')\r\n overlay.innerHTML =\r\n '
    '\r\n overlay\r\n .querySelector('.kb-page-overlay__close')\r\n .addEventListener('click', closeArticleOverlay.bind(this, overlay))\r\n overlay\r\n .querySelector('.kb-page-overlay__cover')\r\n .addEventListener('click', closeArticleOverlay.bind(this, overlay))\r\n overlay\r\n .querySelector('.kb-page-overlay__container')\r\n .addEventListener('keydown', (e) => {\r\n if (e.key === 'Escape') closeArticleOverlay(overlay)\r\n })\r\n\r\n const clickHandler = function (e) {\r\n e.preventDefault()\r\n var href = process.env.ARTICLEOVERLAY_DATA\r\n ? process.env.ARTICLEOVERLAY_DATA\r\n : e.target.getAttribute('href')\r\n\r\n if (!href) {\r\n href = e.target.closest('a').getAttribute('href')\r\n }\r\n\r\n Store.dispatch('main/getArticleOverlayContent', href).then(\r\n (content) => {\r\n openArticleOverlay(overlay, content)\r\n }\r\n )\r\n }\r\n\r\n if (DOM && document.querySelector(overlayLinksEl)) {\r\n const DOM_LINKS = document.querySelector(overlayLinksEl)\r\n const overlayLinks = JSON.parse(DOM_LINKS.textContent)\r\n if (!document.body.contains(overlay)) document.body.appendChild(overlay)\r\n\r\n overlayLinks.forEach((element) => {\r\n // Add data-overlay-link attribute to all links to given element, that are inside rich text blocks\r\n const richTextElements = document.querySelectorAll('.kb-rich-text')\r\n\r\n richTextElements.forEach((richTextElement) => {\r\n richTextElement\r\n .querySelectorAll(`a[href='${element}']`)\r\n .forEach((link) =>\r\n link.setAttribute('data-overlay-link', true)\r\n )\r\n })\r\n })\r\n\r\n document\r\n .querySelectorAll('[data-overlay-link]')\r\n .forEach((link) => link.addEventListener('click', clickHandler))\r\n }\r\n}\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./PrimaryLink.vue?vue&type=template&id=34420b7a\"\nimport script from \"./PrimaryLink.vue?vue&type=script&lang=js\"\nexport * from \"./PrimaryLink.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import {useStore} from 'vuex'\r\nimport {computed,onMounted,nextTick} from 'vue'\r\nimport PrimaryLink from './subcomponents/PrimaryLink'\r\nimport SecondaryLink from './subcomponents/SecondaryLink'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\nimport GetLabel from 'foundation/js/getLabel'\r\n\r\nexport default {\r\n name: \"BurgerMenu\",\r\n components: {PrimaryLink,SecondaryLink},\r\n setup(){\r\n const store = useStore()\r\n\r\n const linkData = computed(()=>store.state.main.burger_menu_links)\r\n\r\n let first,last,close,\r\n showFunctionalButtons = false\r\n\r\n let isSimple = document.querySelector('nav.kb-component--burger-menu')?.hasAttribute('is-simple')\r\n let isIndependent = document.querySelector('body').classList.contains('kb-independent-site')\r\n let showReturnLink = document.querySelector('nav.kb-component--burger-menu')?.hasAttribute('show-return-link')\r\n\r\n const primaryLinkFirstLast = (linkindex)=>{\r\n const hasSecondaryLinks = !!linkData.value.secondary.length\r\n if(linkindex === 0) return 'first'\r\n if(!hasSecondaryLinks && (linkindex === (linkData.value.primary.length-1))) return 'last'\r\n return linkindex\r\n }\r\n\r\n const tabTrap = function(e){ \r\n if(e.shiftKey && e.target.dataset.order === 'first'){\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if(!e.shiftKey && e.target.dataset.order === 'last'){\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n \r\n if(!e.shiftKey && !e.target.dataset.order){\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(()=>{\r\n first = document.querySelector('.kb-burger-menu__link[data-order=\"first\"]')\r\n last = document.querySelector('.kb-burger-menu__link[data-order=\"last\"]')\r\n close = document.querySelector('.kb-page-overlay__close')\r\n\r\n onTransitionendCallback({\r\n opening(){\r\n first.focus()\r\n }\r\n }, { persistent: true })\r\n })\r\n\r\n return {\r\n linkData,\r\n tabTrap,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'burgerMenu' }),\r\n showFunctionalButtons,\r\n isSimple,\r\n isIndependent,\r\n showReturnLink,\r\n primaryLinkFirstLast\r\n }\r\n \r\n }\r\n}","import { render } from \"./SecondaryLink.vue?vue&type=template&id=7d5b785c\"\nimport script from \"./SecondaryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SecondaryLink.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./BurgerMenu.vue?vue&type=template&id=0fc4c723\"\nimport script from \"./BurgerMenu.vue?vue&type=script&lang=js\"\nexport * from \"./BurgerMenu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import GetLabel from 'foundation/js/getLabel'\r\nimport debounce from 'foundation/js/debounce'\r\nimport { useStore } from 'vuex'\r\nimport { computed, onMounted, ref } from 'vue'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\nexport default {\r\n name: 'SearchOverlay',\r\n setup() {\r\n let first, last, close\r\n\r\n const store = useStore()\r\n const results = computed(\r\n () => store.state.search.autocomplete_result?.entries ?? []\r\n )\r\n const showSpinner = computed(\r\n () => store.state.search.autocomplete_inprogress\r\n )\r\n\r\n const inputText = ref('')\r\n const termInput = debounce(() => {\r\n store.dispatch('search/getAutocomplete', {\r\n query: inputText.value\r\n })\r\n }, 500)\r\n\r\n const tabTrap = function (e) {\r\n if (!results.value.length) {\r\n e.preventDefault()\r\n close.focus()\r\n return false\r\n }\r\n\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n last.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n const searchPageUrl = function (query) {\r\n return store.state.search.search_page_redirecturl + '?q=' + query\r\n }\r\n\r\n const redirectToSearchPage = function () {\r\n location.href = searchPageUrl(inputText.value)\r\n }\r\n\r\n onMounted(() => {\r\n store.dispatch('search/initAutocomplete')\r\n first = document.querySelector(\r\n '.kb-search-overlay [data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-search-overlay__result[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'searchOverlay' }),\r\n redirectToSearchPage,\r\n searchPageUrl,\r\n results,\r\n showSpinner,\r\n termInput,\r\n tabTrap,\r\n inputText\r\n }\r\n }\r\n}\r\n","import { render } from \"./SearchOverlay.vue?vue&type=template&id=335a39f4\"\nimport script from \"./SearchOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./SearchOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n
    \r\n Vis resultater ({{ totalResultCount }})\r\n
    \r\n \r\n\r\n","import { useStore } from 'vuex'\r\nimport { onMounted, computed } from 'vue'\r\nimport GetLabel from 'foundation/js/getLabel'\r\nimport debounce from 'foundation/js/debounce'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: 'FilterOverlay',\r\n setup() {\r\n const store = useStore()\r\n const guids = computed(() => store.state.search.filter_overlay_scopes)\r\n const totalResultCount = computed(() => {\r\n return guids.value.reduce(\r\n (sum, guid) => sum + store.state.search.scoped_total[guid],\r\n 0\r\n )\r\n })\r\n\r\n const toggleAccordion = function (e) {\r\n const isExpanded = !!(\r\n e.currentTarget.getAttribute('aria-expanded') === 'true'\r\n )\r\n const accordionTarget = document.querySelector(\r\n '#' + e.currentTarget.getAttribute('aria-controls')\r\n )\r\n const chevronTarget = e.currentTarget.querySelector(\r\n '.kb-accordion__question__chevron'\r\n )\r\n\r\n chevronTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-accordion__question__chevron--open'\r\n )\r\n accordionTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-accordion__answer--open'\r\n )\r\n e.currentTarget.setAttribute(\r\n 'aria-expanded',\r\n isExpanded ? 'false' : 'true'\r\n )\r\n }\r\n\r\n const filterResults = (facet) => {\r\n guids.value.forEach((guid) => {\r\n store.dispatch('search/performSearch', {\r\n guid: guid,\r\n query: inputText.value,\r\n facet\r\n })\r\n })\r\n }\r\n\r\n const inputText = computed({\r\n get: () => store.state.search.queries[guids.value[0]] ?? '',\r\n set: (v) =>\r\n store.dispatch('search/setSearchQuery', {\r\n guid: guids.value[0],\r\n query: v\r\n })\r\n })\r\n const termInput = debounce(() => {\r\n guids.value.forEach((guid) => {\r\n store.dispatch('search/performSearch', {\r\n guid: guid,\r\n query: inputText.value\r\n })\r\n })\r\n }, 500)\r\n\r\n const closeOverlay = function (e) {\r\n store.dispatch('main/closePageOverlay')\r\n e.preventDefault()\r\n }\r\n\r\n const facetGroups = computed(\r\n () => store.getters['search/getFacets'](guids.value[0]) ?? []\r\n )\r\n\r\n let first, close, last\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n last.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n close = document.querySelector('.kb-page-overlay__close')\r\n first = document.querySelector('input[data-order=\"first\"]')\r\n last = document.querySelector('input[data-order=\"last\"]')\r\n last = last ? last : close\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n facetGroups,\r\n filterResults,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'filterOverlay' }),\r\n inputText,\r\n closeOverlay,\r\n termInput,\r\n toggleAccordion,\r\n totalResultCount,\r\n tabTrap\r\n }\r\n }\r\n}\r\n","import { render } from \"./FilterOverlay.vue?vue&type=template&id=8eb764d4\"\nimport script from \"./FilterOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./FilterOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onMounted } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: 'ArticleOverlay',\r\n setup() {\r\n const store = useStore()\r\n const html = computed(() => {\r\n return store.state.main.article_overlay_data\r\n })\r\n\r\n onMounted(() => {\r\n const closeButton = document.querySelector(\r\n '.kb-page-overlay__close'\r\n )\r\n onTransitionendCallback({\r\n opening() {\r\n closeButton.focus()\r\n }\r\n })\r\n })\r\n\r\n return { html }\r\n }\r\n}\r\n","import { render } from \"./ArticleOverlay.vue?vue&type=template&id=7a1c3810\"\nimport script from \"./ArticleOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./ArticleOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import { computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport getLabel from 'foundation/js/getLabel'\r\n\r\nexport default {\r\n name: 'SuccessPage',\r\n setup() {\r\n const store = useStore()\r\n\r\n const pageOverlayContentData = computed(() => {\r\n const data = store.state.main.page_overlay_content_data\r\n if (data === null) {\r\n throw Error('Overlay content data was not set')\r\n }\r\n return data\r\n })\r\n\r\n const succesButtonData = pageOverlayContentData.value.successButtonData\r\n\r\n return {\r\n getLabel,\r\n succesButtonData\r\n }\r\n }\r\n}\r\n","import { render } from \"./SuccessPage.vue?vue&type=template&id=3c1db568\"\nimport script from \"./SuccessPage.vue?vue&type=script&lang=js\"\nexport * from \"./SuccessPage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref, computed, onMounted } from 'vue'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport phoneValidator from '../../foundation/js/inputValidators/phoneValidator'\r\nimport nameValidator from '../../foundation/js/inputValidators/nameValidator'\r\nimport { useStore } from 'vuex'\r\nimport SuccessPage from '../SuccessPage/SuccessPage.vue'\r\nimport getLabel from 'foundation/js/getLabel'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: 'SignUpForm',\r\n components: {\r\n SuccessPage\r\n },\r\n setup() {\r\n const store = useStore()\r\n const unSubmitted = ref(true)\r\n const showReceipt = computed(() => {\r\n return store.state.events.signUpCompleteShowReceipt\r\n })\r\n const isSubmitting = computed(() => store.state.events.isSubmitting)\r\n\r\n const eventId = computed(() => store.state.events.signUpEventId)\r\n const firstName = ref('')\r\n const lastName = ref('')\r\n const phone = ref('')\r\n const email = ref('')\r\n const consent = ref(false)\r\n\r\n const isValidEmail = computed(() => {\r\n return unSubmitted.value ? true : emailValidator(email.value)\r\n })\r\n\r\n const firstNameFilled = computed(() => {\r\n return unSubmitted.value && !firstName.value\r\n ? true\r\n : nameValidator(firstName.value)\r\n })\r\n\r\n const lastNameFilled = computed(() => {\r\n return unSubmitted.value && !lastName.value\r\n ? true\r\n : nameValidator(lastName.value)\r\n })\r\n\r\n const isValidPhone = computed(() => {\r\n return unSubmitted.value ? true : phoneValidator(phone.value)\r\n })\r\n\r\n const consentChecked = computed(() => {\r\n return unSubmitted.value ? true : consent.value\r\n })\r\n\r\n const onSubmit = function () {\r\n unSubmitted.value = false\r\n\r\n if (\r\n isValidEmail.value &&\r\n firstNameFilled.value &&\r\n lastNameFilled.value &&\r\n isValidPhone.value &&\r\n consentChecked.value\r\n ) {\r\n store.dispatch('events/signUpToEvent', {\r\n eventId: eventId.value,\r\n firstName: firstName.value,\r\n lastName: lastName.value,\r\n email: email.value,\r\n phone: phone.value,\r\n consent: consent.value\r\n })\r\n }\r\n }\r\n\r\n let first, last, close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n last.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n first = document.querySelector(\r\n '.kb-sign-up-form [data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-sign-up-form [data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n firstName,\r\n lastName,\r\n phone,\r\n email,\r\n consent,\r\n isValidEmail,\r\n firstNameFilled,\r\n lastNameFilled,\r\n isValidPhone,\r\n consentChecked,\r\n showReceipt,\r\n isSubmitting,\r\n onSubmit,\r\n getLabel,\r\n tabTrap\r\n }\r\n }\r\n}\r\n","import { render } from \"./SignUpForm.vue?vue&type=template&id=4abcec9e\"\nimport script from \"./SignUpForm.vue?vue&type=script&lang=js\"\nexport * from \"./SignUpForm.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n \r\n\r\n
    \r\n

    \r\n {{ getLabel('personalDonationStep2a_choose_paymentmethod') }}\r\n

    \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n {{ getLabel('validationPaymentmethod') }}\r\n

    \r\n\r\n
    \r\n \r\n \r\n {{ getLabel('personalDonationStep2a_choose_continue') }}\r\n \r\n \r\n {{ getLabel('personalDonationStep2a_choose_continue2') }}\r\n \r\n {{\r\n paymentButtonTextAddition\r\n }}\r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n\r\n","\r\n\r\n\r\n","import { computed, onMounted, watch } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport GetLabel from 'foundation/js/getLabel'\r\n\r\nexport default {\r\n name: 'PersonalDonationStep3',\r\n setup() {\r\n const store = useStore()\r\n\r\n onMounted(() => {\r\n const orderId = new URLSearchParams(document.location.search).get(\r\n 'orderId'\r\n )\r\n if (orderId)\r\n store.dispatch('main/trackPurchaseData', { orderId })\r\n })\r\n\r\n const linkToInformationHowDonationBenefits = computed(\r\n () =>\r\n store.state.fundraising.donation_settings\r\n .linkToInformationHowDonationBenefits\r\n )\r\n\r\n return {\r\n linkToInformationHowDonationBenefits,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'personalDonation' })\r\n }\r\n }\r\n}\r\n","import { render } from \"./PersonalDonationStep3.vue?vue&type=template&id=40ae7bb3\"\nimport script from \"./PersonalDonationStep3.vue?vue&type=script&lang=js\"\nexport * from \"./PersonalDonationStep3.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref, computed, watch, onMounted, onBeforeUnmount } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport PersonalDonationStep3 from 'components/PersonalDonationStep3/PersonalDonationStep3.vue'\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport TooltipComponent from 'components/TooltipComponent/TooltipComponent.vue'\r\nimport emailValidator from '../../foundation/js/inputValidators/emailValidator'\r\nimport phoneValidator from '../../foundation/js/inputValidators/phoneValidator'\r\nimport nameValidator from '../../foundation/js/inputValidators/nameValidator'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\nimport cprValidator from 'foundation/js/inputValidators/cprValidator'\r\n\r\nexport default {\r\n name: 'PersonalDonationStep2a',\r\n components: {\r\n PersonalDonationStep3,\r\n FormInputTextField,\r\n TooltipComponent\r\n },\r\n setup() {\r\n let first, last, close\r\n\r\n // constants\r\n const PAYMENTMETHOD_BETALINGSSERVICE = '4'\r\n const PAYMENT_OPTIONS = {\r\n single: ['mobilepay', 'creditcard'],\r\n recurring: ['mobilepaysubscription', 'betalingsservice']\r\n }\r\n\r\n // dependencies\r\n const store = useStore()\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'personalDonation',\r\n labelKey: labelKey\r\n })\r\n const personalDonationInput = computed(\r\n () => store.state.donation.personalDonationInput\r\n ).value\r\n const isSubmitting = computed(\r\n () => store.state.fundraising.isSubmitting\r\n )\r\n\r\n const donationType = ref(\r\n personalDonationInput?.donationType ?? getLabel('personalDonationStep2a_default_radio_value')\r\n )\r\n const donationSettings = computed(\r\n () => store.state.fundraising.donation_settings\r\n )\r\n const donationPresets = computed(() => {\r\n return donationType.value === 'single'\r\n ? donationSettings.value.single.presets\r\n : donationSettings.value.recurring.presets\r\n })\r\n const donationPresetDefault = computed(() => {\r\n return donationType.value === 'single'\r\n ? donationSettings.value.single.presets[\r\n donationSettings.value.single.defaultPreset\r\n ]\r\n : donationSettings.value.recurring.presets[\r\n donationSettings.value.recurring.defaultPreset\r\n ]\r\n })\r\n const showReceipt = computed(\r\n () => store.state.fundraising.personalDonationShowReceipt\r\n )\r\n const pageId = computed(() => store.state.main.page_id)\r\n\r\n const pbsFieldsVisible = ref(\r\n personalDonationInput?.pbsFieldsVisible ?? false\r\n )\r\n const showPBSfields = function () {\r\n pbsFieldsVisible.value = true\r\n }\r\n const hidePBSfields = function () {\r\n pbsFieldsVisible.value = false\r\n }\r\n\r\n // input bindings, validations and helpers\r\n const donationPresetsSelectedIndex = ref(\r\n personalDonationInput?.donationPresetsSelectedIndex ?? 1\r\n )\r\n\r\n const firstNameInput = ref(personalDonationInput?.firstNameInput ?? '')\r\n const firstNameInputFilled = computed(() => {\r\n return unSubmitted.value && !firstNameInput.value\r\n ? true\r\n : nameValidator(firstNameInput.value)\r\n })\r\n\r\n const lastNameInput = ref(personalDonationInput?.lastNameInput ?? '')\r\n const lastNameInputFilled = computed(() => {\r\n return unSubmitted.value && !lastNameInput.value\r\n ? true\r\n : nameValidator(lastNameInput.value)\r\n })\r\n\r\n const phoneInput = ref(personalDonationInput?.phoneInput ?? '')\r\n const phoneInputFilled = computed(() => {\r\n return unSubmitted.value ? true : phoneValidator(phoneInput.value)\r\n })\r\n\r\n const emailInput = ref(personalDonationInput?.emailInput ?? '')\r\n const emailInputFilled = computed(() => {\r\n return unSubmitted.value ? true : emailValidator(emailInput.value)\r\n })\r\n const donationAmountInput = ref(\r\n personalDonationInput?.donationAmountInput ??\r\n donationPresetDefault.value\r\n )\r\n const donationAmountInputFilled = computed(() => {\r\n return unSubmitted.value ? true : !!donationAmountInput.value\r\n })\r\n\r\n const customDonationAmountInput = ref(\r\n personalDonationInput?.customDonationAmountInput ??\r\n donationAmountInput.value\r\n )\r\n const customDonationAmountInputIsValid = computed(() => {\r\n return unSubmitted.value && !forceCustomAmountValidation.value\r\n ? true\r\n : customDonationAmountInput.value >=\r\n (donationSettings.value.minimumAmount ?? 1)\r\n })\r\n\r\n const cprNumberInput = ref(personalDonationInput?.cprNumberInput ?? '')\r\n const cprNumberInputFilled = computed(() => {\r\n if (unSubmitted.value) {\r\n return true\r\n }\r\n return taxDeductible.value ||\r\n paymentMethod.value === PAYMENTMETHOD_BETALINGSSERVICE\r\n ? cprValidator(cprNumberInput.value)\r\n : true\r\n })\r\n\r\n const paymentMethod = ref(personalDonationInput?.paymentMethod ?? '')\r\n const paymentMethodFilled = computed(() => {\r\n return unSubmitted.value ? true : !!paymentMethod.value\r\n })\r\n\r\n const pbsRegInput = ref(personalDonationInput?.pbsRegInput ?? '')\r\n const pbsRegInputFilled = computed(() => {\r\n return unSubmitted.value\r\n ? true\r\n : pbsRegInput.value.toString().length === 4\r\n })\r\n\r\n const pbsAccnumInput = ref(personalDonationInput?.pbsAccnumInput ?? '')\r\n const pbsAccnumInputFilled = computed(() => {\r\n return unSubmitted.value\r\n ? true\r\n : pbsAccnumInput.value.toString().length >= 7 &&\r\n pbsAccnumInput.value.toString().length <= 10\r\n })\r\n\r\n const unSubmitted = ref(true)\r\n const forceCustomAmountValidation = ref(false)\r\n \r\n \r\n const submitDonation = () => {\r\n unSubmitted.value = false;\r\n \r\n const isAllValid = validateAllFields(); \r\n if (!isAllValid) {\r\n scrollToFirstError()\r\n return false; \r\n }\r\n \r\n const donationPayload = {\r\n firstName: firstNameInput.value,\r\n lastName: lastNameInput.value,\r\n phone: phoneInput.value,\r\n email: emailInput.value,\r\n donationAmount: donationAmount.value,\r\n paymentMethod: paymentMethod.value,\r\n taxDeductible: taxDeductible.value,\r\n cprNo: cprNumberInput.value || null,\r\n recurringDonation: donationType.value === 'recurring',\r\n donationId: donationSettings.donationId,\r\n pbsData: pbsRegInput.value\r\n ? {\r\n reg: pbsRegInput.value?.toString(),\r\n acc: pbsAccnumInput.value?.toString()\r\n }\r\n : null,\r\n pageId: pageId.value,\r\n isCustomAmount: !!customDonation.value,\r\n referrer: document.referrer\r\n };\r\n \r\n\r\n store.dispatch('fundraising/submitPersonalDonation', donationPayload)\r\n .then(response => {\r\n if (response.success) {\r\n console.log('Donation submitted successfully');\r\n } else {\r\n console.log('Donation submission failed');\r\n }\r\n });\r\n };\r\n \r\n const validateAllFields = () => {\r\n const isValid =\r\n paymentMethodFilled.value &&\r\n (customDonation.value\r\n ? customDonationAmountInputIsValid.value\r\n : true) &&\r\n emailInputFilled.value &&\r\n phoneInputFilled.value &&\r\n lastNameInputFilled.value &&\r\n firstNameInputFilled.value &&\r\n cprNumberInputFilled.value &&\r\n paymentMethod.value &&\r\n (paymentMethod.value === PAYMENTMETHOD_BETALINGSSERVICE\r\n ? pbsRegInputFilled.value &&\r\n pbsAccnumInputFilled.value &&\r\n cprNumberInputFilled.value\r\n : true);\r\n \r\n // Check for validation on each field individually\r\n // You can add more fields as needed here\r\n if (!isValid) {\r\n return false;\r\n }\r\n \r\n return true;\r\n };\r\n \r\n\r\n const customDonation = ref(\r\n personalDonationInput?.customDonation ?? false\r\n )\r\n const valueinputfield = ref(null)\r\n\r\n const enableCustomDonation = async function () {\r\n forceCustomAmountValidation.value = true\r\n customDonation.value = true\r\n donationAmountInput.value = ''\r\n await nextTick() // we need to wait for DOM to update\r\n valueinputfield.value.focus()\r\n }\r\n\r\n const disableCustomDonation = function () {\r\n customDonation.value = false\r\n forceCustomAmountValidation.value = false\r\n }\r\n\r\n const taxDeductible = ref(personalDonationInput?.taxDeductible ?? false)\r\n\r\n const donationAmount = computed(() => {\r\n return customDonation.value\r\n ? customDonationAmountInput.value\r\n : donationAmountInput.value\r\n })\r\n const paymentButtonTextAddition = computed(\r\n () => donationAmount.value + ' kr '\r\n )\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n const resetBetalingsServiceFields = () => {\r\n paymentMethod.value = ''\r\n pbsAccnumInput.value = ''\r\n pbsRegInput.value = ''\r\n }\r\n\r\n const donationAmountInputChangeHandler = () => {\r\n donationPresetsSelectedIndex.value =\r\n donationType.value === 'single'\r\n ? donationSettings.value.single.presets.indexOf(\r\n donationAmountInput.value\r\n )\r\n : donationSettings.value.recurring.presets.indexOf(\r\n donationAmountInput.value\r\n )\r\n }\r\n\r\n const donationTypeChangeHandler = () => {\r\n if (customDonation.value) {\r\n return\r\n }\r\n\r\n let presetSingleIndexAmount =\r\n donationSettings.value.single.presets[\r\n donationPresetsSelectedIndex.value\r\n ]\r\n let presetRecurringIndexAmount =\r\n donationSettings.value.recurring.presets[\r\n donationPresetsSelectedIndex.value\r\n ]\r\n // if presets with same index have different values, we activate it as custom donation amount\r\n if (presetSingleIndexAmount != presetRecurringIndexAmount) {\r\n customDonationAmountInput.value = donationAmountInput.value\r\n enableCustomDonation() // deselect preset\r\n return\r\n }\r\n donationAmountInput.value =\r\n donationType.value === 'single'\r\n ? presetSingleIndexAmount\r\n : presetRecurringIndexAmount\r\n }\r\n\r\n watch(donationAmountInput, () => {\r\n donationAmountInputChangeHandler()\r\n })\r\n\r\n watch(donationType, () => {\r\n resetBetalingsServiceFields()\r\n donationTypeChangeHandler()\r\n })\r\n\r\n onMounted(() => {\r\n first = document.querySelectorAll(\r\n '.kb-personal-donation-step2a__donation-input [data-order=\"first\"]'\r\n )[donationPresetsSelectedIndex.value ?? 1]\r\n last = document.querySelector(\r\n '.kb-personal-donation-step2a [data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n if (first) first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n onBeforeUnmount(() => {\r\n let input = {\r\n pbsFieldsVisible: pbsFieldsVisible.value,\r\n firstNameInput: firstNameInput.value,\r\n lastNameInput: lastNameInput.value,\r\n phoneInput: phoneInput.value,\r\n emailInput: emailInput.value,\r\n donationAmountInput: donationAmountInput.value,\r\n customDonationAmountInput: customDonationAmountInput.value,\r\n cprNumberInput: cprNumberInput.value,\r\n paymentMethod: paymentMethod.value,\r\n pbsRegInput: pbsRegInput.value,\r\n pbsAccnumInput: pbsAccnumInput.value,\r\n customDonation: customDonation.value,\r\n donationType: donationType.value,\r\n taxDeductible: taxDeductible.value,\r\n donationPresetsSelectedIndex: donationPresetsSelectedIndex.value\r\n }\r\n store.commit('donation/store_personal_donation_input', input)\r\n })\r\n\r\n return {\r\n // inpuut fields and properties\r\n cprNumberInput,\r\n cprNumberInputFilled,\r\n customDonation,\r\n customDonationAmountInput,\r\n customDonationAmountInputIsValid,\r\n donationAmountInput,\r\n donationAmountInputFilled,\r\n donationPresets,\r\n donationType,\r\n emailInput,\r\n emailInputFilled,\r\n firstNameInput,\r\n firstNameInputFilled,\r\n isSubmitting,\r\n lastNameInput,\r\n lastNameInputFilled,\r\n paymentButtonTextAddition,\r\n paymentMethod,\r\n paymentMethodFilled,\r\n paymentOptions: PAYMENT_OPTIONS,\r\n pbsAccnumInput,\r\n pbsAccnumInputFilled,\r\n pbsFieldsVisible,\r\n pbsRegInput,\r\n pbsRegInputFilled,\r\n phoneInput,\r\n phoneInputFilled,\r\n showReceipt,\r\n taxDeductible,\r\n valueinputfield,\r\n\r\n // methods\r\n disableCustomDonation,\r\n enableCustomDonation,\r\n getLabel,\r\n hidePBSfields,\r\n showPBSfields,\r\n submitDonation,\r\n tabTrap\r\n }\r\n }\r\n}\r\n","import { render } from \"./PersonalDonationStep2a.vue?vue&type=template&id=463caaec\"\nimport script from \"./PersonalDonationStep2a.vue?vue&type=script&lang=js\"\nexport * from \"./PersonalDonationStep2a.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { onMounted, computed, ref } from 'vue'\r\n\r\nexport default {\r\n name: 'MemberListOverlay',\r\n props: {\r\n groupId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const toggleAccordion = function (e) {\r\n const isExpanded = !!(\r\n e.currentTarget.getAttribute('aria-expanded') === 'true'\r\n )\r\n const accordionTarget = document.querySelector(\r\n `#${e.currentTarget.getAttribute('aria-controls')}`\r\n )\r\n const chevronTarget = e.currentTarget.querySelector(\r\n '.kb-member-list-overlay__member-chevron'\r\n )\r\n\r\n chevronTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-member-list-overlay__member-chevron--open'\r\n )\r\n accordionTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-member-list-overlay__content--open'\r\n )\r\n e.currentTarget.setAttribute(\r\n 'aria-expanded',\r\n isExpanded ? 'false' : 'true'\r\n )\r\n\r\n accordionTarget.querySelectorAll('a').forEach((a) => {\r\n if (isExpanded) {\r\n a.setAttribute('tabindex', -1)\r\n } else {\r\n a.removeAttribute('tabindex')\r\n }\r\n })\r\n }\r\n const isSubmitting = computed(()=> store.state.forum.is_submitting)\r\n\r\n const groupId = computed(() => props.groupId ?? store.state.main.page_overlay_content_data.groupId)\r\n\r\n const memberListData = computed(()=>{\r\n return store.state.forum.member_list_data\r\n })\r\n\r\n const skip = ref(0)\r\n const take = ref(10)\r\n\r\n const fetchGruppemedlemmer = function () {\r\n store.dispatch('forum/getMemberListData', {\r\n id: groupId.value,\r\n skip: skip.value,\r\n take: take.value\r\n })\r\n }\r\n\r\n const loadMore = function(){\r\n skip.value = take.value\r\n take.value = (take.value + skip.value)\r\n fetchGruppemedlemmer()\r\n }\r\n\r\n onMounted(fetchGruppemedlemmer)\r\n\r\n const getLabel = (labelKey, strings) => {\r\n let label = store.getters['labels/getLabel']({\r\n labelCollection: 'MemberListOverlay',\r\n labelKey\r\n })\r\n\r\n if (strings) {\r\n strings.forEach((str, index) => {\r\n label = label.replace(`{${index}}`, str)\r\n })\r\n }\r\n\r\n return label\r\n }\r\n\r\n return {\r\n memberListData,\r\n toggleAccordion,\r\n getLabel,\r\n loadMore,\r\n isSubmitting\r\n }\r\n }\r\n}","import { render } from \"./MemberListOverlay.vue?vue&type=template&id=1adf4e1c\"\nimport script from \"./MemberListOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./MemberListOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\nimport { useStore } from 'vuex'\r\nimport { ref, computed } from 'vue'\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\n\r\nexport default {\r\n name: \"ClosedGroupOverlay\",\r\n components: {\r\n Editor\r\n },\r\n props: {\r\n groupId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const groupId = computed(() => props.groupId ?? store.state.main.page_overlay_content_data.groupId)\r\n const isFrivilligContext = computed(() => store.state.main.page_overlay_content_data.isFrivilligContext ?? false)\r\n\r\n const applicationContent = ref()\r\n const showInputErrors = ref(false)\r\n\r\n const isInputError = computed(() => !applicationContent.value?.length)\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"ClosedGroupOverlay\",\r\n labelKey: labelKey,\r\n });\r\n\r\n const submitMemberApplication = async function () {\r\n showInputErrors.value = true\r\n\r\n if (isInputError.value) return\r\n\r\n const body = {\r\n content: applicationContent.value,\r\n }\r\n\r\n if (isFrivilligContext.value) {\r\n await store.dispatch('frivillige/joinGroup', {\r\n reason: body.content,\r\n gruppeKode: groupId.value,\r\n })\r\n }\r\n else if (applicationContent.value) {\r\n store.dispatch('forum/submitMemberApplication', {\r\n body: body,\r\n id: groupId.value\r\n })\r\n }\r\n\r\n window.location.reload()\r\n }\r\n\r\n return {\r\n submitMemberApplication,\r\n applicationContent,\r\n isInputError,\r\n showInputErrors,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./ClosedGroupOverlay.vue?vue&type=template&id=69386932\"\nimport script from \"./ClosedGroupOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./ClosedGroupOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { ref, computed } from 'vue'\r\n\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\n\r\nexport default {\r\n name: \"UploadNewFileOverlay\",\r\n setup(){\r\n const store = useStore()\r\n const file = ref({})\r\n\r\n const isSubmitting = computed(()=> store.state.frivillige.is_submitting)\r\n\r\n let displayError = ref(false)\r\n\r\n const onFileChange = (e) => {\r\n displayError.value = false;\r\n\r\n const uploadedFiles = e.target.files \r\n let newFile = {}\r\n \r\n Array.from(uploadedFiles).forEach(uploadedfile => {\r\n newFile.value = uploadedfile\r\n newFile.value.url = URL.createObjectURL(uploadedfile)\r\n file.value = newFile.value\r\n })\r\n\r\n setTimeout( ()=> {\r\n const deleteButton = document.querySelector('.kb-js--delete-uploaded-file-card')\r\n deleteButton.focus()\r\n } , 100)\r\n \r\n }\r\n\r\n const removeFile = () => {\r\n file.value = {}\r\n }\r\n\r\n // TODO: how to we validate files ? BE job?\r\n const isFormValid = () => {\r\n let fileTypeToStringIfPresent = file.value?.type ? file.value.type.toString() : null\r\n return nonEmptyStringValidator(fileTypeToStringIfPresent) ? true : false\r\n };\r\n\r\n const submitUploadNewFile = () => {\r\n const isValid = isFormValid();\r\n displayError.value = !isValid;\r\n\r\n if (isValid) {\r\n store.dispatch(\"frivillige/submitUploadNewFile\", {\r\n file: file.value\r\n })\r\n .then(() => {\r\n store.dispatch('main/closePageOverlay')\r\n store.dispatch('search/refreshSearches')\r\n });\r\n }\r\n };\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"UploadNewFileOverlay\",\r\n labelKey: labelKey,\r\n });\r\n\r\n return {\r\n file,\r\n isSubmitting,\r\n displayError,\r\n getLabel,\r\n onFileChange,\r\n removeFile,\r\n submitUploadNewFile\r\n }\r\n }\r\n}","import { render } from \"./UploadNewFileOverlay.vue?vue&type=template&id=5663d28c\"\nimport script from \"./UploadNewFileOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./UploadNewFileOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import {computed, onMounted, ref} from 'vue'\r\nimport {useStore} from 'vuex'\r\nimport DonationCard from '../DonationCard/DonationCard.vue'\r\n\r\nexport default {\r\n name: \"HoldetsLys\",\r\n props: {\r\n teamId: {\r\n type: String,\r\n required: false\r\n },\r\n lysposeFormUrl: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n components: {DonationCard},\r\n setup(props){\r\n const store = useStore()\r\n const teamId = computed(() => props.teamId ?? store.state.main.page_overlay_content_data.teamId)\r\n const lysposeFormUrl = computed(() => props.lysposeFormUrl ?? store.state.main.page_overlay_content_data.lysposeFormUrl)\r\n const holdetsLys = computed(()=>store.state.stafet.teamLights)\r\n const skip = ref(0)\r\n const take = ref(10)\r\n\r\n onMounted(()=>{\r\n store.dispatch('stafet/getTeamLights',{\r\n teamId: teamId.value,\r\n skip,\r\n take\r\n })\r\n })\r\n\r\n const loadMore = function(){\r\n skip.value = take.value\r\n take.value = (take.value + skip.value)\r\n store.dispatch('stafet/getTeamLights',{\r\n teamId: teamId.value,\r\n skip: skip.value,\r\n take: take.value\r\n })\r\n }\r\n\r\n const showLoadMore = computed(()=>{\r\n return store.state.stafet.teamLightsTotal > skip.value\r\n })\r\n\r\n return {\r\n lysposeFormUrl,\r\n holdetsLys,\r\n loadMore,\r\n showLoadMore,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'HoldetsLys',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./HoldetsLys.vue?vue&type=template&id=0509088a\"\nimport script from \"./HoldetsLys.vue?vue&type=script&lang=js\"\nexport * from \"./HoldetsLys.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\nexport function getTeamParticipantEmails(teamParticipantDetails) {\r\n return teamParticipantDetails\r\n .filter(participant => participant.role !== 'Holdkaptajn')\r\n .filter(participant => participant.email)\r\n .map(participant => participant.email)\r\n .join(',')\r\n}\r\n","import {computed, onMounted, ref} from 'vue'\r\nimport {useStore} from 'vuex'\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\nimport { getTeamParticipantEmails } from \"foundation/js/teamParticipantUtils\"\r\n\r\nexport default {\r\n name: \"HoldetsDeltagere\",\r\n props: {\r\n teamId: {\r\n type: String,\r\n required: false\r\n },\r\n addDeltagerFormUrl: {\r\n type: String,\r\n required: false\r\n },\r\n donationFormUrl: {\r\n type: String,\r\n required: false\r\n },\r\n lysposeFormUrl: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n const teamId = computed(() => props.teamId ?? store.state.main.page_overlay_content_data.teamId)\r\n const addDeltagerFormUrl = computed(() => props.addDeltagerFormUrl ?? store.state.main.page_overlay_content_data.addDeltagerFormUrl)\r\n const donationFormUrl = computed(() => props.donationFormUrl ?? store.state.main.page_overlay_content_data.donationFormUrl)\r\n const lysposeFormUrl = computed(() => props.lysposeFormUrl ?? store.state.main.page_overlay_content_data.lysposeFormUrl)\r\n const participantList = computed(() => store.state.stafet.teamParticipantDetails)\r\n const participantEmails = computed(() => getTeamParticipantEmails(store.state.stafet.teamParticipantDetails))\r\n\r\n const getLabel = function(labelKey){\r\n return store.getters['labels/getLabel']({\r\n labelCollection: 'HoldetsDeltagere',\r\n labelKey\r\n })\r\n }\r\n\r\n const getDonateToParticipantUrl = function(participant) {\r\n return `${donationFormUrl.value}&deltagerId=${participant.id}`\r\n }\r\n\r\n const getLysposeToParticipantUrl = function(participant) {\r\n return `${lysposeFormUrl.value}&deltagerId=${participant.id}`\r\n }\r\n\r\n const getParticipantFullName = function(participant) {\r\n return `${participant.firstName} ${participant.lastName ?? ''}`\r\n }\r\n\r\n const supportParticipantLabel = function(labelName, participant){\r\n return `${getLabel(labelName)} ${participant.firstName}`\r\n }\r\n\r\n const toggleAccordion = function (e) {\r\n const isExpanded = !!(\r\n e.currentTarget.getAttribute('aria-expanded') === 'true'\r\n )\r\n const accordionTarget = document.querySelector(\r\n `#${e.currentTarget.getAttribute('aria-controls')}`\r\n )\r\n const chevronTarget = e.currentTarget.querySelector(\r\n '.kb-accordion__question__chevron'\r\n )\r\n\r\n chevronTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-accordion__question__chevron--open'\r\n )\r\n accordionTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-accordion__answer--open'\r\n )\r\n e.currentTarget.setAttribute(\r\n 'aria-expanded',\r\n isExpanded ? 'false' : 'true'\r\n )\r\n\r\n accordionTarget.querySelectorAll('a').forEach((a) => {\r\n if (isExpanded) {\r\n a.setAttribute('tabindex', -1)\r\n } else {\r\n a.removeAttribute('tabindex')\r\n }\r\n })\r\n }\r\n\r\n let first,\r\n last,\r\n close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(()=>{\r\n\r\n first = document.querySelector(\r\n '.kb-button[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-button[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n\r\n store.dispatch('stafet/getTeamParticipantDetails',{\r\n teamId: teamId.value\r\n })\r\n })\r\n\r\n return {\r\n addDeltagerFormUrl,\r\n getDonateToParticipantUrl,\r\n getLysposeToParticipantUrl,\r\n tabTrap,\r\n participantList,\r\n toggleAccordion,\r\n supportParticipantLabel,\r\n getParticipantFullName,\r\n getLabel,\r\n participantEmails\r\n }\r\n \r\n }\r\n}","import { render } from \"./HoldetsDeltagere.vue?vue&type=template&id=0ce03120\"\nimport script from \"./HoldetsDeltagere.vue?vue&type=script&lang=js\"\nexport * from \"./HoldetsDeltagere.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import {computed, onMounted, ref} from 'vue'\r\nimport {useStore} from 'vuex'\r\nimport DonationCard from '../DonationCard/DonationCard.vue'\r\n\r\nexport default {\r\n name: \"HoldetsDonationer\",\r\n props: {\r\n teamId: {\r\n type: String,\r\n required: false\r\n },\r\n donationFormUrl: {\r\n type: String,\r\n required: false\r\n },\r\n },\r\n components: {DonationCard},\r\n setup(props){\r\n const store = useStore()\r\n const teamId = computed(() => props.teamId ?? store.state.main.page_overlay_content_data.teamId)\r\n const donationFormUrl = computed(() => props.donationFormUrl ?? store.state.main.page_overlay_content_data.donationFormUrl)\r\n const listOfDonations = computed(()=>store.state.stafet.teamDonations)\r\n const skip = ref(0)\r\n const take = ref(10)\r\n\r\n onMounted(()=>{\r\n store.dispatch('stafet/getTeamDonations',{\r\n teamId: teamId.value,\r\n skip,\r\n take\r\n })\r\n })\r\n\r\n const loadMore = function(){\r\n skip.value = take.value\r\n take.value = (take.value + skip.value)\r\n store.dispatch('stafet/getTeamDonations',{\r\n teamId: teamId.value,\r\n skip: skip.value,\r\n take: take.value\r\n })\r\n }\r\n\r\n const showLoadMore = computed(()=>{\r\n return store.state.stafet.teamDonationsTotal > skip.value\r\n })\r\n\r\n return {\r\n donationFormUrl,\r\n listOfDonations,\r\n loadMore,\r\n showLoadMore,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'HoldetsDonationer',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./HoldetsDonationer.vue?vue&type=template&id=245676ab\"\nimport script from \"./HoldetsDonationer.vue?vue&type=script&lang=js\"\nexport * from \"./HoldetsDonationer.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"TilmeldHoldKvittering\",\r\n props: {\r\n hasProfile: {\r\n type: Boolean,\r\n required: false\r\n }\r\n },\r\n setup(){\r\n const store = useStore()\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active\r\n\r\n const loginUrl = store.state.main.page_overlay_content_data.loginUrl\r\n const createProfileUrl = store.state.main.page_overlay_content_data.createProfileUrl\r\n const hasProfile = store.state.main.page_overlay_content_data.hasProfile\r\n\r\n let first,\r\n last,\r\n close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n \r\n first = document.querySelector(\r\n '.kb-button[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-button[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n\r\n const orderId = new URLSearchParams(document.location.search).get(\r\n 'orderId'\r\n )\r\n if (orderId)\r\n store.dispatch('main/trackPurchaseData', { orderId })\r\n })\r\n \r\n return {\r\n loginUrl,\r\n createProfileUrl,\r\n hasProfile,\r\n tabTrap,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'TilmeldHoldKvittering',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./TilmeldHoldKvittering.vue?vue&type=template&id=372b4048\"\nimport script from \"./TilmeldHoldKvittering.vue?vue&type=script&lang=js\"\nexport * from \"./TilmeldHoldKvittering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport { getTeamParticipantEmails } from \"foundation/js/teamParticipantUtils\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\n\r\nexport default {\r\n name: \"HoldOprettelseKvittering\",\r\n props:{\r\n teamId: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props){\r\n const store = useStore()\r\n\r\n const previousHoldkode = new URLSearchParams(document.location.search).get('previousHoldkode')\r\n\r\n let listOfRecipients = computed(() => \r\n previousHoldkode\r\n ? getTeamParticipantEmails(store.state.stafet.teamParticipantDetails)\r\n : ''\r\n )\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active\r\n\r\n onMounted(() => {\r\n store.dispatch('stafet/getTeamParticipantDetails',{\r\n teamId: previousHoldkode\r\n })\r\n\r\n let first = document.querySelector('.kb-hold-oprettelse-kvittering [data-order=\"first\"]') ?? document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback({\r\n opening(){\r\n first.focus()\r\n }\r\n }, { persistent: true }) \r\n\r\n if (!gtmActive) return\r\n\r\n const holdKode = new URLSearchParams(document.location.search).get(\r\n 'holdKode'\r\n ) \r\n window.dataLayer = window.dataLayer || []\r\n dataLayer.push({ ecommerce: null })\r\n var event = {\r\n event: 'hold_oprettelse',\r\n holdKode: holdKode\r\n }\r\n dataLayer.push(event) \r\n })\r\n \r\n return {\r\n listOfRecipients,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'HoldOprettelseKvittering',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./HoldOprettelseKvittering.vue?vue&type=template&id=c8307db2\"\nimport script from \"./HoldOprettelseKvittering.vue?vue&type=script&lang=js\"\nexport * from \"./HoldOprettelseKvittering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\n\r\nexport default {\r\n name: \"HoldRedigerKvittering\",\r\n setup(){\r\n const store = useStore()\r\n \r\n return {\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'HoldRedigerKvittering',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./HoldRedigerKvittering.vue?vue&type=template&id=499ade07\"\nimport script from \"./HoldRedigerKvittering.vue?vue&type=script&lang=js\"\nexport * from \"./HoldRedigerKvittering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import AmountSelector from 'components/AmountSelector/AmountSelector.vue'\r\nimport { computed, ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'StafetRoundCounter',\r\n components: { AmountSelector },\r\n props: {\r\n rute: {\r\n type: Object,\r\n required: true\r\n },\r\n deltagerId: {\r\n type: String,\r\n required: false\r\n },\r\n maxRegistrationCount: {\r\n type: Number,\r\n required: false,\r\n default: 100\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const amount = computed(() => {\r\n const { deltagerId, rute } = props\r\n\r\n const count = deltagerId \r\n ? store.getters['stafetRoundCounter/getDeltagerRuteAmount']({\r\n deltagerId,\r\n ruteId: rute.id\r\n })\r\n : store.state.stafetRoundCounter.ruteUpdates[rute.id] ?? 0\r\n\r\n return {\r\n count,\r\n key: amountKey.value\r\n }\r\n })\r\n const amountKey = ref(0)\r\n\r\n const shouldDisableApplyButton = computed(() => store.getters['stafetRoundCounter/shouldDisableApplyButton']({\r\n deltagerId: props.deltagerId, \r\n ruteId: props.rute.id \r\n })\r\n )\r\n\r\n const handleSetRoundCount = e => {\r\n let intValue = parseInt(e.target.value)\r\n if (isNaN(intValue)) {\r\n intValue = 0\r\n }\r\n else if (intValue > props.maxRegistrationCount) {\r\n intValue = props.maxRegistrationCount\r\n }\r\n\r\n if (props.deltagerId) {\r\n store.commit(\"stafetRoundCounter/set_deltager_counter\", { \r\n deltagerId: props.deltagerId, \r\n ruteId: props.rute.id,\r\n count: intValue\r\n })\r\n } else {\r\n store.commit(\"stafetRoundCounter/set_rute_counter\", {\r\n ruteId: props.rute.id,\r\n count: intValue\r\n })\r\n }\r\n\r\n amountKey.value++\r\n }\r\n \r\n const handleAddOneRound = function () {\r\n\r\n if (amount.value.count >= props.maxRegistrationCount) {\r\n return\r\n }\r\n\r\n if (props.deltagerId) {\r\n store.commit(\"stafetRoundCounter/increment_deltager_counter\", { \r\n deltagerId: props.deltagerId, \r\n ruteId: props.rute.id\r\n })\r\n } else {\r\n store.commit(\"stafetRoundCounter/increment_rute_counter\", props.rute.id)\r\n }\r\n \r\n }\r\n\r\n const handleRemoveOneRound = function () {\r\n if (props.deltagerId) {\r\n store.commit(\"stafetRoundCounter/decrement_deltager_counter\", { \r\n deltagerId: props.deltagerId, \r\n ruteId: props.rute.id\r\n })\r\n } else {\r\n store.commit(\"stafetRoundCounter/decrement_rute_counter\", props.rute.id)\r\n }\r\n }\r\n\r\n const handleSubmit = function () {\r\n store.dispatch(\"stafetRoundCounter/stafetRoundCounterSubmit\", { \r\n deltagerId: props.deltagerId, \r\n ruteId: props.rute.id\r\n })\r\n }\r\n\r\n return {\r\n amount,\r\n shouldDisableApplyButton,\r\n handleSetRoundCount,\r\n handleAddOneRound,\r\n handleRemoveOneRound,\r\n handleSubmit,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'roundCounter',\r\n labelKey\r\n })\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetRoundCounter.vue?vue&type=template&id=40303bca\"\nimport script from \"./StafetRoundCounter.vue?vue&type=script&lang=js\"\nexport * from \"./StafetRoundCounter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\n\r\nimport StafetRoundCounter from 'components/StafetRoundCounter/StafetRoundCounter.vue'\r\n\r\nexport default {\r\n name: 'StafetRoundCounterAccordion',\r\n components: { StafetRoundCounter },\r\n props: {\r\n participantData: {\r\n type: Object,\r\n required: true\r\n },\r\n maxRegistrationCount: {\r\n type: Number,\r\n required: false\r\n }\r\n },\r\n\r\n setup() {\r\n const store = useStore()\r\n\r\n const toggleAccordion = function (e) {\r\n const isExpanded = !!(\r\n e.currentTarget.getAttribute('aria-expanded') === 'true'\r\n )\r\n const accordionTarget = document.querySelector(\r\n `#${e.currentTarget.getAttribute('aria-controls')}`\r\n )\r\n const chevronTarget = e.currentTarget.querySelector(\r\n '.kb-stafet-round-counter-accordion__participant-chevron'\r\n )\r\n\r\n chevronTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-stafet-round-counter-accordion__participant-chevron--open'\r\n )\r\n accordionTarget.classList[isExpanded ? 'remove' : 'add'](\r\n 'kb-stafet-round-counter-accordion__content--open'\r\n )\r\n e.currentTarget.setAttribute(\r\n 'aria-expanded',\r\n isExpanded ? 'false' : 'true'\r\n )\r\n\r\n accordionTarget.querySelectorAll('a').forEach((a) => {\r\n if (isExpanded) {\r\n a.setAttribute('tabindex', -1)\r\n } else {\r\n a.removeAttribute('tabindex')\r\n }\r\n })\r\n }\r\n\r\n return {\r\n toggleAccordion,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'roundCounterAccordion',\r\n labelKey\r\n })\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetRoundCounterAccordion.vue?vue&type=template&id=6688c272\"\nimport script from \"./StafetRoundCounterAccordion.vue?vue&type=script&lang=js\"\nexport * from \"./StafetRoundCounterAccordion.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { onMounted, computed, ref, onUpdated } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport StafetRoundCounter from 'components/StafetRoundCounter/StafetRoundCounter.vue'\r\nimport StafetRoundCounterAccordion from 'components/StafetRoundCounterAccordion/StafetRoundCounterAccordion.vue'\r\n\r\nexport default {\r\n name: 'HoldetsRoundCounterOverlay',\r\n components: {\r\n StafetRoundCounter,\r\n StafetRoundCounterAccordion\r\n },\r\n setup() {\r\n const store = useStore()\r\n const isSubmitting = computed(() => store.state.stafetRoundCounter.isSubmitting)\r\n const teamId = computed(() => store.state.main.page_overlay_content_data.teamId)\r\n const ruter = computed(() => store.state.stafetRoundCounter.ruter)\r\n const deltagere = computed(() => store.state.stafetRoundCounter.deltagere)\r\n const maxRegistrationCount = computed(() => store.state.main.page_overlay_content_data.maxRegistrationCount)\r\n\r\n onMounted(() => {\r\n store.commit('stafetRoundCounter/set_team_id', teamId.value)\r\n store.dispatch('stafetRoundCounter/getStafetRoundCounter')\r\n })\r\n\r\n return {\r\n ruter,\r\n deltagere,\r\n isSubmitting,\r\n maxRegistrationCount,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'HoldetsRoundCounterOverlay',\r\n labelKey\r\n })\r\n }\r\n }\r\n}\r\n","import { render } from \"./HoldetsRoundCounterOverlay.vue?vue&type=template&id=1cd4bdad\"\nimport script from \"./HoldetsRoundCounterOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./HoldetsRoundCounterOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"ProfileDeleted\",\r\n setup(){\r\n const store = useStore()\r\n\r\n let first,\r\n last,\r\n close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n const cancelAction = function(){\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n\r\n onMounted(() => {\r\n \r\n first = document.querySelector(\r\n '.kb-button[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-button[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n cancelAction,\r\n tabTrap,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'ProfileDeleted',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./ProfileDeleted.vue?vue&type=template&id=cf1fd2fa\"\nimport script from \"./ProfileDeleted.vue?vue&type=script&lang=js\"\nexport * from \"./ProfileDeleted.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onMounted, watch, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport onTransitionendCallback from 'components/PageOverlay/methods/onTransitionendCallback'\r\n\r\nexport default {\r\n name: \"TilmeldProfilKvittering\",\r\n setup(){\r\n const store = useStore()\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active\r\n\r\n let first,\r\n last,\r\n close\r\n\r\n const tabTrap = function (e) {\r\n if (e.shiftKey && e.target.dataset.order === 'first') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && e.target.dataset.order === 'last') {\r\n e.preventDefault()\r\n close.focus()\r\n }\r\n\r\n if (!e.shiftKey && !e.target.dataset.order) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n \r\n first = document.querySelector(\r\n '.kb-button[data-order=\"first\"]'\r\n )\r\n last = document.querySelector(\r\n '.kb-button[data-order=\"last\"]'\r\n )\r\n close = document.querySelector('.kb-page-overlay__close')\r\n onTransitionendCallback(\r\n {\r\n opening() {\r\n first.focus()\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n\r\n if (!gtmActive) return\r\n window.dataLayer = window.dataLayer || []\r\n dataLayer.push({ ecommerce: null })\r\n var event = {\r\n event: 'opret_sfl_profil'\r\n }\r\n dataLayer.push(event)\r\n })\r\n\r\n return {\r\n tabTrap,\r\n getLabel: (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'TilmeldProfilKvittering',\r\n labelKey\r\n })\r\n }\r\n }\r\n}","import { render } from \"./TilmeldProfilKvittering.vue?vue&type=template&id=746280c8\"\nimport script from \"./TilmeldProfilKvittering.vue?vue&type=script&lang=js\"\nexport * from \"./TilmeldProfilKvittering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\"\r\nimport GetLabel from \"foundation/js/getLabel\"\r\nimport ActivityCard from \"../ActivityCard/ActivityCard.vue\"\r\nimport { onMounted, computed } from \"vue\"\r\nimport deepClone from \"foundation/js/deepClone\"\r\n\r\n\r\nexport default {\r\n name: \"CalendarOverlay\",\r\n components: {\r\n ActivityCard\r\n },\r\n props: {\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n skip: {\r\n type: Number,\r\n required: true,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n required: true,\r\n default: 10\r\n },\r\n createEventUrl: {\r\n type: String,\r\n required: true\r\n },\r\n allowedToEdit: {\r\n type: Boolean,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n \r\n const GUID = 'calendarEvents'\r\n const groupId = computed(() => store.state.main.page_overlay_content_data.groupId)\r\n const skip = computed(() => store.state.main.page_overlay_content_data.skip)\r\n const take = computed(() => store.state.main.page_overlay_content_data.take)\r\n const createEventUrl = computed(() => store.state.main.page_overlay_content_data.createEventUrl)\r\n const allowedToEdit = computed(() => store.state.main.page_overlay_content_data.allowedToEdit)\r\n\r\n const url = process.env.FRIVILLIGE_GROUP_EVENTS\r\n .replace('[pageId]', store.state.main.page_id)\r\n .replace('[groupId]', groupId.value)\r\n\r\n const activities = computed(() => {\r\n return deepClone(store.state.search.results[GUID] ?? [])\r\n })\r\n \r\n onMounted(() => {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: GUID,\r\n firstPageSize: take.value,\r\n showMorePageSize: take.value,\r\n url: url\r\n })\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: GUID,\r\n query: '',\r\n skip: skip.value,\r\n take: take.value\r\n })\r\n })\r\n\r\n const deleteEvent = (e, eventId) => {\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: () => {\r\n store.dispatch('frivillige/deleteEvent', { \r\n pageId: store.state.main.page_id,\r\n eventId: eventId\r\n })\r\n store.dispatch('main/closePageOverlay')\r\n }\r\n })\r\n\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"DeletePostOverlay\",\r\n returnTarget: e.currentTarget,\r\n });\r\n }\r\n\r\n return {\r\n activities,\r\n allowedToEdit,\r\n createEventUrl,\r\n deleteEvent,\r\n getLabel: (labelKey) => GetLabel({ labelKey, labelCollection: 'CalendarOverlay' })\r\n }\r\n }\r\n}","import { render } from \"./CalendarOverlay.vue?vue&type=template&id=1148e697\"\nimport script from \"./CalendarOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nimport { onMounted, computed, onUpdated } from 'vue'\r\n\r\nimport closeSliderGripBehaviour from './methods/closeSliderGripBehaviour'\r\nimport onTransitionendCallback from './methods/onTransitionendCallback'\r\n\r\nimport BurgerMenu from 'components/BurgerMenu/BurgerMenu.vue'\r\nimport SearchOverlay from 'components/SearchOverlay/SearchOverlay.vue'\r\nimport FilterOverlay from 'components/FilterOverlay/FilterOverlay.vue'\r\nimport ArticleOverlay from 'components/ArticleOverlay/ArticleOverlay.vue'\r\nimport SignUpForm from 'components/SignUpForm/SignUpForm.vue'\r\nimport FlowEditModal from 'components/FlowEditModal/FlowEditModal.vue'\r\nimport PersonalDonation from 'components/PersonalDonationStep2a/PersonalDonationStep2a.vue'\r\nimport MemberListOverlay from 'components/MemberListOverlay/MemberListOverlay.vue'\r\nimport MemberListOverlayFVL from 'components/MemberListOverlayFVL/MemberListOverlayFVL.vue'\r\nimport MemberOverlay from 'components/MemberOverlay/MemberOverlay.vue'\r\nimport MemberOverlayProfileCard from 'components/MemberOverlayProfileCard/MemberOverlayProfileCard.vue'\r\nimport ClosedGroupOverlay from 'components/ClosedGroupOverlay/ClosedGroupOverlay.vue'\r\nimport CreateFolderOverlay from 'components/CreateFolderOverlay/CreateFolderOverlay.vue'\r\nimport CreateNewFileOverlay from 'components/CreateNewFileOverlay/CreateNewFileOverlay.vue'\r\nimport ConfirmDeleteOverlay from 'components/ConfirmDeleteOverlay/ConfirmDeleteOverlay.vue'\r\nimport DeleteRoleOverlay from 'components/DeleteRoleOverlay/DeleteRoleOverlay.vue'\r\nimport UploadNewFileOverlay from 'components/UploadNewFileOverlay/UploadNewFileOverlay.vue'\r\nimport MoveFileOverlay from 'components/MoveFileOverlay/MoveFileOverlay.vue'\r\nimport HoldetsLys from 'components/HoldetsLys/HoldetsLys.vue'\r\nimport HoldetsDeltagere from 'components/HoldetsDeltagere/HoldetsDeltagere.vue'\r\nimport HoldetsDonationer from 'components/HoldetsDonationer/HoldetsDonationer.vue'\r\nimport TilmeldHoldKvittering from 'components/TilmeldHoldKvittering/TilmeldHoldKvittering.vue'\r\nimport HoldOprettelseKvittering from 'components/HoldOprettelseKvittering/HoldOprettelseKvittering.vue'\r\nimport HoldRedigerKvittering from 'components/HoldRedigerKvittering/HoldRedigerKvittering.vue'\r\nimport HoldetsRoundCounterOverlay from 'components/HoldetsRoundCounterOverlay/HoldetsRoundCounterOverlay.vue'\r\nimport ConfirmChanges from 'components/ConfirmChanges/ConfirmChanges.vue'\r\nimport OpretHoldOverlay from 'components/OpretHoldOverlay/OpretHoldOverlay.vue'\r\nimport ChangesSaved from 'components/ChangesSaved/ChangesSaved.vue'\r\nimport ProfileDeleted from 'components/ProfileDeleted/ProfileDeleted.vue'\r\nimport ConfirmDeleteProfile from 'components/ConfirmDeleteProfile/ConfirmDeleteProfile.vue'\r\nimport LoginOverlay from 'components/LoginOverlay/LoginOverlay.vue'\r\nimport DonationReceiptOverlay from 'components/DonationReceiptOverlay/DonationReceiptOverlay.vue'\r\nimport TilmeldProfilKvittering from 'components/TilmeldProfilKvittering/TilmeldProfilKvittering.vue'\r\nimport DeleteCancerProfileModal from 'components/DeleteCancerProfileModal/DeleteCancerProfileModal.vue'\r\nimport DeletePostOverlay from 'components/DeletePostOverlay/DeletePostOverlay.vue'\r\nimport DeleteCommentOverlay from 'components/DeleteCommentOverlay/DeleteCommentOverlay.vue'\r\nimport CalendarOverlay from 'components/CalendarOverlay/CalendarOverlay.vue'\r\nimport DeleteEventModal from 'components/DeleteEventModal/DeleteEventModal.vue'\r\nimport FrivilligeShopWrongRoleModal from 'components/FrivilligeShopWrongRoleModal/FrivilligeShopWrongRoleModal.vue'\r\nimport FVLConfirmDeleteProfile from 'components/FVLConfirmDeleteProfile/FVLConfirmDeleteProfile.vue'\r\nimport DeleteFrivilligjobOverlay from 'components/DeleteFrivilligjobOverlay/DeleteFrivilligjobOverlay.vue'\r\n\r\nexport default {\r\n name: 'PageOverlay',\r\n components: {\r\n BurgerMenu,\r\n ConfirmChanges,\r\n ConfirmDeleteProfile,\r\n OpretHoldOverlay,\r\n ChangesSaved,\r\n SearchOverlay,\r\n LoginOverlay,\r\n DonationReceiptOverlay,\r\n FilterOverlay,\r\n HoldetsDeltagere,\r\n HoldetsDonationer,\r\n HoldetsLys,\r\n ArticleOverlay,\r\n SignUpForm,\r\n ProfileDeleted,\r\n FlowEditModal,\r\n PersonalDonation,\r\n MemberListOverlay,\r\n MemberListOverlayFVL,\r\n MemberOverlay,\r\n MemberOverlayProfileCard,\r\n ClosedGroupOverlay,\r\n CreateFolderOverlay,\r\n CreateNewFileOverlay,\r\n UploadNewFileOverlay,\r\n ConfirmDeleteOverlay,\r\n DeleteRoleOverlay,\r\n MoveFileOverlay,\r\n ClosedGroupOverlay,\r\n DeleteFrivilligjobOverlay,\r\n TilmeldHoldKvittering,\r\n TilmeldProfilKvittering,\r\n HoldOprettelseKvittering,\r\n HoldetsRoundCounterOverlay,\r\n HoldRedigerKvittering,\r\n DeleteCancerProfileModal,\r\n DeletePostOverlay,\r\n DeleteCommentOverlay,\r\n DeleteEventModal,\r\n FrivilligeShopWrongRoleModal,\r\n CalendarOverlay,\r\n FVLConfirmDeleteProfile\r\n },\r\n setup() {\r\n const store = useStore()\r\n const closeOverlay = function () {\r\n store.dispatch('main/closePageOverlay')\r\n\r\n // on Frivillige document pages the active overlay mode should be set when overlay activated\r\n // when overlay closed, mode needs to be cleared - modes can be: \"Dokument\" or \"Mappe\"\r\n store.dispatch('frivillige/setActiveOverlayMode', { mode: \"\" }) \r\n store.dispatch('frivillige/setEditModeActive', { mode: false }) \r\n }\r\n\r\n let overlayContent = computed(\r\n () => store.state.main.page_overlay_content\r\n )\r\n\r\n const overlayState = computed(() => {\r\n return store.state.main.page_overlay_open === null\r\n ? 'ready'\r\n : store.state.main.page_overlay_open\r\n ? 'open'\r\n : 'closed'\r\n })\r\n\r\n const displayOverlayContent = computed(() => {\r\n return overlayState.value === 'open'\r\n })\r\n\r\n let first, last, close\r\n\r\n const tabTrap = function (e) {\r\n if (!e.shiftKey && e.target.dataset.order === 'close') {\r\n e.preventDefault()\r\n if (first) {\r\n first.focus()\r\n } else if (document.querySelector('[data-order=first]')) {\r\n first = document.querySelector('[data-order=first]')\r\n first.focus()\r\n }\r\n }\r\n if (e.shiftKey && e.target.dataset.order === 'close') {\r\n e.preventDefault()\r\n if (last) {\r\n last.focus()\r\n } else if (document.querySelector('[data-order=last]')) {\r\n last = document.querySelector('[data-order=last]')\r\n last.focus()\r\n }\r\n }\r\n }\r\n\r\n onUpdated(() => {\r\n close = document.querySelector('.kb-page-overlay__close')\r\n first = document.querySelector('[data-order=\"first\"]')\r\n last = document.querySelector('[data-order=\"last\"]')\r\n last = last ? last : first\r\n })\r\n\r\n onMounted(() => {\r\n close = document.querySelector('.kb-page-overlay__close')\r\n first = document.querySelector('[data-order=\"first\"]')\r\n last = document.querySelector('[data-order=\"last\"]')\r\n last = last ? last : first\r\n closeSliderGripBehaviour(store)\r\n onTransitionendCallback(\r\n {\r\n closing() {\r\n store.commit('main/reset_page_overlay')\r\n }\r\n },\r\n { persistent: true }\r\n )\r\n })\r\n\r\n return {\r\n closeOverlay,\r\n displayOverlayContent,\r\n tabTrap,\r\n overlayContent,\r\n overlayState\r\n }\r\n }\r\n}\r\n","export default function (store) {\r\n let startPosition, initialTop, verticalMotion\r\n const threshold = 100\r\n const closeSliderGrip = document.querySelector('[draggable=\"true\"]')\r\n const overlayContent = document.querySelector('.kb-page-overlay__content')\r\n\r\n closeSliderGrip.addEventListener('touchstart', (e) => {\r\n initialTop =\r\n initialTop ||\r\n +getComputedStyle(overlayContent)\r\n .getPropertyValue('top')\r\n .replace('px', '')\r\n startPosition = 0\r\n })\r\n\r\n closeSliderGrip.addEventListener('touchmove', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n verticalMotion = e.touches[0].clientY\r\n\r\n if (startPosition && startPosition < verticalMotion) {\r\n overlayContent.style.top =\r\n verticalMotion - startPosition + initialTop + 'px'\r\n overlayContent.style.transitionDuration = '1ms'\r\n } else {\r\n startPosition = verticalMotion\r\n }\r\n })\r\n\r\n closeSliderGrip.addEventListener('touchend', () => {\r\n if (startPosition + threshold < verticalMotion) {\r\n store.commit('main/close_page_overlay')\r\n }\r\n overlayContent.style.top = ''\r\n overlayContent.style.transitionDuration = ''\r\n })\r\n}\r\n","import { render } from \"./PageOverlay.vue?vue&type=template&id=e5f72c72\"\nimport script from \"./PageOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./PageOverlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport PageOverlay from './PageOverlay'\r\n\r\nconst el = '.kb-component--page-overlay'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (DOM && !DOM.hasAttribute('data-v-app')) {\r\n const component = createApp(PageOverlay).use(Store)\r\n const openOverlayAutomatically = !!DOM.dataset.test\r\n const contentComponentToShow = DOM.dataset.content\r\n\r\n component.mount(el)\r\n\r\n // the following initiation of the overlay is strictly for local dev purposes\r\n if (openOverlayAutomatically) {\r\n Store.commit(\r\n 'main/set_page_overlay_content',\r\n contentComponentToShow\r\n )\r\n setTimeout(() => Store.commit('main/open_page_overlay'), 500)\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\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}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\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 unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\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}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\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 getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","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 _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\";\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}","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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n if (_typeof(values) !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n var date = toDate(dirtyDate);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nexport default function setMilliseconds(dirtyDate, dirtyMilliseconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var milliseconds = toInteger(dirtyMilliseconds);\n date.setMilliseconds(milliseconds);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport default function eachDayOfInterval(dirtyInterval, options) {\n var _options$step;\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n return dates;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0;\n\n // Add years and months\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date;\n\n // Add weeks and days\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes and seconds\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import { openBlock as b, createElementBlock as F, createElementVNode as oe, unref as m, reactive as Nt, computed as W, ref as Z, toRef as Kt, watch as gt, h as Fa, render as jn, defineComponent as Be, renderSlot as ae, createCommentVNode as V, normalizeClass as ye, withKeys as le, createBlock as ce, withModifiers as pe, onMounted as Ue, normalizeStyle as Ke, normalizeProps as Ce, mergeProps as Ie, Fragment as de, createTextVNode as at, toDisplayString as Ne, onBeforeUpdate as Va, nextTick as rt, onUnmounted as _n, renderList as Me, withDirectives as Lt, vShow as Wt, withCtx as ue, createVNode as Ze, Transition as Dt, createSlots as Ee, useSlots as Yt, guardReactiveProps as Ve, resolveDynamicComponent as Pn, getCurrentScope as Ha, onScopeDispose as Ua, isRef as Kn, Teleport as La } from \"vue\";\nimport { format as dt, isBefore as _t, isEqual as pt, isAfter as Pt, set as we, setHours as ca, setMinutes as fa, setSeconds as va, setMilliseconds as Cn, getYear as fe, getMonth as ve, setMonth as Wa, setYear as ct, addMonths as ft, subMonths as Ct, isValid as zt, parseISO as za, eachDayOfInterval as ma, getHours as qe, getMinutes as Xe, getSeconds as bt, startOfWeek as ga, endOfWeek as ja, parse as kn, isDate as Ka, addYears as ya, subYears as ha, addDays as it, getDay as Ga, differenceInCalendarDays as Za, add as pa, sub as qa, getWeek as Xa, getISOWeek as Ja } from \"date-fns\";\nfunction It() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n oe(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n oe(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n oe(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\nIt.compatConfig = {\n MODE: 3\n};\nfunction ba() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n oe(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nba.compatConfig = {\n MODE: 3\n};\nfunction Rn() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nRn.compatConfig = {\n MODE: 3\n};\nfunction On() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nOn.compatConfig = {\n MODE: 3\n};\nfunction Nn() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n oe(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nNn.compatConfig = {\n MODE: 3\n};\nfunction Yn() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nYn.compatConfig = {\n MODE: 3\n};\nfunction In() {\n return b(), F(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\"\n },\n [\n oe(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nIn.compatConfig = {\n MODE: 3\n};\nfunction Bn(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar ka = { exports: {} };\n(function(e) {\n function n(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n }\n e.exports = n, e.exports.__esModule = !0, e.exports.default = e.exports;\n})(ka);\nvar xa = ka.exports, wn = { exports: {} };\n(function(e, n) {\n Object.defineProperty(n, \"__esModule\", {\n value: !0\n }), n.default = a;\n function a(t) {\n if (t === null || t === !0 || t === !1)\n return NaN;\n var r = Number(t);\n return isNaN(r) ? r : r < 0 ? Math.ceil(r) : Math.floor(r);\n }\n e.exports = n.default;\n})(wn, wn.exports);\nvar Qa = wn.exports;\nconst er = /* @__PURE__ */ Bn(Qa);\nvar Dn = { exports: {} };\n(function(e, n) {\n Object.defineProperty(n, \"__esModule\", {\n value: !0\n }), n.default = a;\n function a(t) {\n var r = new Date(Date.UTC(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds()));\n return r.setUTCFullYear(t.getFullYear()), t.getTime() - r.getTime();\n }\n e.exports = n.default;\n})(Dn, Dn.exports);\nvar tr = Dn.exports;\nconst Gn = /* @__PURE__ */ Bn(tr);\nfunction nr(e, n) {\n var a = or(n);\n return a.formatToParts ? rr(a, e) : lr(a, e);\n}\nvar ar = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\nfunction rr(e, n) {\n try {\n for (var a = e.formatToParts(n), t = [], r = 0; r < a.length; r++) {\n var l = ar[a[r].type];\n l >= 0 && (t[l] = parseInt(a[r].value, 10));\n }\n return t;\n } catch (c) {\n if (c instanceof RangeError)\n return [NaN];\n throw c;\n }\n}\nfunction lr(e, n) {\n var a = e.format(n).replace(/\\u200E/g, \"\"), t = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(a);\n return [t[3], t[1], t[2], t[4], t[5], t[6]];\n}\nvar sn = {};\nfunction or(e) {\n if (!sn[e]) {\n var n = new Intl.DateTimeFormat(\"en-US\", {\n hour12: !1,\n timeZone: \"America/New_York\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }).format(/* @__PURE__ */ new Date(\"2014-06-25T04:00:00.123Z\")), a = n === \"06/25/2014, 00:00:00\" || n === \"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00\";\n sn[e] = a ? new Intl.DateTimeFormat(\"en-US\", {\n hour12: !1,\n timeZone: e,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }) : new Intl.DateTimeFormat(\"en-US\", {\n hourCycle: \"h23\",\n timeZone: e,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return sn[e];\n}\nfunction En(e, n, a, t, r, l, c) {\n var y = /* @__PURE__ */ new Date(0);\n return y.setUTCFullYear(e, n, a), y.setUTCHours(t, r, l, c), y;\n}\nvar Zn = 36e5, sr = 6e4, un = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-]\\d{2}):?(\\d{2})$/\n};\nfunction Fn(e, n, a) {\n var t, r;\n if (!e || (t = un.timezoneZ.exec(e), t))\n return 0;\n var l;\n if (t = un.timezoneHH.exec(e), t)\n return l = parseInt(t[1], 10), qn(l) ? -(l * Zn) : NaN;\n if (t = un.timezoneHHMM.exec(e), t) {\n l = parseInt(t[1], 10);\n var c = parseInt(t[2], 10);\n return qn(l, c) ? (r = Math.abs(l) * Zn + c * sr, l > 0 ? -r : r) : NaN;\n }\n if (dr(e)) {\n n = new Date(n || Date.now());\n var y = a ? n : ur(n), D = Mn(y, e), S = a ? D : ir(n, D, e);\n return -S;\n }\n return NaN;\n}\nfunction ur(e) {\n return En(\n e.getFullYear(),\n e.getMonth(),\n e.getDate(),\n e.getHours(),\n e.getMinutes(),\n e.getSeconds(),\n e.getMilliseconds()\n );\n}\nfunction Mn(e, n) {\n var a = nr(e, n), t = En(\n a[0],\n a[1] - 1,\n a[2],\n a[3] % 24,\n a[4],\n a[5],\n 0\n ).getTime(), r = e.getTime(), l = r % 1e3;\n return r -= l >= 0 ? l : 1e3 + l, t - r;\n}\nfunction ir(e, n, a) {\n var t = e.getTime(), r = t - n, l = Mn(new Date(r), a);\n if (n === l)\n return n;\n r -= l - n;\n var c = Mn(new Date(r), a);\n return l === c ? l : Math.max(l, c);\n}\nfunction qn(e, n) {\n return -23 <= e && e <= 23 && (n == null || 0 <= n && n <= 59);\n}\nvar Xn = {};\nfunction dr(e) {\n if (Xn[e])\n return !0;\n try {\n return new Intl.DateTimeFormat(void 0, { timeZone: e }), Xn[e] = !0, !0;\n } catch {\n return !1;\n }\n}\nvar wa = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/, dn = 36e5, Jn = 6e4, cr = 2, Ye = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/,\n // 0 additional digits\n /^([+-]\\d{3})$/,\n // 1 additional digit\n /^([+-]\\d{4})$/\n // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/,\n // 0 additional digits\n /^([+-]\\d{5})/,\n // 1 additional digit\n /^([+-]\\d{6})/\n // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: wa\n};\nfunction $n(e, n) {\n if (arguments.length < 1)\n throw new TypeError(\"1 argument required, but only \" + arguments.length + \" present\");\n if (e === null)\n return /* @__PURE__ */ new Date(NaN);\n var a = n || {}, t = a.additionalDigits == null ? cr : er(a.additionalDigits);\n if (t !== 2 && t !== 1 && t !== 0)\n throw new RangeError(\"additionalDigits must be 0, 1 or 2\");\n if (e instanceof Date || typeof e == \"object\" && Object.prototype.toString.call(e) === \"[object Date]\")\n return new Date(e.getTime());\n if (typeof e == \"number\" || Object.prototype.toString.call(e) === \"[object Number]\")\n return new Date(e);\n if (!(typeof e == \"string\" || Object.prototype.toString.call(e) === \"[object String]\"))\n return /* @__PURE__ */ new Date(NaN);\n var r = fr(e), l = vr(r.date, t), c = l.year, y = l.restDateString, D = mr(y, c);\n if (isNaN(D))\n return /* @__PURE__ */ new Date(NaN);\n if (D) {\n var S = D.getTime(), g = 0, Y;\n if (r.time && (g = gr(r.time), isNaN(g)))\n return /* @__PURE__ */ new Date(NaN);\n if (r.timeZone || a.timeZone) {\n if (Y = Fn(r.timeZone || a.timeZone, new Date(S + g)), isNaN(Y))\n return /* @__PURE__ */ new Date(NaN);\n } else\n Y = Gn(new Date(S + g)), Y = Gn(new Date(S + g + Y));\n return new Date(S + g + Y);\n } else\n return /* @__PURE__ */ new Date(NaN);\n}\nfunction fr(e) {\n var n = {}, a = Ye.dateTimePattern.exec(e), t;\n if (a ? (n.date = a[1], t = a[3]) : (a = Ye.datePattern.exec(e), a ? (n.date = a[1], t = a[2]) : (n.date = null, t = e)), t) {\n var r = Ye.timeZone.exec(t);\n r ? (n.time = t.replace(r[1], \"\"), n.timeZone = r[1].trim()) : n.time = t;\n }\n return n;\n}\nfunction vr(e, n) {\n var a = Ye.YYY[n], t = Ye.YYYYY[n], r;\n if (r = Ye.YYYY.exec(e) || t.exec(e), r) {\n var l = r[1];\n return {\n year: parseInt(l, 10),\n restDateString: e.slice(l.length)\n };\n }\n if (r = Ye.YY.exec(e) || a.exec(e), r) {\n var c = r[1];\n return {\n year: parseInt(c, 10) * 100,\n restDateString: e.slice(c.length)\n };\n }\n return {\n year: null\n };\n}\nfunction mr(e, n) {\n if (n === null)\n return null;\n var a, t, r, l;\n if (e.length === 0)\n return t = /* @__PURE__ */ new Date(0), t.setUTCFullYear(n), t;\n if (a = Ye.MM.exec(e), a)\n return t = /* @__PURE__ */ new Date(0), r = parseInt(a[1], 10) - 1, Qn(n, r) ? (t.setUTCFullYear(n, r), t) : /* @__PURE__ */ new Date(NaN);\n if (a = Ye.DDD.exec(e), a) {\n t = /* @__PURE__ */ new Date(0);\n var c = parseInt(a[1], 10);\n return pr(n, c) ? (t.setUTCFullYear(n, 0, c), t) : /* @__PURE__ */ new Date(NaN);\n }\n if (a = Ye.MMDD.exec(e), a) {\n t = /* @__PURE__ */ new Date(0), r = parseInt(a[1], 10) - 1;\n var y = parseInt(a[2], 10);\n return Qn(n, r, y) ? (t.setUTCFullYear(n, r, y), t) : /* @__PURE__ */ new Date(NaN);\n }\n if (a = Ye.Www.exec(e), a)\n return l = parseInt(a[1], 10) - 1, ea(n, l) ? xn(n, l) : /* @__PURE__ */ new Date(NaN);\n if (a = Ye.WwwD.exec(e), a) {\n l = parseInt(a[1], 10) - 1;\n var D = parseInt(a[2], 10) - 1;\n return ea(n, l, D) ? xn(n, l, D) : /* @__PURE__ */ new Date(NaN);\n }\n return null;\n}\nfunction gr(e) {\n var n, a, t;\n if (n = Ye.HH.exec(e), n)\n return a = parseFloat(n[1].replace(\",\", \".\")), cn(a) ? a % 24 * dn : NaN;\n if (n = Ye.HHMM.exec(e), n)\n return a = parseInt(n[1], 10), t = parseFloat(n[2].replace(\",\", \".\")), cn(a, t) ? a % 24 * dn + t * Jn : NaN;\n if (n = Ye.HHMMSS.exec(e), n) {\n a = parseInt(n[1], 10), t = parseInt(n[2], 10);\n var r = parseFloat(n[3].replace(\",\", \".\"));\n return cn(a, t, r) ? a % 24 * dn + t * Jn + r * 1e3 : NaN;\n }\n return null;\n}\nfunction xn(e, n, a) {\n n = n || 0, a = a || 0;\n var t = /* @__PURE__ */ new Date(0);\n t.setUTCFullYear(e, 0, 4);\n var r = t.getUTCDay() || 7, l = n * 7 + a + 1 - r;\n return t.setUTCDate(t.getUTCDate() + l), t;\n}\nvar yr = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], hr = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction Da(e) {\n return e % 400 === 0 || e % 4 === 0 && e % 100 !== 0;\n}\nfunction Qn(e, n, a) {\n if (n < 0 || n > 11)\n return !1;\n if (a != null) {\n if (a < 1)\n return !1;\n var t = Da(e);\n if (t && a > hr[n] || !t && a > yr[n])\n return !1;\n }\n return !0;\n}\nfunction pr(e, n) {\n if (n < 1)\n return !1;\n var a = Da(e);\n return !(a && n > 366 || !a && n > 365);\n}\nfunction ea(e, n, a) {\n return !(n < 0 || n > 52 || a != null && (a < 0 || a > 6));\n}\nfunction cn(e, n, a) {\n return !(e != null && (e < 0 || e >= 25) || n != null && (n < 0 || n >= 60) || a != null && (a < 0 || a >= 60));\n}\nvar Tn = { exports: {} }, An = { exports: {} };\n(function(e, n) {\n Object.defineProperty(n, \"__esModule\", {\n value: !0\n }), n.default = a;\n function a(t, r) {\n if (t == null)\n throw new TypeError(\"assign requires that input parameter not be null or undefined\");\n for (var l in r)\n Object.prototype.hasOwnProperty.call(r, l) && (t[l] = r[l]);\n return t;\n }\n e.exports = n.default;\n})(An, An.exports);\nvar br = An.exports;\n(function(e, n) {\n var a = xa.default;\n Object.defineProperty(n, \"__esModule\", {\n value: !0\n }), n.default = r;\n var t = a(br);\n function r(l) {\n return (0, t.default)({}, l);\n }\n e.exports = n.default;\n})(Tn, Tn.exports);\nvar kr = Tn.exports;\nconst wr = /* @__PURE__ */ Bn(kr);\nfunction Dr(e, n, a) {\n var t = $n(e, a), r = Fn(n, t, !0), l = new Date(t.getTime() - r), c = /* @__PURE__ */ new Date(0);\n return c.setFullYear(l.getUTCFullYear(), l.getUTCMonth(), l.getUTCDate()), c.setHours(l.getUTCHours(), l.getUTCMinutes(), l.getUTCSeconds(), l.getUTCMilliseconds()), c;\n}\nfunction Mr(e, n, a) {\n if (typeof e == \"string\" && !e.match(wa)) {\n var t = wr(a);\n return t.timeZone = n, $n(e, t);\n }\n var r = $n(e, a), l = En(\n r.getFullYear(),\n r.getMonth(),\n r.getDate(),\n r.getHours(),\n r.getMinutes(),\n r.getSeconds(),\n r.getMilliseconds()\n ).getTime(), c = Fn(n, new Date(l));\n return new Date(l + c);\n}\nfunction ta(e) {\n return (n) => new Intl.DateTimeFormat(e, { weekday: \"short\", timeZone: \"UTC\" }).format(/* @__PURE__ */ new Date(`2017-01-0${n}T00:00:00+00:00`)).slice(0, 2);\n}\nfunction $r(e) {\n return (n) => dt(/* @__PURE__ */ new Date(`2017-01-0${n}T00:00:00+00:00`), \"EEEEEE\", { locale: e });\n}\nconst Tr = (e, n, a) => {\n const t = [1, 2, 3, 4, 5, 6, 7];\n let r;\n if (e !== null)\n try {\n r = t.map($r(e));\n } catch {\n r = t.map(ta(n));\n }\n else\n r = t.map(ta(n));\n const l = r.slice(0, a), c = r.slice(a + 1, r.length);\n return [r[a]].concat(...c).concat(...l);\n}, Vn = (e, n) => {\n const a = [];\n for (let t = +e[0]; t <= +e[1]; t++)\n a.push({ value: +t, text: `${t}` });\n return n ? a.reverse() : a;\n}, Ma = (e, n, a) => {\n const t = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((l) => {\n const c = l < 10 ? `0${l}` : l;\n return /* @__PURE__ */ new Date(`2017-${c}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const l = a === \"long\" ? \"MMMM\" : \"MMM\";\n return t.map((c, y) => {\n const D = dt(c, l, { locale: e });\n return {\n text: D.charAt(0).toUpperCase() + D.substring(1),\n value: y\n };\n });\n } catch {\n }\n const r = new Intl.DateTimeFormat(n, { month: a, timeZone: \"UTC\" });\n return t.map((l, c) => {\n const y = r.format(l);\n return {\n text: y.charAt(0).toUpperCase() + y.substring(1),\n value: c\n };\n });\n}, Ar = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Ae = (e) => {\n const n = m(e);\n return n != null && n.$el ? n == null ? void 0 : n.$el : n;\n}, Sr = (e) => Object.assign({ type: \"dot\" }, e), $a = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Gt = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, $e = (e) => e, na = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, aa = (e) => e === null, _r = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, Pr = (e) => {\n const n = [], a = (t) => t.filter((r) => r);\n for (let t = 0; t < e.length; t += 3) {\n const r = [e[t], e[t + 1], e[t + 2]];\n n.push(a(r));\n }\n return n;\n}, Rt = (e, n, a) => {\n const t = a ?? a === 0, r = n ?? n === 0;\n if (!t && !r)\n return !1;\n const l = +a, c = +n;\n return t && r ? +e > l || +e < c : t ? +e > l : r ? +e < c : !1;\n}, kt = (e, n) => Pr(e).map((a) => a.map((t) => {\n const { active: r, disabled: l, isBetween: c } = n(t);\n return {\n ...t,\n active: r,\n disabled: l,\n className: {\n dp__overlay_cell_active: r,\n dp__overlay_cell: !r,\n dp__overlay_cell_disabled: l,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: l && r,\n dp__cell_in_between: c\n }\n };\n})), tt = (e, n, a = !1) => {\n e && n.allowStopPropagation && (a && e.stopImmediatePropagation(), e.stopPropagation());\n}, ra = (e, n, a, t, r) => {\n const l = kn(e, n.slice(0, e.length), /* @__PURE__ */ new Date());\n return zt(l) && Ka(l) ? t || r ? l : we(l, {\n hours: +a.hours,\n minutes: +(a == null ? void 0 : a.minutes),\n seconds: +(a == null ? void 0 : a.seconds),\n milliseconds: 0\n }) : null;\n}, Cr = (e, n, a, t, r) => {\n const l = Array.isArray(a) ? a[0] : a;\n if (typeof n == \"string\")\n return ra(e, n, l, t, r);\n if (Array.isArray(n)) {\n let c = null;\n for (const y of n)\n if (c = ra(e, y, l, t, r), c)\n break;\n return c;\n }\n return typeof n == \"function\" ? n(e) : null;\n}, P = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), Rr = (e, n, a) => {\n if (n) {\n const r = (e.getMonth() + 1).toString().padStart(2, \"0\"), l = e.getDate().toString().padStart(2, \"0\"), c = e.getHours().toString().padStart(2, \"0\"), y = e.getMinutes().toString().padStart(2, \"0\"), D = a ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${r}-${l}T${c}:${y}:${D}.000Z`;\n }\n const t = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(t).toISOString();\n}, He = (e) => {\n let n = P(JSON.parse(JSON.stringify(e)));\n return n = ca(n, 0), n = fa(n, 0), n = va(n, 0), n = Cn(n, 0), n;\n}, nt = (e, n, a, t) => {\n let r = e ? P(e) : P();\n return (n || n === 0) && (r = ca(r, +n)), (a || a === 0) && (r = fa(r, +a)), (t || t === 0) && (r = va(r, +t)), Cn(r, 0);\n}, Pe = (e, n) => !e || !n ? !1 : _t(He(e), He(n)), ge = (e, n) => !e || !n ? !1 : pt(He(e), He(n)), Re = (e, n) => !e || !n ? !1 : Pt(He(e), He(n)), Hn = (e, n, a) => e != null && e[0] && (e != null && e[1]) ? Re(a, e[0]) && Pe(a, e[1]) : e != null && e[0] && n ? Re(a, e[0]) && Pe(a, n) || Pe(a, e[0]) && Re(a, n) : !1, We = (e) => {\n const n = we(new Date(e), { date: 1 });\n return He(n);\n}, fn = (e, n, a) => n && (a || a === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((t) => t === n ? [t, a] : [t, isNaN(+e[t]) ? void 0 : +e[t]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, vt = (e) => ({\n hours: qe(e),\n minutes: Xe(e),\n seconds: bt(e)\n}), Ta = (e, n) => {\n if (n) {\n const a = fe(P(n));\n if (a > e)\n return 12;\n if (a === e)\n return ve(P(n));\n }\n}, Aa = (e, n) => {\n if (n) {\n const a = fe(P(n));\n return a < e ? -1 : a === e ? ve(P(n)) : void 0;\n }\n}, wt = (e) => {\n if (e)\n return fe(P(e));\n}, Ge = (e, n) => n ? Dr(e, n) : e, Sa = (e, n) => n ? Mr(e, n) : e, la = (e) => e instanceof Date ? e : za(e), _a = (e, n) => {\n const a = Re(e, n) ? n : e, t = Re(n, e) ? n : e;\n return ma({ start: a, end: t });\n}, Or = (e) => {\n const n = ft(e, 1);\n return { month: ve(n), year: fe(n) };\n}, jt = (e, n, a) => {\n const t = ga(Ge(e, n), { weekStartsOn: +a }), r = ja(Ge(e, n), { weekStartsOn: +a });\n return [t, r];\n}, Pa = (e, n) => {\n const a = {\n hours: qe(P()),\n minutes: Xe(P()),\n seconds: n ? bt(P()) : 0\n };\n return Object.assign(a, e);\n}, et = (e, n, a) => [we(P(e), { date: 1 }), we(P(), { month: n, year: a, date: 1 })], Je = (e, n, a) => {\n let t = e ? P(e) : P();\n return (n || n === 0) && (t = Wa(t, n)), a && (t = ct(t, a)), t;\n}, Ca = (e, n, a, t, r) => {\n if (!t || r && !n || !r && !a)\n return !1;\n const l = r ? ft(e, 1) : Ct(e, 1), c = [ve(l), fe(l)];\n return r ? !Yr(...c, n) : !Nr(...c, a);\n}, Nr = (e, n, a) => Pe(...et(a, e, n)) || ge(...et(a, e, n)), Yr = (e, n, a) => Re(...et(a, e, n)) || ge(...et(a, e, n)), Ra = (e, n, a, t, r, l) => {\n if (typeof n == \"function\")\n return n(e);\n const c = a ? { locale: a } : void 0;\n return Array.isArray(e) ? `${dt(e[0], l, c)}${r && !e[1] ? \"\" : t}${e[1] ? dt(e[1], l, c) : \"\"}` : dt(e, l, c);\n}, yt = (e) => {\n if (e)\n return null;\n throw new Error(Gt.prop(\"partial-range\"));\n}, Ht = (e, n) => {\n if (n)\n return e();\n throw new Error(Gt.prop(\"range\"));\n}, Sn = (e) => Array.isArray(e) ? zt(e[0]) && (e[1] ? zt(e[1]) : !0) : e ? zt(e) : !1, Ir = (e) => we(P(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), vn = (e, n, a, t) => {\n if (!e)\n return !0;\n if (t) {\n const r = a === \"max\" ? _t(e, n) : Pt(e, n), l = { seconds: 0, milliseconds: 0 };\n return r || pt(we(e, l), we(n, l));\n }\n return a === \"max\" ? e.getTime() <= n.getTime() : e.getTime() >= n.getTime();\n}, oa = (e, n, a, t, r) => {\n const l = e ? Ir(e) : P(n);\n return Array.isArray(t) ? vn(t[0], l, a, !!n) && vn(t[1], l, a, !!n) && r : vn(t, l, a, !!n) && r;\n}, mn = (e) => we(P(), vt(e)), Br = (e, n) => Array.isArray(e) ? e.map((a) => P(a)).filter((a) => fe(P(a)) === n).map((a) => ve(a)) : [], At = Nt({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Oa = () => {\n const e = (t) => {\n At.menuFocused = t;\n }, n = (t) => {\n At.shiftKeyInMenu !== t && (At.shiftKeyInMenu = t);\n };\n return {\n control: W(() => ({ shiftKeyInMenu: At.shiftKeyInMenu, menuFocused: At.menuFocused })),\n setMenuFocused: e,\n setShiftKey: n\n };\n}, ke = Nt({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), gn = Z(null), Ut = Z(!1), yn = Z(!1), hn = Z(!1), pn = Z(!1), Oe = Z(0), _e = Z(0), lt = () => {\n const e = W(() => Ut.value ? [...ke.selectionGrid, ke.actionRow].filter((p) => p.length) : yn.value ? [\n ...ke.timePicker[0],\n ...ke.timePicker[1],\n pn.value ? [] : [gn.value],\n ke.actionRow\n ].filter((p) => p.length) : hn.value ? [...ke.monthPicker, ke.actionRow] : [ke.monthYear, ...ke.calendar, ke.time, ke.actionRow].filter((p) => p.length)), n = (p) => {\n Oe.value = p ? Oe.value + 1 : Oe.value - 1;\n let M = null;\n e.value[_e.value] && (M = e.value[_e.value][Oe.value]), M || (Oe.value = p ? Oe.value - 1 : Oe.value + 1);\n }, a = (p) => {\n if (_e.value === 0 && !p || _e.value === e.value.length && p)\n return;\n _e.value = p ? _e.value + 1 : _e.value - 1, e.value[_e.value] ? e.value[_e.value] && !e.value[_e.value][Oe.value] && Oe.value !== 0 && (Oe.value = e.value[_e.value].length - 1) : _e.value = p ? _e.value - 1 : _e.value + 1;\n }, t = (p) => {\n let M = null;\n e.value[_e.value] && (M = e.value[_e.value][Oe.value]), M ? M.focus({ preventScroll: !Ut.value }) : Oe.value = p ? Oe.value - 1 : Oe.value + 1;\n }, r = () => {\n n(!0), t(!0);\n }, l = () => {\n n(!1), t(!1);\n }, c = () => {\n a(!1), t(!0);\n }, y = () => {\n a(!0), t(!0);\n }, D = (p, M) => {\n ke[M] = p;\n }, S = (p, M) => {\n ke[M] = p;\n }, g = () => {\n Oe.value = 0, _e.value = 0;\n };\n return {\n buildMatrix: D,\n buildMultiLevelMatrix: S,\n setTimePickerBackRef: (p) => {\n gn.value = p;\n },\n setSelectionGrid: (p) => {\n Ut.value = p, g(), p || (ke.selectionGrid = []);\n },\n setTimePicker: (p, M = !1) => {\n yn.value = p, pn.value = M, g(), p || (ke.timePicker[0] = [], ke.timePicker[1] = []);\n },\n setTimePickerElements: (p, M = 0) => {\n ke.timePicker[M] = p;\n },\n arrowRight: r,\n arrowLeft: l,\n arrowUp: c,\n arrowDown: y,\n clearArrowNav: () => {\n ke.monthYear = [], ke.calendar = [], ke.time = [], ke.actionRow = [], ke.selectionGrid = [], ke.timePicker[0] = [], ke.timePicker[1] = [], Ut.value = !1, yn.value = !1, pn.value = !1, hn.value = !1, g(), gn.value = null;\n },\n setMonthPicker: (p) => {\n hn.value = p, g();\n },\n refSets: ke\n // exposed for testing\n };\n}, sa = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Er = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n calendarWrap: \"Calendar wrapper\",\n calendarDays: \"Calendar days\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (n) => `Increment ${n}`,\n decrementValue: (n) => `Decrement ${n}`,\n openTpOverlay: (n) => `Open ${n} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: () => \"\",\n ...e ?? {}\n}), ua = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Fr = (e) => {\n const n = typeof e == \"object\" && e, a = {\n static: !0,\n solo: !1\n };\n if (!e)\n return { ...a, count: ua(!1) };\n const t = n ? e : {}, r = n ? t.count ?? !0 : e, l = ua(r);\n return Object.assign(a, t, { count: l });\n}, Vr = (e, n, a) => e || (typeof a == \"string\" ? a : n), Hr = (e) => typeof e == \"boolean\" ? e ? sa({}) : !1 : sa(e), Ur = (e) => {\n const n = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: !0,\n rangeSeparator: \" - \"\n };\n return typeof e == \"object\" ? { ...n, ...e ?? {}, enabled: !0 } : { ...n, enabled: e };\n}, Lr = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Wr = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), zr = (e) => {\n const n = { input: !1 };\n return typeof e == \"object\" ? { ...n, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...n\n };\n}, jr = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0\n}, ...e ?? {} }), Se = (e) => {\n const n = () => {\n const J = e.enableSeconds ? \":ss\" : \"\";\n return e.is24 ? `HH:mm${J}` : `hh:mm${J} aa`;\n }, a = () => e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? n() : e.weekPicker ? \"MM/dd/yyyy\" : e.yearPicker ? \"yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${n()}` : \"MM/dd/yyyy\", t = (J) => Pa(J, e.enableSeconds), r = () => e.range ? e.startTime && Array.isArray(e.startTime) ? [t(e.startTime[0]), t(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? t(e.startTime) : null, l = W(() => Fr(e.multiCalendars)), c = W(() => r()), y = W(() => Er(e.ariaLabels)), D = W(() => Lr(e.filters)), S = W(() => Hr(e.transitions)), g = W(() => Wr(e.actionRow)), Y = W(\n () => Vr(e.previewFormat, e.format, a())\n ), R = W(() => Ur(e.textInput)), G = W(() => zr(e.inline)), q = W(() => jr(e.config));\n return {\n defaultedTransitions: S,\n defaultedMultiCalendars: l,\n defaultedStartTime: c,\n defaultedAriaLabels: y,\n defaultedFilters: D,\n defaultedActionRow: g,\n defaultedPreviewFormat: Y,\n defaultedTextInput: R,\n defaultedInline: G,\n defaultedConfig: q,\n getDefaultPattern: a,\n getDefaultStartTime: r\n };\n}, Kr = (e, n, a) => {\n const t = Z(), { defaultedTextInput: r, getDefaultPattern: l } = Se(n), c = Z(\"\"), y = Kt(n, \"format\");\n gt(t, () => {\n e(\"internal-model-change\", t.value);\n }), gt(y, () => {\n v();\n });\n const D = (s) => Sa(s, n.timezone), S = (s) => Ge(s, n.timezone), g = (s, u) => Ra(\n s,\n n.format,\n n.formatLocale,\n r.value.rangeSeparator,\n n.modelAuto,\n u ?? l()\n ), Y = (s) => {\n const u = s ?? P();\n return n.modelType ? f(u) : {\n hours: qe(u),\n minutes: Xe(u),\n seconds: n.enableSeconds ? bt(u) : 0\n };\n }, R = (s) => n.modelType ? f(s) : { month: ve(s), year: fe(s) }, G = (s) => Array.isArray(s) ? Ht(\n () => [\n ct(P(), s[0]),\n s[1] ? ct(P(), s[1]) : yt(n.partialRange)\n ],\n n.range\n ) : ct(P(), +s), q = (s, u) => (typeof s == \"string\" || typeof s == \"number\") && n.modelType ? I(s) : u, J = (s) => Array.isArray(s) ? [\n q(\n s[0],\n nt(null, +s[0].hours, +s[0].minutes, s[0].seconds)\n ),\n q(\n s[1],\n nt(null, +s[1].hours, +s[1].minutes, s[1].seconds)\n )\n ] : q(s, nt(null, s.hours, s.minutes, s.seconds)), Q = (s) => Array.isArray(s) ? n.multiDates ? s.map((u) => q(u, Je(null, +u.month, +u.year))) : Ht(\n () => [\n q(s[0], Je(null, +s[0].month, +s[0].year)),\n q(\n s[1],\n s[1] ? Je(null, +s[1].month, +s[1].year) : yt(n.partialRange)\n )\n ],\n n.range\n ) : q(s, Je(null, +s.month, +s.year)), p = (s) => {\n if (Array.isArray(s))\n return s.map((u) => I(u));\n throw new Error(Gt.dateArr(\"multi-dates\"));\n }, M = (s) => {\n if (Array.isArray(s))\n return [P(s[0]), P(s[1])];\n throw new Error(Gt.dateArr(\"week-picker\"));\n }, E = (s) => n.modelAuto ? Array.isArray(s) ? [I(s[0]), I(s[1])] : n.autoApply ? [I(s)] : [I(s), null] : Array.isArray(s) ? Ht(\n () => [\n I(s[0]),\n s[1] ? I(s[1]) : yt(n.partialRange)\n ],\n n.range\n ) : I(s), z = () => {\n Array.isArray(t.value) && n.range && t.value.length === 1 && t.value.push(yt(n.partialRange));\n }, K = () => {\n const s = t.value;\n return [\n f(s[0]),\n s[1] ? f(s[1]) : yt(n.partialRange)\n ];\n }, _ = () => t.value[1] ? K() : f($e(t.value[0])), re = () => (t.value || []).map((s) => f(s)), x = () => (z(), n.modelAuto ? _() : n.multiDates ? re() : Array.isArray(t.value) ? Ht(() => K(), n.range) : f($e(t.value))), L = (s) => !s || Array.isArray(s) && !s.length ? null : n.timePicker ? J($e(s)) : n.monthPicker ? Q($e(s)) : n.yearPicker ? G($e(s)) : n.multiDates ? p($e(s)) : n.weekPicker ? M($e(s)) : E($e(s)), h = (s) => {\n const u = L(s);\n Sn($e(u)) ? (t.value = $e(u), v()) : (t.value = null, c.value = \"\");\n }, T = () => {\n const s = (u) => dt(u, r.value.format);\n return `${s(t.value[0])} ${r.value.rangeSeparator} ${t.value[1] ? s(t.value[1]) : \"\"}`;\n }, H = () => a.value && t.value ? Array.isArray(t.value) ? T() : dt(t.value, r.value.format) : g(t.value), ee = () => t.value ? n.multiDates ? t.value.map((s) => g(s)).join(\"; \") : r.value.enabled && typeof r.value.format == \"string\" ? H() : g(t.value) : \"\", v = () => {\n !n.format || typeof n.format == \"string\" || r.value.enabled && typeof r.value.format == \"string\" ? c.value = ee() : c.value = n.format(t.value);\n }, I = (s) => {\n if (n.utc) {\n const u = new Date(s);\n return n.utc === \"preserve\" ? new Date(u.getTime() + u.getTimezoneOffset() * 6e4) : u;\n }\n return n.modelType ? n.modelType === \"date\" || n.modelType === \"timestamp\" ? S(new Date(s)) : n.modelType === \"format\" && (typeof n.format == \"string\" || !n.format) ? kn(s, l(), /* @__PURE__ */ new Date()) : S(kn(s, n.modelType, /* @__PURE__ */ new Date())) : S(new Date(s));\n }, f = (s) => s ? n.utc ? Rr(s, n.utc === \"preserve\", n.enableSeconds) : n.modelType ? n.modelType === \"timestamp\" ? +D(s) : n.modelType === \"format\" && (typeof n.format == \"string\" || !n.format) ? g(D(s)) : g(D(s), n.modelType) : D(s) : \"\", k = (s, u = !1) => {\n if (e(\"update:model-value\", s), n.emitTimezone && u) {\n const C = Array.isArray(s) ? s.map((O) => Ge($e(O)), n.emitTimezone) : Ge($e(s), n.emitTimezone);\n e(\"update:model-timezone-value\", C);\n }\n }, d = (s) => Array.isArray(t.value) ? n.multiDates ? t.value.map((u) => s(u)) : [\n s(t.value[0]),\n t.value[1] ? s(t.value[1]) : yt(n.partialRange)\n ] : s($e(t.value)), o = (s) => k($e(d(s)));\n return {\n inputValue: c,\n internalModelValue: t,\n checkBeforeEmit: () => t.value ? n.range ? n.partialRange ? t.value.length >= 1 : t.value.length === 2 : !!t.value : !1,\n parseExternalModelValue: h,\n formatInputValue: v,\n emitModelValue: () => (v(), n.monthPicker ? o(R) : n.timePicker ? o(Y) : n.yearPicker ? o(fe) : n.weekPicker ? k(t.value, !0) : k(x(), !0))\n };\n}, Gr = (e, n) => {\n const { defaultedFilters: a } = Se(e), { validateMonthYearInRange: t } = Et(e), r = (S, g) => {\n let Y = S;\n return a.value.months.includes(ve(Y)) ? (Y = g ? ft(S, 1) : Ct(S, 1), r(Y, g)) : Y;\n }, l = (S, g) => {\n let Y = S;\n return a.value.years.includes(fe(Y)) ? (Y = g ? ya(S, 1) : ha(S, 1), l(Y, g)) : Y;\n }, c = (S, g = !1) => {\n const Y = we(/* @__PURE__ */ new Date(), { month: e.month, year: e.year });\n let R = S ? ft(Y, 1) : Ct(Y, 1);\n e.disableYearSelect && (R = ct(R, e.year));\n let G = ve(R), q = fe(R);\n a.value.months.includes(G) && (R = r(R, S), G = ve(R), q = fe(R)), a.value.years.includes(q) && (R = l(R, S), q = fe(R)), t(G, q, S, e.preventMinMaxNavigation) && y(G, q, g);\n }, y = (S, g, Y) => {\n n(\"update-month-year\", { month: S, year: g, fromNav: Y });\n }, D = W(() => (S) => Ca(\n we(/* @__PURE__ */ new Date(), { month: e.month, year: e.year }),\n e.maxDate,\n e.minDate,\n e.preventMinMaxNavigation,\n S\n ));\n return { handleMonthYearChange: c, isDisabled: D, updateMonthYear: y };\n};\nvar ht = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(ht || {}), Le = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(Le || {}), ut = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(ut || {}), mt = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(mt || {}), je = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(je || {});\nconst Zr = ({\n menuRef: e,\n menuRefInner: n,\n inputRef: a,\n pickerWrapperRef: t,\n inline: r,\n emit: l,\n props: c,\n slots: y\n}) => {\n const D = Z({}), S = Z(!1), g = Z({\n top: \"0\",\n left: \"0\"\n }), Y = Z(!1), R = Kt(c, \"teleportCenter\");\n gt(R, () => {\n g.value = JSON.parse(JSON.stringify({})), z();\n });\n const G = (f) => {\n if (c.teleport) {\n const k = f.getBoundingClientRect();\n return {\n left: k.left + window.scrollX,\n top: k.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, q = (f, k) => {\n g.value.left = `${f + k - D.value.width}px`;\n }, J = (f) => {\n g.value.left = `${f}px`;\n }, Q = (f, k) => {\n c.position === ht.left && J(f), c.position === ht.right && q(f, k), c.position === ht.center && (g.value.left = `${f + k / 2 - D.value.width / 2}px`);\n }, p = (f) => {\n const { width: k, height: d } = f.getBoundingClientRect(), { top: o, left: $ } = c.altPosition ? c.altPosition(f) : G(f);\n return { top: +o, left: +$, width: k, height: d };\n }, M = () => {\n g.value.left = \"50%\", g.value.top = \"50%\", g.value.transform = \"translate(-50%, -50%)\", g.value.position = \"fixed\", delete g.value.opacity;\n }, E = () => {\n const f = Ae(a), { top: k, left: d, transform: o } = c.altPosition(f);\n g.value = { top: `${k}px`, left: `${d}px`, transform: o ?? \"\" };\n }, z = (f = !0) => {\n var k;\n if (!r.value.enabled) {\n if (R.value)\n return M();\n if (c.altPosition !== null)\n return E();\n if (f) {\n const d = c.teleport ? (k = n.value) == null ? void 0 : k.$el : e.value;\n d && (D.value = d.getBoundingClientRect()), l(\"recalculate-position\");\n }\n return T();\n }\n }, K = ({ inputEl: f, left: k, width: d }) => {\n window.screen.width > 768 && !S.value && Q(k, d), x(f);\n }, _ = (f) => {\n const { top: k, left: d, height: o, width: $ } = p(f);\n g.value.top = `${o + k + +c.offset}px`, Y.value = !1, S.value || (g.value.left = `${d + $ / 2 - D.value.width / 2}px`), K({ inputEl: f, left: d, width: $ });\n }, re = (f) => {\n const { top: k, left: d, width: o } = p(f);\n g.value.top = `${k - +c.offset - D.value.height}px`, Y.value = !0, K({ inputEl: f, left: d, width: o });\n }, x = (f) => {\n if (c.autoPosition) {\n const { left: k, width: d } = p(f), { left: o, right: $ } = D.value;\n if (!S.value) {\n if (Math.abs(o) !== Math.abs($)) {\n if (o <= 0)\n return S.value = !0, J(k);\n if ($ >= document.documentElement.clientWidth)\n return S.value = !0, q(k, d);\n }\n return Q(k, d);\n }\n }\n }, L = () => {\n const f = Ae(a);\n if (f) {\n const { height: k } = D.value, { top: d, height: o } = f.getBoundingClientRect(), X = window.innerHeight - d - o, s = d;\n return k <= X ? ut.bottom : k > X && k <= s ? ut.top : X >= s ? ut.bottom : ut.top;\n }\n return ut.bottom;\n }, h = (f) => L() === ut.bottom ? _(f) : re(f), T = () => {\n const f = Ae(a);\n if (f)\n return c.autoPosition ? h(f) : _(f);\n }, H = function(f) {\n if (f) {\n const k = f.scrollHeight > f.clientHeight, o = window.getComputedStyle(f).overflowY.indexOf(\"hidden\") !== -1;\n return k && !o;\n }\n return !0;\n }, ee = function(f) {\n return !f || f === document.body || f.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : H(f) ? f : ee(f.parentNode);\n }, v = (f) => {\n if (f)\n switch (c.position) {\n case ht.left:\n return { left: 0, transform: \"translateX(0)\" };\n case ht.right:\n return { left: `${f.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${f.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: Y,\n menuStyle: g,\n xCorrect: S,\n setMenuPosition: z,\n getScrollableParent: ee,\n shadowRender: (f, k) => {\n var C, O, A;\n const d = document.createElement(\"div\"), o = (C = Ae(a)) == null ? void 0 : C.getBoundingClientRect();\n d.setAttribute(\"id\", \"dp--temp-container\");\n const $ = (O = t.value) != null && O.clientWidth ? t.value : document.body;\n $.append(d);\n const X = document.getElementById(\"dp--temp-container\"), s = v(o), u = Fa(\n f,\n {\n ...k,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...s }\n },\n Object.fromEntries(Object.keys(y).map((te) => [te, y[te]]))\n );\n jn(u, X), D.value = (A = u.el) == null ? void 0 : A.getBoundingClientRect(), jn(null, X), $.removeChild(X);\n }\n };\n}, st = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] }\n], qr = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], Xr = {\n all: () => st,\n monthYear: () => st.filter((e) => e.use.includes(\"month-year\")),\n input: () => qr,\n timePicker: () => st.filter((e) => e.use.includes(\"time\")),\n action: () => st.filter((e) => e.use.includes(\"action\")),\n calendar: () => st.filter((e) => e.use.includes(\"calendar\")),\n menu: () => st.filter((e) => e.use.includes(\"menu\")),\n shared: () => st.filter((e) => e.use.includes(\"shared\"))\n}, ze = (e, n, a) => {\n const t = [];\n return Xr[n]().forEach((r) => {\n e[r.name] && t.push(r.name);\n }), a != null && a.length && a.forEach((r) => {\n r.slot && t.push(r.slot);\n }), t;\n}, Bt = (e) => {\n const n = W(() => (t) => e.value ? t ? e.value.open : e.value.close : \"\"), a = W(() => (t) => e.value ? t ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: n, showTransition: !!e.value, menuTransition: a };\n}, Zt = (e, n) => {\n const a = Z([{ month: ve(P()), year: fe(P()) }]), t = Nt({\n hours: e.range ? [qe(P()), qe(P())] : qe(P()),\n minutes: e.range ? [Xe(P()), Xe(P())] : Xe(P()),\n seconds: e.range ? [0, 0] : 0\n }), r = W({\n get: () => e.internalModelValue,\n set: (y) => {\n !e.readonly && !e.disabled && n(\"update:internal-model-value\", y);\n }\n }), l = W(\n () => (y) => a.value[y] ? a.value[y].month : 0\n ), c = W(\n () => (y) => a.value[y] ? a.value[y].year : 0\n );\n return {\n calendars: a,\n time: t,\n modelValue: r,\n month: l,\n year: c\n };\n}, Jr = (e, n) => {\n const { defaultedMultiCalendars: a } = Se(n), { isDisabled: t, matchDate: r } = Et(n), l = Z(null), c = Z(P()), y = (o) => {\n !o.current && n.hideOffsetDates || (l.value = o.value);\n }, D = () => {\n l.value = null;\n }, S = (o) => Array.isArray(e.value) && n.range && e.value[0] && l.value ? o ? Re(l.value, e.value[0]) : Pe(l.value, e.value[0]) : !0, g = (o, $) => {\n const X = () => e.value ? $ ? e.value[0] || null : e.value[1] : null, s = e.value && Array.isArray(e.value) ? X() : null;\n return ge(P(o.value), s);\n }, Y = (o) => {\n const $ = Array.isArray(e.value) ? e.value[0] : null;\n return o ? !Pe(l.value ?? null, $) : !0;\n }, R = (o, $ = !0) => (n.range || n.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? n.hideOffsetDates && !o.current ? !1 : ge(P(o.value), e.value[$ ? 0 : 1]) : n.range ? g(o, $) && Y($) || ge(o.value, Array.isArray(e.value) ? e.value[0] : null) && S($) : !1, G = (o, $, X) => Array.isArray(e.value) && e.value[0] && e.value.length === 1 ? o ? !1 : X ? Re(e.value[0], $.value) : Pe(e.value[0], $.value) : !1, q = (o) => !e.value || n.hideOffsetDates && !o.current ? !1 : n.range ? n.modelAuto && Array.isArray(e.value) ? ge(o.value, e.value[0] ? e.value[0] : c.value) : !1 : n.multiDates && Array.isArray(e.value) ? e.value.some(($) => ge($, o.value)) : ge(o.value, e.value ? e.value : c.value), J = (o) => {\n if (n.autoRange || n.weekPicker) {\n if (l.value) {\n if (n.hideOffsetDates && !o.current)\n return !1;\n const $ = it(l.value, +n.autoRange), X = jt(P(l.value), n.timezone, n.weekStart);\n return n.weekPicker ? ge(X[1], P(o.value)) : ge($, P(o.value));\n }\n return !1;\n }\n return !1;\n }, Q = (o) => {\n if (n.autoRange || n.weekPicker) {\n if (l.value) {\n const $ = it(l.value, +n.autoRange);\n if (n.hideOffsetDates && !o.current)\n return !1;\n const X = jt(P(l.value), n.timezone, n.weekStart);\n return n.weekPicker ? Re(o.value, X[0]) && Pe(o.value, X[1]) : Re(o.value, l.value) && Pe(o.value, $);\n }\n return !1;\n }\n return !1;\n }, p = (o) => {\n if (n.autoRange || n.weekPicker) {\n if (l.value) {\n if (n.hideOffsetDates && !o.current)\n return !1;\n const $ = jt(P(l.value), n.timezone, n.weekStart);\n return n.weekPicker ? ge($[0], o.value) : ge(l.value, o.value);\n }\n return !1;\n }\n return !1;\n }, M = (o) => Hn(e.value, l.value, o.value), E = () => n.modelAuto && Array.isArray(n.internalModelValue) ? !!n.internalModelValue[0] : !1, z = () => n.modelAuto ? $a(n.internalModelValue) : !0, K = (o) => {\n if (Array.isArray(e.value) && e.value.length || n.weekPicker)\n return !1;\n const $ = n.range ? !R(o) && !R(o, !1) : !0;\n return !t(o.value) && !q(o) && !(!o.current && n.hideOffsetDates) && $;\n }, _ = (o) => n.range ? n.modelAuto ? E() && q(o) : !1 : q(o), re = (o) => {\n var $;\n return n.highlight ? r(\n o.value,\n ($ = n.arrMapValues) != null && $.highlightedDates ? n.arrMapValues.highlightedDates : n.highlight\n ) : !1;\n }, x = (o) => t(o.value) && n.highlightDisabledDays === !1, L = (o) => {\n var $;\n return ($ = n.highlightWeekDays) == null ? void 0 : $.includes(o.value.getDay());\n }, h = (o) => (n.range || n.weekPicker) && (!(a.value.count > 0) || o.current) && z() && !(!o.current && n.hideOffsetDates) && !q(o) ? M(o) : !1, T = (o) => {\n const { isRangeStart: $, isRangeEnd: X } = v(o), s = n.range ? $ || X : !1;\n return {\n dp__cell_offset: !o.current,\n dp__pointer: !n.disabled && !(!o.current && n.hideOffsetDates) && !t(o.value),\n dp__cell_disabled: t(o.value),\n dp__cell_highlight: !x(o) && (re(o) || L(o)) && !_(o) && !s,\n dp__cell_highlight_active: !x(o) && (re(o) || L(o)) && _(o),\n dp__today: !n.noToday && ge(o.value, c.value) && o.current\n };\n }, H = (o) => ({\n dp__active_date: _(o),\n dp__date_hover: K(o)\n }), ee = (o) => ({\n ...I(o),\n ...f(o),\n dp__range_between_week: h(o) && n.weekPicker\n }), v = (o) => {\n const $ = a.value.count > 0 ? o.current && R(o) && z() : R(o) && z(), X = a.value.count > 0 ? o.current && R(o, !1) && z() : R(o, !1) && z();\n return { isRangeStart: $, isRangeEnd: X };\n }, I = (o) => {\n const { isRangeStart: $, isRangeEnd: X } = v(o);\n return {\n dp__range_start: $,\n dp__range_end: X,\n dp__range_between: h(o) && !n.weekPicker,\n dp__date_hover_start: G(K(o), o, !0),\n dp__date_hover_end: G(K(o), o, !1)\n };\n }, f = (o) => ({\n ...I(o),\n dp__cell_auto_range: Q(o),\n dp__cell_auto_range_start: p(o),\n dp__cell_auto_range_end: J(o)\n }), k = (o) => n.range ? n.autoRange ? f(o) : n.modelAuto ? { ...H(o), ...I(o) } : I(o) : n.weekPicker ? ee(o) : H(o);\n return {\n setHoverDate: y,\n clearHoverDate: D,\n getDayClassData: (o) => n.hideOffsetDates && !o.current ? {} : {\n ...T(o),\n ...k(o),\n [n.dayClass ? n.dayClass(o.value) : \"\"]: !0,\n [n.calendarCellClassName]: !!n.calendarCellClassName\n }\n };\n}, Et = (e) => {\n const { defaultedFilters: n } = Se(e), a = () => {\n if (e.timezone)\n return e.timezone;\n if (e.utc)\n return \"UTC\";\n }, t = (h) => {\n const T = He(r(P(h))).toISOString(), [H] = T.split(\"T\");\n return H;\n }, r = (h) => e.utc === \"preserve\" ? Sa(h, a()) : Ge(h, a()), l = (h) => {\n var $;\n const T = e.maxDate ? Re(r(h), r(P(e.maxDate))) : !1, H = e.minDate ? Pe(r(h), r(P(e.minDate))) : !1, ee = S(\n r(h),\n ($ = e.arrMapValues) != null && $.disabledDates ? e.arrMapValues.disabledDates : e.disabledDates\n ), I = n.value.months.map((X) => +X).includes(ve(h)), f = e.disabledWeekDays.length ? e.disabledWeekDays.some((X) => +X === Ga(h)) : !1, k = Y(h), d = fe(h), o = d < +e.yearRange[0] || d > +e.yearRange[1];\n return !(T || H || ee || I || o || f || k);\n }, c = (h, T) => Pe(...et(e.minDate, h, T)) || ge(...et(e.minDate, h, T)), y = (h, T) => Re(...et(e.maxDate, h, T)) || ge(...et(e.maxDate, h, T)), D = (h, T, H) => {\n let ee = !1;\n return e.maxDate && H && y(h, T) && (ee = !0), e.minDate && !H && c(h, T) && (ee = !0), ee;\n }, S = (h, T) => h ? T instanceof Map ? !!T.get(t(h)) : Array.isArray(T) ? T.some((H) => ge(r(P(H)), r(h))) : T ? T(P(JSON.parse(JSON.stringify(h)))) : !1 : !0, g = (h, T, H, ee) => {\n let v = !1;\n return ee ? e.minDate && e.maxDate ? v = D(h, T, H) : (e.minDate && c(h, T) || e.maxDate && y(h, T)) && (v = !0) : v = !0, v;\n }, Y = (h) => {\n var T, H, ee, v, I;\n return Array.isArray(e.allowedDates) && !((T = e.allowedDates) != null && T.length) ? !0 : (H = e.arrMapValues) != null && H.allowedDates ? !S(h, (ee = e.arrMapValues) == null ? void 0 : ee.allowedDates) : (v = e.allowedDates) != null && v.length ? !((I = e.allowedDates) != null && I.some((f) => ge(r(P(f)), r(h)))) : !1;\n }, R = (h) => !l(h), G = (h) => e.noDisabledRange ? !ma({ start: h[0], end: h[1] }).some((H) => R(H)) : !0, q = (h, T, H = 0) => {\n if (Array.isArray(T) && T[H]) {\n const ee = Za(h, T[H]), v = _a(T[H], h), I = v.length === 1 ? 0 : v.filter((k) => R(k)).length, f = Math.abs(ee) - I;\n if (e.minRange && e.maxRange)\n return f >= +e.minRange && f <= +e.maxRange;\n if (e.minRange)\n return f >= +e.minRange;\n if (e.maxRange)\n return f <= +e.maxRange;\n }\n return !0;\n }, J = (h) => new Map(h.map((T) => [t(T), !0])), Q = (h) => Array.isArray(h) && h.length > 0, p = () => {\n const h = {\n disabledDates: null,\n allowedDates: null,\n highlightedDates: null\n };\n return Q(e.allowedDates) && (h.allowedDates = J(e.allowedDates)), Q(e.highlight) && (h.highlightedDates = J(e.highlight)), Q(e.disabledDates) && (h.disabledDates = J(e.disabledDates)), h;\n }, M = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, E = (h) => Array.isArray(h) ? [h[0] ? mn(h[0]) : null, h[1] ? mn(h[1]) : null] : mn(h), z = (h, T, H) => h.find(\n (ee) => +ee.hours === qe(T) && ee.minutes === \"*\" ? !0 : +ee.minutes === Xe(T)\n ) && H, K = (h, T, H) => {\n const [ee, v] = h, [I, f] = T;\n return !z(ee, I, H) && !z(v, f, H) && H;\n }, _ = (h, T) => {\n const H = Array.isArray(T) ? T : [T];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? K(e.disabledTimes, H, h) : !H.some((ee) => z(e.disabledTimes, ee, h)) : h;\n }, re = (h, T) => {\n const H = Array.isArray(T) ? [vt(T[0]), T[1] ? vt(T[1]) : void 0] : vt(T), ee = !e.disabledTimes(H);\n return h && ee;\n }, x = (h, T) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? _(T, h) : re(T, h) : T;\n return {\n isDisabled: R,\n validateDate: l,\n validateMonthYearInRange: g,\n isDateRangeAllowed: G,\n checkMinMaxRange: q,\n matchDate: S,\n mapDatesArrToMap: p,\n isValidTime: (h) => {\n let T = !0;\n if (!h || M())\n return !0;\n const H = !e.minDate && !e.maxDate ? E(h) : h;\n return (e.maxTime || e.maxDate) && (T = oa(e.maxTime, e.maxDate, \"max\", $e(H), T)), (e.minTime || e.minDate) && (T = oa(e.minTime, e.minDate, \"min\", $e(H), T)), x(h, T);\n }\n };\n}, qt = () => {\n const e = W(() => (t, r) => t == null ? void 0 : t.includes(r)), n = W(() => (t, r) => t.count ? t.solo ? !0 : r === 0 : !0), a = W(() => (t, r) => t.count ? t.solo ? !0 : r === t.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: n, showRightIcon: a };\n}, xr = (e, n, a) => {\n const t = Z(0), r = Nt({\n // monthYearInput: !!props.timePicker,\n [mt.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [mt.calendar]: !1,\n [mt.header]: !1\n }), l = (g) => {\n var Y;\n (Y = e.flow) != null && Y.length && (r[g] = !0, Object.keys(r).filter((R) => !r[R]).length || S());\n }, c = () => {\n var g;\n (g = e.flow) != null && g.length && t.value !== -1 && (t.value += 1, n(\"flow-step\", t.value), S());\n }, y = () => {\n t.value = -1;\n }, D = (g, Y, ...R) => {\n e.flow[t.value] === g && a.value && a.value[Y](...R);\n }, S = () => {\n D(je.month, \"toggleMonthPicker\", !0), D(je.year, \"toggleYearPicker\", !0), D(je.calendar, \"toggleTimePicker\", !1, !0), D(je.time, \"toggleTimePicker\", !0, !0);\n const g = e.flow[t.value];\n (g === je.hours || g === je.minutes || g === je.seconds) && D(g, \"toggleTimePicker\", !0, !0, g);\n };\n return { childMount: l, updateFlowStep: c, resetFlow: y, flowStep: t };\n}, Xt = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n closeOnScroll: { type: Boolean, default: !1 },\n autoPosition: { type: Boolean, default: !0 },\n closeOnAutoApply: { type: Boolean, default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: String, default: null },\n emitTimezone: { type: String, default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n menuClassName: { type: String, default: null },\n dayClass: { type: Function, default: null },\n yearRange: { type: Array, default: () => [1900, 2100] },\n calendarCellClassName: { type: String, default: null },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n autoRange: { type: [Number, String], default: null },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n modeHeight: { type: [Number, String], default: 255 },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n minRange: { type: [Number, String], default: null },\n maxRange: { type: [Number, String], default: null },\n multiDatesLimit: { type: [Number, String], default: null },\n reverseYears: { type: Boolean, default: !1 },\n keepActionRow: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n disableTimeRangeValidation: { type: Boolean, default: !1 },\n highlight: {\n type: [Array, Function],\n default: null\n },\n highlightWeekDays: {\n type: Array,\n default: null\n },\n highlightDisabledDays: { type: Boolean, default: !1 },\n teleport: { type: [String, Boolean], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function],\n default: null\n },\n calendarClassName: { type: String, default: null },\n noSwipe: { type: Boolean, default: !1 },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: Boolean, default: !1 },\n partialRange: { type: Boolean, default: !0 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n inputClassName: { type: String, default: null },\n fixedStart: { type: Boolean, default: !1 },\n fixedEnd: { type: Boolean, default: !1 },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: Boolean, default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n onClickOutside: { type: Function, default: null },\n noDisabledRange: { type: Boolean, default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n allowPreventDefault: { type: Boolean, default: !1 },\n closeOnClearValue: { type: Boolean, default: !0 },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n showLastInRange: { type: Boolean, default: !0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 }\n}, xe = {\n ...Xt,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n arrMapValues: { type: Object, default: () => ({}) }\n}, Qr = {\n key: 1,\n class: \"dp__input_wrap\"\n}, el = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\", \"onKeydown\"], tl = {\n key: 2,\n class: \"dp__clear_icon\"\n}, nl = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...Xt\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, {\n defaultedTextInput: r,\n defaultedAriaLabels: l,\n defaultedInline: c,\n defaultedConfig: y,\n getDefaultPattern: D,\n getDefaultStartTime: S\n } = Se(t), g = Z(), Y = Z(null), R = Z(!1), G = Z(!1), q = W(\n () => ({\n dp__pointer: !t.disabled && !t.readonly && !r.value.enabled,\n dp__disabled: t.disabled,\n dp__input_readonly: !r.value.enabled,\n dp__input: !0,\n dp__input_icon_pad: !t.hideInputIcon,\n dp__input_valid: !!t.state,\n dp__input_invalid: t.state === !1,\n dp__input_focus: R.value || t.isMenuOpen,\n dp__input_reg: !r.value.enabled,\n [t.inputClassName]: !!t.inputClassName\n })\n ), J = () => {\n a(\"set-input-date\", null), t.autoApply && (a(\"set-empty-date\"), g.value = null);\n }, Q = (v) => {\n const I = S();\n return Cr(\n v,\n r.value.format ?? D(),\n I ?? Pa({}, t.enableSeconds),\n t.inputValue,\n G.value\n );\n }, p = (v) => {\n const { rangeSeparator: I } = r.value, [f, k] = v.split(`${I}`);\n if (f) {\n const d = Q(f.trim()), o = k ? Q(k.trim()) : null, $ = d && o ? [d, o] : [d];\n g.value = d ? $ : null;\n }\n }, M = () => {\n G.value = !0;\n }, E = (v) => {\n if (t.range)\n p(v);\n else if (t.multiDates) {\n const I = v.split(\";\");\n g.value = I.map((f) => Q(f.trim())).filter((f) => f);\n } else\n g.value = Q(v);\n }, z = (v) => {\n var f;\n const I = typeof v == \"string\" ? v : (f = v.target) == null ? void 0 : f.value;\n I !== \"\" ? (r.value.openMenu && !t.isMenuOpen && a(\"open\"), E(I), a(\"set-input-date\", g.value)) : J(), G.value = !1, a(\"update:input-value\", I);\n }, K = (v) => {\n r.value.enabled ? (E(v.target.value), r.value.enterSubmit && Sn(g.value) && t.inputValue !== \"\" ? (a(\"set-input-date\", g.value, !0), g.value = null) : r.value.enterSubmit && t.inputValue === \"\" && (g.value = null, a(\"clear\"))) : x(v);\n }, _ = (v) => {\n r.value.enabled && r.value.tabSubmit && E(v.target.value), r.value.tabSubmit && Sn(g.value) && t.inputValue !== \"\" ? (a(\"set-input-date\", g.value, !0), g.value = null) : r.value.tabSubmit && t.inputValue === \"\" && (g.value = null, a(\"clear\"));\n }, re = () => {\n R.value = !0, a(\"focus\");\n }, x = (v) => {\n v.preventDefault(), tt(v, y.value, !0), r.value.enabled && r.value.openMenu && !c.value.input && !t.isMenuOpen ? a(\"open\") : r.value.enabled || a(\"toggle\");\n }, L = () => {\n a(\"real-blur\"), R.value = !1, (!t.isMenuOpen || c.value.enabled && c.value.input) && a(\"blur\"), t.autoApply && r.value.enabled && g.value && !t.isMenuOpen && (a(\"set-input-date\", g.value), a(\"select-date\"), g.value = null);\n }, h = (v) => {\n tt(v, y.value, !0), a(\"clear\");\n }, T = (v) => {\n if (!r.value.enabled) {\n if (v.code === \"Tab\")\n return;\n v.preventDefault();\n }\n };\n return n({\n focusInput: () => {\n var v;\n (v = Y.value) == null || v.focus({ preventScroll: !0 });\n },\n setParsedDate: (v) => {\n g.value = v;\n }\n }), (v, I) => {\n var f;\n return b(), F(\"div\", { onClick: x }, [\n v.$slots.trigger && !v.$slots[\"dp-input\"] && !m(c).enabled ? ae(v.$slots, \"trigger\", { key: 0 }) : V(\"\", !0),\n !v.$slots.trigger && (!m(c).enabled || m(c).input) ? (b(), F(\"div\", Qr, [\n v.$slots[\"dp-input\"] && !v.$slots.trigger && !m(c).enabled ? ae(v.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: z,\n onEnter: K,\n onTab: _,\n onClear: h,\n onBlur: L,\n onKeypress: T,\n onPaste: M\n }) : V(\"\", !0),\n v.$slots[\"dp-input\"] ? V(\"\", !0) : (b(), F(\"input\", {\n key: 1,\n ref_key: \"inputRef\",\n ref: Y,\n id: v.uid ? `dp-input-${v.uid}` : void 0,\n name: v.name,\n class: ye(q.value),\n inputmode: m(r).enabled ? \"text\" : \"none\",\n placeholder: v.placeholder,\n disabled: v.disabled,\n readonly: v.readonly,\n required: v.required,\n value: e.inputValue,\n autocomplete: v.autocomplete,\n \"aria-label\": (f = m(l)) == null ? void 0 : f.input,\n \"aria-disabled\": v.disabled || void 0,\n \"aria-invalid\": v.state === !1 ? !0 : void 0,\n onInput: z,\n onKeydown: [\n le(K, [\"enter\"]),\n le(_, [\"tab\"]),\n T\n ],\n onBlur: L,\n onFocus: re,\n onKeypress: T,\n onPaste: M\n }, null, 42, el)),\n oe(\"div\", {\n onClick: I[2] || (I[2] = (k) => a(\"toggle\"))\n }, [\n v.$slots[\"input-icon\"] && !v.hideInputIcon ? (b(), F(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: I[0] || (I[0] = (k) => a(\"toggle\"))\n }, [\n ae(v.$slots, \"input-icon\")\n ])) : V(\"\", !0),\n !v.$slots[\"input-icon\"] && !v.hideInputIcon && !v.$slots[\"dp-input\"] ? (b(), ce(m(It), {\n key: 1,\n onClick: I[1] || (I[1] = (k) => a(\"toggle\")),\n class: \"dp__input_icon dp__input_icons\"\n })) : V(\"\", !0)\n ]),\n v.$slots[\"clear-icon\"] && e.inputValue && v.clearable && !v.disabled && !v.readonly ? (b(), F(\"span\", tl, [\n ae(v.$slots, \"clear-icon\", { clear: h })\n ])) : V(\"\", !0),\n v.clearable && !v.$slots[\"clear-icon\"] && e.inputValue && !v.disabled && !v.readonly ? (b(), ce(m(ba), {\n key: 3,\n class: \"dp__clear_icon dp__input_icons\",\n onClick: I[3] || (I[3] = pe((k) => h(k), [\"prevent\"]))\n })) : V(\"\", !0)\n ])) : V(\"\", !0)\n ]);\n };\n }\n}), al = [\"title\"], rl = { class: \"dp__action_buttons\" }, ll = [\"onKeydown\", \"disabled\"], ol = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...xe\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: n }) {\n const a = e, {\n defaultedActionRow: t,\n defaultedPreviewFormat: r,\n defaultedMultiCalendars: l,\n defaultedTextInput: c,\n defaultedInline: y,\n getDefaultPattern: D\n } = Se(a), { isValidTime: S } = Et(a), { buildMatrix: g } = lt(), Y = Z(null), R = Z(null);\n Ue(() => {\n a.arrowNavigation && g([Ae(Y), Ae(R)], \"actionRow\");\n });\n const G = W(() => a.range && !a.partialRange && a.internalModelValue ? a.internalModelValue.length === 2 : !0), q = W(() => !J.value || !Q.value || !G.value), J = W(() => !a.enableTimePicker || a.ignoreTimeValidation ? !0 : S(a.internalModelValue)), Q = W(() => a.monthPicker ? a.range && Array.isArray(a.internalModelValue) ? !a.internalModelValue.filter((h) => !re(h)).length : re(a.internalModelValue) : !0), p = () => {\n const L = r.value;\n return a.timePicker || a.monthPicker, L($e(a.internalModelValue));\n }, M = () => {\n const L = a.internalModelValue;\n return l.value.count > 0 ? `${E(L[0])} - ${E(L[1])}` : [E(L[0]), E(L[1])];\n }, E = (L) => Ra(\n L,\n r.value,\n a.formatLocale,\n c.value.rangeSeparator,\n a.modelAuto,\n D()\n ), z = W(() => !a.internalModelValue || !a.menuMount ? \"\" : typeof r.value == \"string\" ? Array.isArray(a.internalModelValue) ? a.internalModelValue.length === 2 && a.internalModelValue[1] ? M() : a.multiDates ? a.internalModelValue.map((L) => `${E(L)}`) : a.modelAuto ? `${E(a.internalModelValue[0])}` : `${E(a.internalModelValue[0])} -` : E(a.internalModelValue) : p()), K = () => a.multiDates ? \"; \" : \" - \", _ = W(\n () => Array.isArray(z.value) ? z.value.join(K()) : z.value\n ), re = (L) => {\n if (!a.monthPicker)\n return !0;\n let h = !0;\n const T = P(We(L));\n if (a.minDate && a.maxDate) {\n const H = P(We(a.minDate)), ee = P(We(a.maxDate));\n return Re(T, H) && Pe(T, ee) || ge(T, H) || ge(T, ee);\n }\n if (a.minDate) {\n const H = P(We(a.minDate));\n h = Re(T, H) || ge(T, H);\n }\n if (a.maxDate) {\n const H = P(We(a.maxDate));\n h = Pe(T, H) || ge(T, H);\n }\n return h;\n }, x = () => {\n J.value && Q.value && G.value ? n(\"select-date\") : n(\"invalid-select\");\n };\n return (L, h) => (b(), F(\"div\", {\n class: \"dp__action_row\",\n style: Ke(e.calendarWidth ? { width: `${e.calendarWidth}px` } : {})\n }, [\n L.$slots[\"action-row\"] ? ae(L.$slots, \"action-row\", Ce(Ie({ key: 0 }, {\n internalModelValue: L.internalModelValue,\n disabled: q.value,\n selectDate: () => L.$emit(\"select-date\"),\n closePicker: () => L.$emit(\"close-picker\")\n }))) : (b(), F(de, { key: 1 }, [\n m(t).showPreview ? (b(), F(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: _.value\n }, [\n L.$slots[\"action-preview\"] ? ae(L.$slots, \"action-preview\", {\n key: 0,\n value: L.internalModelValue\n }) : V(\"\", !0),\n L.$slots[\"action-preview\"] ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(_.value), 1)\n ], 64))\n ], 8, al)) : V(\"\", !0),\n oe(\"div\", rl, [\n L.$slots[\"action-buttons\"] ? ae(L.$slots, \"action-buttons\", {\n key: 0,\n value: L.internalModelValue\n }) : V(\"\", !0),\n L.$slots[\"action-buttons\"] ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n !m(y).enabled && m(t).showCancel ? (b(), F(\"button\", {\n key: 0,\n type: \"button\",\n ref_key: \"cancelButtonRef\",\n ref: Y,\n class: \"dp__action_button dp__action_cancel\",\n onClick: h[0] || (h[0] = (T) => L.$emit(\"close-picker\")),\n onKeydown: [\n h[1] || (h[1] = le((T) => L.$emit(\"close-picker\"), [\"enter\"])),\n h[2] || (h[2] = le((T) => L.$emit(\"close-picker\"), [\"space\"]))\n ]\n }, Ne(L.cancelText), 545)) : V(\"\", !0),\n m(t).showNow ? (b(), F(\"button\", {\n key: 1,\n type: \"button\",\n ref_key: \"cancelButtonRef\",\n ref: Y,\n class: \"dp__action_button dp__action_cancel\",\n onClick: h[3] || (h[3] = (T) => L.$emit(\"select-now\")),\n onKeydown: [\n h[4] || (h[4] = le((T) => L.$emit(\"select-now\"), [\"enter\"])),\n h[5] || (h[5] = le((T) => L.$emit(\"select-now\"), [\"space\"]))\n ]\n }, Ne(L.nowButtonLabel), 545)) : V(\"\", !0),\n m(t).showSelect ? (b(), F(\"button\", {\n key: 2,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n onKeydown: [\n le(x, [\"enter\"]),\n le(x, [\"space\"])\n ],\n onClick: x,\n disabled: q.value,\n ref_key: \"selectButtonRef\",\n ref: R\n }, Ne(L.selectText), 41, ll)) : V(\"\", !0)\n ], 64))\n ])\n ], 64))\n ], 4));\n }\n}), sl = [\"onKeydown\"], ul = { class: \"dp__selection_grid_header\" }, il = [\"aria-selected\", \"aria-disabled\", \"onClick\", \"onKeydown\", \"onMouseover\"], dl = [\"aria-label\", \"onKeydown\"], Ot = /* @__PURE__ */ Be({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: n, emit: a }) {\n const t = e, { setSelectionGrid: r, buildMultiLevelMatrix: l, setMonthPicker: c } = lt(), { defaultedAriaLabels: y, defaultedTextInput: D, defaultedConfig: S } = Se(\n t\n ), { hideNavigationButtons: g } = qt(), Y = Z(!1), R = Z(null), G = Z(null), q = Z([]), J = Z(), Q = Z(null), p = Z(0), M = Z(null);\n Va(() => {\n R.value = null;\n }), Ue(() => {\n rt().then(() => h()), z(), E(!0);\n }), _n(() => E(!1));\n const E = (d) => {\n var o;\n t.arrowNavigation && ((o = t.headerRefs) != null && o.length ? c(d) : r(d));\n }, z = () => {\n var o;\n const d = Ae(G);\n d && (D.value.enabled || (R.value ? (o = R.value) == null || o.focus({ preventScroll: !0 }) : d.focus({ preventScroll: !0 })), Y.value = d.clientHeight < d.scrollHeight);\n }, K = W(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !t.useRelative,\n \"dp--overlay-relative\": t.useRelative\n })\n ), _ = W(\n () => t.useRelative ? { height: `${t.height}px`, width: \"260px\" } : void 0\n ), re = W(() => ({\n dp__overlay_col: !0\n })), x = W(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: Y.value,\n dp__button_bottom: t.isLast\n })\n ), L = W(() => {\n var d, o;\n return {\n dp__overlay_container: !0,\n dp__container_flex: ((d = t.items) == null ? void 0 : d.length) <= 6,\n dp__container_block: ((o = t.items) == null ? void 0 : o.length) > 6\n };\n }), h = () => {\n rt().then(() => {\n const d = Ae(R), o = Ae(G), $ = Ae(Q), X = Ae(M), s = $ ? $.getBoundingClientRect().height : 0;\n o && (p.value = o.getBoundingClientRect().height - s), d && X && (X.scrollTop = d.offsetTop - X.offsetTop - (p.value / 2 - d.getBoundingClientRect().height) - s);\n });\n }, T = (d) => {\n d.disabled || a(\"selected\", d.value);\n }, H = () => {\n a(\"toggle\"), a(\"reset-flow\");\n }, ee = () => {\n t.escClose && H();\n }, v = (d, o, $, X) => {\n d && (o.active && (R.value = d), t.arrowNavigation && (Array.isArray(q.value[$]) ? q.value[$][X] = d : q.value[$] = [d], I()));\n }, I = () => {\n var o, $;\n const d = (o = t.headerRefs) != null && o.length ? [t.headerRefs].concat(q.value) : q.value.concat([t.skipButtonRef ? [] : [Q.value]]);\n l($e(d), ($ = t.headerRefs) != null && $.length ? \"monthPicker\" : \"selectionGrid\");\n }, f = (d) => {\n t.arrowNavigation || tt(d, S.value, !0);\n }, k = (d) => {\n J.value = d, a(\"hover-value\", d);\n };\n return n({ focusGrid: z }), (d, o) => {\n var $;\n return b(), F(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: G,\n class: ye(K.value),\n style: Ke(_.value),\n role: \"dialog\",\n tabindex: \"0\",\n onKeydown: [\n le(pe(ee, [\"prevent\"]), [\"esc\"]),\n o[0] || (o[0] = le(pe((X) => f(X), [\"prevent\"]), [\"left\"])),\n o[1] || (o[1] = le(pe((X) => f(X), [\"prevent\"]), [\"up\"])),\n o[2] || (o[2] = le(pe((X) => f(X), [\"prevent\"]), [\"down\"])),\n o[3] || (o[3] = le(pe((X) => f(X), [\"prevent\"]), [\"right\"]))\n ]\n }, [\n oe(\"div\", {\n class: ye(L.value),\n ref_key: \"containerRef\",\n ref: M,\n role: \"grid\",\n style: Ke({ height: `${p.value}px` })\n }, [\n oe(\"div\", ul, [\n ae(d.$slots, \"header\")\n ]),\n d.$slots.overlay ? ae(d.$slots, \"overlay\", { key: 0 }) : (b(!0), F(de, { key: 1 }, Me(d.items, (X, s) => (b(), F(\"div\", {\n class: ye([\"dp__overlay_row\", { dp__flex_row: d.items.length >= 3 }]),\n key: s,\n role: \"row\"\n }, [\n (b(!0), F(de, null, Me(X, (u, C) => (b(), F(\"div\", {\n role: \"gridcell\",\n class: ye(re.value),\n key: u.value,\n \"aria-selected\": u.active,\n \"aria-disabled\": u.disabled || void 0,\n ref_for: !0,\n ref: (O) => v(O, u, s, C),\n tabindex: \"0\",\n onClick: (O) => T(u),\n onKeydown: [\n le(pe((O) => T(u), [\"prevent\"]), [\"enter\"]),\n le(pe((O) => T(u), [\"prevent\"]), [\"space\"])\n ],\n onMouseover: (O) => k(u.value)\n }, [\n oe(\"div\", {\n class: ye(u.className)\n }, [\n d.$slots.item ? ae(d.$slots, \"item\", {\n key: 0,\n item: u\n }) : V(\"\", !0),\n d.$slots.item ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(u.text), 1)\n ], 64))\n ], 2)\n ], 42, il))), 128))\n ], 2))), 128))\n ], 6),\n d.$slots[\"button-icon\"] ? Lt((b(), F(\"button\", {\n key: 0,\n type: \"button\",\n \"aria-label\": ($ = m(y)) == null ? void 0 : $.toggleOverlay,\n class: ye(x.value),\n tabindex: \"0\",\n ref_key: \"toggleButton\",\n ref: Q,\n onClick: H,\n onKeydown: [\n le(H, [\"enter\"]),\n le(H, [\"tab\"])\n ]\n }, [\n ae(d.$slots, \"button-icon\")\n ], 42, dl)), [\n [Wt, !m(g)(d.hideNavigation, d.type)]\n ]) : V(\"\", !0)\n ], 46, sl);\n };\n }\n}), Un = /* @__PURE__ */ Be({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean }\n },\n setup(e) {\n const n = e, a = W(\n () => n.multiCalendars > 0 ? [...Array(n.multiCalendars).keys()] : [0]\n ), t = W(() => ({\n dp__instance_calendar: n.multiCalendars > 0\n }));\n return (r, l) => (b(), F(\"div\", {\n class: ye({\n dp__menu_inner: !r.stretch,\n \"dp--menu--inner-stretched\": r.stretch,\n dp__flex_display: r.multiCalendars > 0\n })\n }, [\n (b(!0), F(de, null, Me(a.value, (c, y) => (b(), F(\"div\", {\n key: c,\n class: ye(t.value)\n }, [\n ae(r.$slots, \"default\", {\n instance: c,\n index: y\n })\n ], 2))), 128))\n ], 2));\n }\n}), cl = [\"aria-label\", \"aria-disabled\"], St = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: n }) {\n const a = Z(null);\n return Ue(() => n(\"set-ref\", a)), (t, r) => (b(), F(\"button\", {\n type: \"button\",\n class: \"dp__btn dp--arrow-btn-nav\",\n onClick: r[0] || (r[0] = (l) => t.$emit(\"activate\")),\n onKeydown: [\n r[1] || (r[1] = le(pe((l) => t.$emit(\"activate\"), [\"prevent\"]), [\"enter\"])),\n r[2] || (r[2] = le(pe((l) => t.$emit(\"activate\"), [\"prevent\"]), [\"space\"]))\n ],\n tabindex: \"0\",\n \"aria-label\": t.ariaLabel,\n \"aria-disabled\": t.disabled || void 0,\n ref_key: \"elRef\",\n ref: a\n }, [\n oe(\"span\", {\n class: ye([\"dp__inner_nav\", { dp__inner_nav_disabled: t.disabled }])\n }, [\n ae(t.$slots, \"default\")\n ], 2)\n ], 40, cl));\n }\n}), Ln = (e, n, a) => {\n if (n.value && Array.isArray(n.value))\n if (n.value.some((t) => ge(e, t))) {\n const t = n.value.filter((r) => !ge(r, e));\n n.value = t.length ? t : null;\n } else\n (a && +a > n.value.length || !a) && n.value.push(e);\n else\n n.value = [e];\n}, Na = (e, n, a) => {\n let t = e.value ? e.value.slice() : [];\n return t.length === 2 && t[1] !== null && (t = []), t.length ? Pe(n, t[0]) ? (t.unshift(n), a(\"range-start\", t[0]), a(\"range-start\", t[1])) : (t[1] = n, a(\"range-end\", n)) : (t = [n], a(\"range-start\", n)), e.value = t, t;\n}, Wn = (e, n, a, t) => {\n e[0] && e[1] && a && n(\"auto-apply\"), e[0] && !e[1] && t && a && n(\"auto-apply\");\n}, fl = (e, n) => {\n const { defaultedMultiCalendars: a, defaultedAriaLabels: t, defaultedTransitions: r, defaultedConfig: l } = Se(e), { modelValue: c, year: y, month: D, calendars: S } = Zt(e, n), g = W(() => Ma(e.formatLocale, e.locale, e.monthNameFormat)), Y = W(() => Vn(e.yearRange, e.reverseYears)), R = Z(null), G = () => {\n for (let f = 0; f < a.value.count; f++)\n if (f === 0)\n S.value[f] = S.value[0];\n else {\n const k = we(P(), S.value[f - 1]);\n S.value[f] = { month: ve(k), year: fe(ya(k, f)) };\n }\n }, q = (f) => {\n if (!f)\n return G();\n const k = we(P(), S.value[f]);\n return S.value[0].year = fe(ha(k, a.value.count - 1)), G();\n }, J = (f) => e.focusStartDate ? f[0] : f[1] ? f[1] : f[0], Q = () => {\n if (c.value) {\n const f = Array.isArray(c.value) ? J(c.value) : c.value;\n S.value[0] = { month: ve(f), year: fe(f) };\n }\n };\n Ue(() => {\n Q(), a.value.count && G();\n });\n const p = W(() => (f, k) => {\n const d = we(We(/* @__PURE__ */ new Date()), {\n month: D.value(f),\n year: y.value(f)\n });\n return Ca(d, e.maxDate, e.minDate, e.preventMinMaxNavigation, k);\n }), M = (f) => f ? { month: ve(f), year: fe(f) } : { month: null, year: null }, E = () => c.value ? Array.isArray(c.value) ? c.value.map((f) => M(f)) : M(c.value) : M(), z = (f, k) => {\n const d = S.value[f], o = E();\n return Array.isArray(o) ? o.some(($) => $.year === (d == null ? void 0 : d.year) && $.month === k) : (d == null ? void 0 : d.year) === o.year && k === o.month;\n }, K = (f, k, d) => {\n var $, X;\n const o = E();\n return Array.isArray(o) ? y.value(k) === (($ = o[d]) == null ? void 0 : $.year) && f === ((X = o[d]) == null ? void 0 : X.month) : !1;\n }, _ = (f, k) => {\n if (e.range) {\n const d = E();\n if (Array.isArray(c.value) && Array.isArray(d)) {\n const o = K(f, k, 0) || K(f, k, 1), $ = Je(We(P()), f, y.value(k));\n return Hn(c.value, R.value, $) && !o;\n }\n return !1;\n }\n return !1;\n }, re = W(() => (f) => kt(g.value, (k) => {\n const d = z(f, k.value), o = Rt(\n k.value,\n Ta(y.value(f), e.minDate),\n Aa(y.value(f), e.maxDate)\n ) || Br(e.disabledDates, y.value(f)).includes(k.value), $ = _(k.value, f);\n return { active: d, disabled: o, isBetween: $ };\n })), x = W(() => (f) => kt(Y.value, (k) => {\n const d = y.value(f) === k.value, o = Rt(k.value, wt(e.minDate), wt(e.maxDate));\n return { active: d, disabled: o };\n })), L = (f, k) => Je(We(P()), f, y.value(k)), h = (f, k) => {\n const d = c.value ? c.value : We(/* @__PURE__ */ new Date());\n c.value = Je(d, f, y.value(k)), n(\"auto-apply\");\n }, T = (f, k) => {\n const d = Na(c, L(f, k), n);\n Wn(d, n, e.autoApply, e.modelAuto);\n }, H = (f, k) => {\n Ln(L(f, k), c, e.multiDatesLimit), n(\"auto-apply\", !0);\n };\n return {\n groupedMonths: re,\n groupedYears: x,\n year: y,\n isDisabled: p,\n defaultedMultiCalendars: a,\n defaultedAriaLabels: t,\n defaultedTransitions: r,\n defaultedConfig: l,\n setHoverDate: (f, k) => {\n R.value = L(f, k);\n },\n selectMonth: (f, k) => (S.value[k].month = f, e.multiDates ? H(f, k) : e.range ? T(f, k) : h(f, k)),\n selectYear: (f, k) => {\n S.value[k].year = f, a.value.count && !a.value.solo && q(k);\n }\n };\n}, vl = { class: \"dp__month_picker_header\" }, ml = [\"aria-label\", \"onClick\", \"onKeydown\"], gl = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...xe\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\"\n ],\n setup(e, { emit: n }) {\n const a = e, {\n groupedMonths: t,\n groupedYears: r,\n year: l,\n isDisabled: c,\n defaultedMultiCalendars: y,\n defaultedAriaLabels: D,\n defaultedTransitions: S,\n defaultedConfig: g,\n setHoverDate: Y,\n selectMonth: R,\n selectYear: G\n } = fl(a, n), { transitionName: q, showTransition: J } = Bt(S), { showRightIcon: Q, showLeftIcon: p } = qt(), M = Z([!1]), E = (_, re) => {\n G(_, re), K(re);\n }, z = (_, re = !1) => {\n if (!c.value(_, re)) {\n const x = re ? l.value(_) + 1 : l.value(_) - 1;\n G(x, _);\n }\n }, K = (_, re = !1, x) => {\n re || n(\"reset-flow\"), x !== void 0 ? M.value[_] = x : M.value[_] = !M.value[_], M.value || n(\"overlay-closed\");\n };\n return (_, re) => (b(), ce(Un, {\n \"multi-calendars\": m(y).count,\n stretch: \"\"\n }, {\n default: ue(({ instance: x }) => [\n _.$slots[\"month-year\"] ? ae(_.$slots, \"month-year\", Ce(Ie({ key: 0 }, {\n year: m(l),\n months: m(t)(x),\n years: m(r)(x),\n selectMonth: m(R),\n selectYear: m(G),\n instance: x\n }))) : (b(), ce(Ot, {\n key: 1,\n items: m(t)(x),\n \"arrow-navigation\": _.arrowNavigation,\n \"is-last\": _.autoApply && !_.keepActionRow && !m(g).keepActionRow,\n \"esc-close\": _.escClose,\n height: _.modeHeight !== 255 ? _.modeHeight : m(g).modeHeight,\n config: _.config,\n onSelected: (L) => m(R)(L, x),\n onHoverValue: (L) => m(Y)(L, x),\n \"use-relative\": \"\",\n type: \"month\"\n }, {\n header: ue(() => {\n var L, h, T;\n return [\n oe(\"div\", vl, [\n m(p)(m(y), x) ? (b(), ce(St, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": (L = m(D)) == null ? void 0 : L.prevYear,\n disabled: m(c)(x, !1),\n onActivate: (H) => z(x, !1)\n }, {\n default: ue(() => [\n _.$slots[\"arrow-left\"] ? ae(_.$slots, \"arrow-left\", { key: 0 }) : V(\"\", !0),\n _.$slots[\"arrow-left\"] ? V(\"\", !0) : (b(), ce(m(Rn), { key: 1 }))\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"disabled\", \"onActivate\"])) : V(\"\", !0),\n oe(\"div\", {\n class: \"dp--year-select\",\n role: \"button\",\n ref: \"mpYearButtonRef\",\n \"aria-label\": (h = m(D)) == null ? void 0 : h.openYearsOverlay,\n tabindex: \"0\",\n onClick: () => K(x, !1),\n onKeydown: le(() => K(x, !1), [\"enter\"])\n }, [\n _.$slots.year ? ae(_.$slots, \"year\", {\n key: 0,\n year: m(l)(x)\n }) : V(\"\", !0),\n _.$slots.year ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(m(l)(x)), 1)\n ], 64))\n ], 40, ml),\n m(Q)(m(y), x) ? (b(), ce(St, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": (T = m(D)) == null ? void 0 : T.nextYear,\n disabled: m(c)(x, !1),\n onActivate: (H) => z(x, !0)\n }, {\n default: ue(() => [\n _.$slots[\"arrow-right\"] ? ae(_.$slots, \"arrow-right\", { key: 0 }) : V(\"\", !0),\n _.$slots[\"arrow-right\"] ? V(\"\", !0) : (b(), ce(m(On), { key: 1 }))\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"disabled\", \"onActivate\"])) : V(\"\", !0),\n Ze(Dt, {\n name: m(q)(M.value[x]),\n css: m(J)\n }, {\n default: ue(() => [\n M.value[x] ? (b(), ce(Ot, {\n key: 0,\n items: m(r)(x),\n \"text-input\": _.textInput,\n \"esc-close\": _.escClose,\n config: _.config,\n onToggle: (H) => K(x),\n onSelected: (H) => E(H, x),\n \"is-last\": _.autoApply && !_.keepActionRow && !m(g).keepActionRow,\n type: \"year\"\n }, Ee({\n \"button-icon\": ue(() => [\n _.$slots[\"calendar-icon\"] ? ae(_.$slots, \"calendar-icon\", { key: 0 }) : V(\"\", !0),\n _.$slots[\"calendar-icon\"] ? V(\"\", !0) : (b(), ce(m(It), { key: 1 }))\n ]),\n _: 2\n }, [\n _.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: ue(({ item: H }) => [\n ae(_.$slots, \"year-overlay-value\", {\n text: H.text,\n value: H.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"onToggle\", \"onSelected\", \"is-last\"])) : V(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ])\n ];\n }),\n _: 2\n }, 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\"]));\n }\n}), yl = (e, n) => {\n const { modelValue: a } = Zt(e, n), t = Z(null), r = (g) => Array.isArray(a.value) ? a.value.some((Y) => fe(Y) === g) : a.value ? fe(a.value) === g : !1, l = (g) => e.range && Array.isArray(a.value) ? Hn(a.value, t.value, y(g)) : !1, c = W(() => kt(Vn(e.yearRange, e.reverseYears), (g) => {\n const Y = r(g.value), R = Rt(g.value, wt(e.minDate), wt(e.maxDate)), G = l(g.value);\n return { active: Y, disabled: R, isBetween: G };\n })), y = (g) => ct(We(/* @__PURE__ */ new Date()), g);\n return {\n groupedYears: c,\n setHoverValue: (g) => {\n t.value = ct(We(/* @__PURE__ */ new Date()), g);\n },\n selectYear: (g) => {\n if (e.multiDates)\n return Ln(y(g), a, e.multiDatesLimit), n(\"auto-apply\", !0);\n if (e.range) {\n const Y = Na(a, y(g), n);\n return Wn(Y, n, e.autoApply, e.modelAuto);\n }\n a.value = y(g), n(\"auto-apply\");\n }\n };\n}, hl = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...xe\n },\n emits: [\"update:internal-model-value\", \"reset-flow\", \"range-start\", \"range-end\", \"auto-apply\"],\n setup(e, { emit: n }) {\n const a = e, { groupedYears: t, selectYear: r, setHoverValue: l } = yl(a, n), { defaultedConfig: c } = Se(a);\n return (y, D) => (b(), F(\"div\", null, [\n y.$slots[\"month-year\"] ? ae(y.$slots, \"month-year\", Ce(Ie({ key: 0 }, {\n years: m(t),\n selectYear: m(r)\n }))) : (b(), ce(Ot, {\n key: 1,\n items: m(t),\n \"is-last\": y.autoApply && !y.keepActionRow && !m(c).keepActionRow,\n height: y.modeHeight !== 255 ? y.modeHeight : m(c).modeHeight,\n config: y.config,\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: m(r),\n onHoverValue: m(l)\n }, Ee({ _: 2 }, [\n y.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: ue(({ item: S }) => [\n ae(y.$slots, \"year-overlay-value\", {\n text: S.text,\n value: S.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), pl = {\n key: 0,\n class: \"dp__time_input\"\n}, bl = [\"aria-label\", \"onKeydown\", \"onClick\"], kl = /* @__PURE__ */ oe(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1), wl = /* @__PURE__ */ oe(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1), Dl = [\"aria-label\", \"disabled\", \"onKeydown\", \"onClick\"], Ml = [\"aria-label\", \"onKeydown\", \"onClick\"], $l = /* @__PURE__ */ oe(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1), Tl = /* @__PURE__ */ oe(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1), Al = { key: 0 }, Sl = [\"aria-label\", \"onKeydown\"], _l = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n ...xe\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, { setTimePickerElements: r, setTimePickerBackRef: l } = lt(), { defaultedAriaLabels: c, defaultedTransitions: y, defaultedFilters: D, defaultedConfig: S } = Se(t), { transitionName: g, showTransition: Y } = Bt(y), R = Nt({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), G = Z(\"AM\"), q = Z(null), J = Z([]);\n Ue(() => {\n a(\"mounted\");\n });\n const Q = (u) => we(/* @__PURE__ */ new Date(), {\n hours: u.hours,\n minutes: u.minutes,\n seconds: t.enableSeconds ? u.seconds : 0,\n milliseconds: 0\n }), p = W(() => (u) => T(u, t[u])), M = W(() => ({ hours: t.hours, minutes: t.minutes, seconds: t.seconds })), E = W(() => (u) => !ee(+t[u] + +t[`${u}Increment`], u)), z = W(() => (u) => !ee(+t[u] - +t[`${u}Increment`], u)), K = (u, C) => pa(we(P(), u), C), _ = (u, C) => qa(we(P(), u), C), re = W(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !t.timePickerInline,\n dp__time_col_reg_block: !t.enableSeconds && t.is24 && !t.timePickerInline,\n dp__time_col_reg_inline: !t.enableSeconds && t.is24 && t.timePickerInline,\n dp__time_col_reg_with_button: !t.enableSeconds && !t.is24,\n dp__time_col_sec: t.enableSeconds && t.is24,\n dp__time_col_sec_with_button: t.enableSeconds && !t.is24\n })\n ), x = W(() => {\n const u = [{ type: \"hours\" }, { type: \"\", separator: !0 }, { type: \"minutes\" }];\n return t.enableSeconds ? u.concat([{ type: \"\", separator: !0 }, { type: \"seconds\" }]) : u;\n }), L = W(() => x.value.filter((u) => !u.separator)), h = W(() => (u) => {\n if (u === \"hours\") {\n const C = d(+t.hours);\n return { text: C < 10 ? `0${C}` : `${C}`, value: C };\n }\n return { text: t[u] < 10 ? `0${t[u]}` : `${t[u]}`, value: t[u] };\n }), T = (u, C) => {\n var A;\n if (!t.disabledTimesConfig)\n return !1;\n const O = t.disabledTimesConfig(t.order, u === \"hours\" ? C : void 0);\n return O[u] ? !!((A = O[u]) != null && A.includes(C)) : !0;\n }, H = (u) => {\n const C = t.is24 ? 24 : 12, O = u === \"hours\" ? C : 60, A = +t[`${u}GridIncrement`], te = u === \"hours\" && !t.is24 ? A : 0, B = [];\n for (let ie = te; ie < O; ie += A)\n B.push({ value: ie, text: ie < 10 ? `0${ie}` : `${ie}` });\n return u === \"hours\" && !t.is24 && B.push({ value: 0, text: \"12\" }), kt(B, (ie) => ({ active: !1, disabled: D.value.times[u].includes(ie.value) || !ee(ie.value, u) || T(u, ie.value) }));\n }, ee = (u, C) => {\n const O = t.minTime ? Q(fn(t.minTime)) : null, A = t.maxTime ? Q(fn(t.maxTime)) : null, te = Q(fn(M.value, C, u));\n return O && A ? (_t(te, A) || pt(te, A)) && (Pt(te, O) || pt(te, O)) : O ? Pt(te, O) || pt(te, O) : A ? _t(te, A) || pt(te, A) : !0;\n }, v = (u) => t[`no${u[0].toUpperCase() + u.slice(1)}Overlay`], I = (u) => {\n v(u) || (R[u] = !R[u], R[u] || a(\"overlay-closed\"));\n }, f = (u) => u === \"hours\" ? qe : u === \"minutes\" ? Xe : bt, k = (u, C = !0) => {\n const O = C ? K : _, A = C ? +t[`${u}Increment`] : -+t[`${u}Increment`];\n ee(+t[u] + A, u) && a(\n `update:${u}`,\n f(u)(O({ [u]: +t[u] }, { [u]: +t[`${u}Increment`] }))\n );\n }, d = (u) => t.is24 ? u : (u >= 12 ? G.value = \"PM\" : G.value = \"AM\", Ar(u)), o = () => {\n G.value === \"PM\" ? (G.value = \"AM\", a(\"update:hours\", t.hours - 12)) : (G.value = \"PM\", a(\"update:hours\", t.hours + 12)), a(\"am-pm-change\", G.value);\n }, $ = (u) => {\n R[u] = !0;\n }, X = (u, C, O) => {\n if (u && t.arrowNavigation) {\n Array.isArray(J.value[C]) ? J.value[C][O] = u : J.value[C] = [u];\n const A = J.value.reduce(\n (te, B) => B.map((ie, he) => [...te[he] || [], B[he]]),\n []\n );\n l(t.closeTimePickerBtn), q.value && (A[1] = A[1].concat(q.value)), r(A, t.order);\n }\n }, s = (u, C) => (I(u), u === \"hours\" && !t.is24 ? a(`update:${u}`, G.value === \"PM\" ? C + 12 : C) : a(`update:${u}`, C));\n return n({ openChildCmp: $ }), (u, C) => {\n var O;\n return u.disabled ? V(\"\", !0) : (b(), F(\"div\", pl, [\n (b(!0), F(de, null, Me(x.value, (A, te) => {\n var B, ie, he;\n return b(), F(\"div\", {\n key: te,\n class: ye(re.value)\n }, [\n A.separator ? (b(), F(de, { key: 0 }, [\n at(\" : \")\n ], 64)) : (b(), F(de, { key: 1 }, [\n oe(\"button\", {\n type: \"button\",\n class: ye({\n dp__btn: !0,\n dp__inc_dec_button: !t.timePickerInline,\n dp__inc_dec_button_inline: t.timePickerInline,\n dp__tp_inline_btn_top: t.timePickerInline,\n dp__inc_dec_button_disabled: E.value(A.type)\n }),\n \"aria-label\": (B = m(c)) == null ? void 0 : B.incrementValue(A.type),\n tabindex: \"0\",\n onKeydown: [\n le(pe((me) => k(A.type), [\"prevent\"]), [\"enter\"]),\n le(pe((me) => k(A.type), [\"prevent\"]), [\"space\"])\n ],\n onClick: (me) => k(A.type),\n ref_for: !0,\n ref: (me) => X(me, te, 0)\n }, [\n t.timePickerInline ? (b(), F(de, { key: 1 }, [\n kl,\n wl\n ], 64)) : (b(), F(de, { key: 0 }, [\n u.$slots[\"arrow-up\"] ? ae(u.$slots, \"arrow-up\", { key: 0 }) : V(\"\", !0),\n u.$slots[\"arrow-up\"] ? V(\"\", !0) : (b(), ce(m(Yn), { key: 1 }))\n ], 64))\n ], 42, bl),\n oe(\"button\", {\n type: \"button\",\n \"aria-label\": (ie = m(c)) == null ? void 0 : ie.openTpOverlay(A.type),\n class: ye({\n dp__time_display: !0,\n dp__time_display_block: !t.timePickerInline,\n dp__time_display_inline: t.timePickerInline,\n \"dp--time-invalid\": p.value(A.type),\n \"dp--time-overlay-btn\": !p.value(A.type)\n }),\n disabled: v(A.type),\n tabindex: \"0\",\n onKeydown: [\n le(pe((me) => I(A.type), [\"prevent\"]), [\"enter\"]),\n le(pe((me) => I(A.type), [\"prevent\"]), [\"space\"])\n ],\n onClick: (me) => I(A.type),\n ref_for: !0,\n ref: (me) => X(me, te, 1)\n }, [\n u.$slots[A.type] ? ae(u.$slots, A.type, {\n key: 0,\n text: h.value(A.type).text,\n value: h.value(A.type).value\n }) : V(\"\", !0),\n u.$slots[A.type] ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(h.value(A.type).text), 1)\n ], 64))\n ], 42, Dl),\n oe(\"button\", {\n type: \"button\",\n class: ye({\n dp__btn: !0,\n dp__inc_dec_button: !t.timePickerInline,\n dp__inc_dec_button_inline: t.timePickerInline,\n dp__tp_inline_btn_bottom: t.timePickerInline,\n dp__inc_dec_button_disabled: z.value(A.type)\n }),\n \"aria-label\": (he = m(c)) == null ? void 0 : he.decrementValue(A.type),\n tabindex: \"0\",\n onKeydown: [\n le(pe((me) => k(A.type, !1), [\"prevent\"]), [\"enter\"]),\n le(pe((me) => k(A.type, !1), [\"prevent\"]), [\"space\"])\n ],\n onClick: (me) => k(A.type, !1),\n ref_for: !0,\n ref: (me) => X(me, te, 2)\n }, [\n t.timePickerInline ? (b(), F(de, { key: 1 }, [\n $l,\n Tl\n ], 64)) : (b(), F(de, { key: 0 }, [\n u.$slots[\"arrow-down\"] ? ae(u.$slots, \"arrow-down\", { key: 0 }) : V(\"\", !0),\n u.$slots[\"arrow-down\"] ? V(\"\", !0) : (b(), ce(m(In), { key: 1 }))\n ], 64))\n ], 42, Ml)\n ], 64))\n ], 2);\n }), 128)),\n u.is24 ? V(\"\", !0) : (b(), F(\"div\", Al, [\n u.$slots[\"am-pm-button\"] ? ae(u.$slots, \"am-pm-button\", {\n key: 0,\n toggle: o,\n value: G.value\n }) : V(\"\", !0),\n u.$slots[\"am-pm-button\"] ? V(\"\", !0) : (b(), F(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: q,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": (O = m(c)) == null ? void 0 : O.amPmButton,\n tabindex: \"0\",\n onClick: o,\n onKeydown: [\n le(pe(o, [\"prevent\"]), [\"enter\"]),\n le(pe(o, [\"prevent\"]), [\"space\"])\n ]\n }, Ne(G.value), 41, Sl))\n ])),\n (b(!0), F(de, null, Me(L.value, (A, te) => (b(), ce(Dt, {\n key: te,\n name: m(g)(R[A.type]),\n css: m(Y)\n }, {\n default: ue(() => [\n R[A.type] ? (b(), ce(Ot, {\n key: 0,\n items: H(A.type),\n \"is-last\": u.autoApply && !u.keepActionRow && !m(S).keepActionRow,\n \"esc-close\": u.escClose,\n type: A.type,\n \"text-input\": u.textInput,\n config: u.config,\n \"arrow-navigation\": u.arrowNavigation,\n onSelected: (B) => s(A.type, B),\n onToggle: (B) => I(A.type),\n onResetFlow: C[0] || (C[0] = (B) => u.$emit(\"reset-flow\"))\n }, Ee({\n \"button-icon\": ue(() => [\n u.$slots[\"clock-icon\"] ? ae(u.$slots, \"clock-icon\", { key: 0 }) : V(\"\", !0),\n u.$slots[\"clock-icon\"] ? V(\"\", !0) : (b(), ce(m(Nn), { key: 1 }))\n ]),\n _: 2\n }, [\n u.$slots[`${A.type}-overlay-value`] ? {\n name: \"item\",\n fn: ue(({ item: B }) => [\n ae(u.$slots, `${A.type}-overlay-value`, {\n text: B.text,\n value: B.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"onSelected\", \"onToggle\"])) : V(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n };\n }\n}), Pl = [\"aria-label\"], Cl = [\"tabindex\"], Rl = [\"aria-label\"], Ya = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n ...xe\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, { buildMatrix: r, setTimePicker: l } = lt(), c = Yt(), { defaultedTransitions: y, defaultedAriaLabels: D, defaultedTextInput: S, defaultedConfig: g } = Se(t), { transitionName: Y, showTransition: R } = Bt(y), { hideNavigationButtons: G } = qt(), q = Z(null), J = Z(null), Q = Z([]), p = Z(null);\n Ue(() => {\n a(\"mount\"), !t.timePicker && t.arrowNavigation ? r([Ae(q.value)], \"time\") : l(!0, t.timePicker);\n });\n const M = W(() => t.range && t.modelAuto ? $a(t.internalModelValue) : !0), E = Z(!1), z = (v) => ({\n hours: Array.isArray(t.hours) ? t.hours[v] : t.hours,\n minutes: Array.isArray(t.minutes) ? t.minutes[v] : t.minutes,\n seconds: Array.isArray(t.seconds) ? t.seconds[v] : t.seconds\n }), K = W(() => {\n const v = [];\n if (t.range)\n for (let I = 0; I < 2; I++)\n v.push(z(I));\n else\n v.push(z(0));\n return v;\n }), _ = (v, I = !1, f = \"\") => {\n I || a(\"reset-flow\"), E.value = v, a(v ? \"overlay-opened\" : \"overlay-closed\"), t.arrowNavigation && l(v), rt(() => {\n f !== \"\" && Q.value[0] && Q.value[0].openChildCmp(f);\n });\n }, re = W(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: t.autoApply && !t.keepActionRow && !g.value.keepActionRow\n })), x = ze(c, \"timePicker\"), L = (v, I, f) => t.range ? I === 0 ? [v, K.value[1][f]] : [K.value[0][f], v] : v, h = (v) => {\n a(\"update:hours\", v);\n }, T = (v) => {\n a(\"update:minutes\", v);\n }, H = (v) => {\n a(\"update:seconds\", v);\n }, ee = () => {\n if (p.value && !S.value.enabled) {\n const v = _r(p.value);\n v && v.focus({ preventScroll: !0 });\n }\n };\n return n({ toggleTimePicker: _ }), (v, I) => {\n var f;\n return b(), F(\"div\", null, [\n !v.timePicker && !v.timePickerInline ? Lt((b(), F(\"button\", {\n key: 0,\n type: \"button\",\n class: ye(re.value),\n \"aria-label\": (f = m(D)) == null ? void 0 : f.openTimePicker,\n tabindex: \"0\",\n ref_key: \"openTimePickerBtn\",\n ref: q,\n onKeydown: [\n I[0] || (I[0] = le((k) => _(!0), [\"enter\"])),\n I[1] || (I[1] = le((k) => _(!0), [\"space\"]))\n ],\n onClick: I[2] || (I[2] = (k) => _(!0))\n }, [\n v.$slots[\"clock-icon\"] ? ae(v.$slots, \"clock-icon\", { key: 0 }) : V(\"\", !0),\n v.$slots[\"clock-icon\"] ? V(\"\", !0) : (b(), ce(m(Nn), { key: 1 }))\n ], 42, Pl)), [\n [Wt, !m(G)(v.hideNavigation, \"time\")]\n ]) : V(\"\", !0),\n Ze(Dt, {\n name: m(Y)(E.value),\n css: m(R) && !v.timePickerInline\n }, {\n default: ue(() => {\n var k;\n return [\n E.value || v.timePicker || v.timePickerInline ? (b(), F(\"div\", {\n key: 0,\n class: ye({\n dp__overlay: !v.timePickerInline,\n \"dp--overlay-absolute\": !t.timePicker && !v.timePickerInline,\n \"dp--overlay-relative\": t.timePicker\n }),\n style: Ke(\n v.timePicker ? { height: `${v.modeHeight !== 255 ? v.modeHeight : m(g).modeHeight}px` } : void 0\n ),\n ref_key: \"overlayRef\",\n ref: p,\n tabindex: v.timePickerInline ? void 0 : 0\n }, [\n oe(\"div\", {\n class: ye(\n v.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n v.$slots[\"time-picker-overlay\"] ? ae(v.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: h,\n setMinutes: T,\n setSeconds: H\n }) : V(\"\", !0),\n v.$slots[\"time-picker-overlay\"] ? V(\"\", !0) : (b(), F(\"div\", {\n key: 1,\n class: ye(v.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (b(!0), F(de, null, Me(K.value, (d, o) => Lt((b(), ce(_l, Ie({ key: o }, {\n ...v.$props,\n order: o,\n hours: d.hours,\n minutes: d.minutes,\n seconds: d.seconds,\n closeTimePickerBtn: J.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: o === 0 ? v.fixedStart : v.fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: Q,\n \"onUpdate:hours\": ($) => h(L($, o, \"hours\")),\n \"onUpdate:minutes\": ($) => T(L($, o, \"minutes\")),\n \"onUpdate:seconds\": ($) => H(L($, o, \"seconds\")),\n onMounted: ee,\n onOverlayClosed: ee,\n onAmPmChange: I[3] || (I[3] = ($) => v.$emit(\"am-pm-change\", $))\n }), Ee({ _: 2 }, [\n Me(m(x), ($, X) => ({\n name: $,\n fn: ue((s) => [\n ae(v.$slots, $, Ce(Ve(s)))\n ])\n }))\n ]), 1040, [\"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [Wt, o === 0 ? !0 : M.value]\n ])), 128))\n ], 2)),\n !v.timePicker && !v.timePickerInline ? Lt((b(), F(\"button\", {\n key: 2,\n type: \"button\",\n ref_key: \"closeTimePickerBtn\",\n ref: J,\n class: ye(re.value),\n \"aria-label\": (k = m(D)) == null ? void 0 : k.closeTimePicker,\n tabindex: \"0\",\n onKeydown: [\n I[4] || (I[4] = le((d) => _(!1), [\"enter\"])),\n I[5] || (I[5] = le((d) => _(!1), [\"space\"]))\n ],\n onClick: I[6] || (I[6] = (d) => _(!1))\n }, [\n v.$slots[\"calendar-icon\"] ? ae(v.$slots, \"calendar-icon\", { key: 0 }) : V(\"\", !0),\n v.$slots[\"calendar-icon\"] ? V(\"\", !0) : (b(), ce(m(It), { key: 1 }))\n ], 42, Rl)), [\n [Wt, !m(G)(v.hideNavigation, \"time\")]\n ]) : V(\"\", !0)\n ], 2)\n ], 14, Cl)) : V(\"\", !0)\n ];\n }),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]);\n };\n }\n}), Ia = (e, n, a, t) => {\n const r = (p, M) => Array.isArray(n[p]) ? n[p][M] : n[p], l = (p) => e.enableSeconds ? Array.isArray(n.seconds) ? n.seconds[p] : n.seconds : 0, c = (p, M) => p ? M !== void 0 ? nt(p, r(\"hours\", M), r(\"minutes\", M), l(M)) : nt(p, n.hours, n.minutes, l()) : P(), y = (p, M) => {\n n[p] = M;\n }, D = (p, M) => {\n const E = Object.fromEntries(\n Object.keys(n).map((z) => z === p ? [z, M] : [z, n[z]].slice())\n );\n if (e.range && !e.disableTimeRangeValidation) {\n const z = (_) => a.value ? nt(\n a.value[_],\n E.hours[_],\n E.minutes[_],\n E.seconds[_]\n ) : null, K = (_) => Cn(a.value[_], 0);\n return !(ge(z(0), z(1)) && (Pt(z(0), K(1)) || _t(z(1), K(0))));\n }\n return !0;\n }, S = (p, M) => {\n D(p, M) && (y(p, M), t && t());\n }, g = (p) => {\n S(\"hours\", p);\n }, Y = (p) => {\n S(\"minutes\", p);\n }, R = (p) => {\n S(\"seconds\", p);\n }, G = (p, M, E, z) => {\n M && g(p), !M && !E && Y(p), E && R(p), a.value && z(a.value);\n }, q = (p) => {\n if (p) {\n const M = Array.isArray(p), E = M ? [+p[0].hours, +p[1].hours] : +p.hours, z = M ? [+p[0].minutes, +p[1].minutes] : +p.minutes, K = M ? [+p[0].seconds, +p[1].seconds] : +p.seconds;\n y(\"hours\", E), y(\"minutes\", z), e.enableSeconds && y(\"seconds\", K);\n }\n }, J = (p, M) => {\n const E = {\n hours: Array.isArray(n.hours) ? n.hours[p] : n.hours,\n disabledArr: []\n };\n return (M || M === 0) && (E.hours = M), Array.isArray(e.disabledTimes) && (E.disabledArr = e.range && Array.isArray(e.disabledTimes[p]) ? e.disabledTimes[p] : e.disabledTimes), E;\n }, Q = W(() => (p, M) => {\n var E;\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: z, hours: K } = J(p, M), _ = z.filter((re) => +re.hours === K);\n return ((E = _[0]) == null ? void 0 : E.minutes) === \"*\" ? { hours: [K], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: (_ == null ? void 0 : _.map((re) => +re.minutes)) ?? [],\n seconds: (_ == null ? void 0 : _.map((re) => re.seconds ? +re.seconds : void 0)) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: y,\n updateHours: g,\n updateMinutes: Y,\n updateSeconds: R,\n getSetDateTime: c,\n updateTimeValues: G,\n getSecondsValue: l,\n assignStartTime: q,\n disabledTimesConfig: Q\n };\n}, Ol = (e, n) => {\n const { modelValue: a, time: t } = Zt(e, n), { defaultedStartTime: r } = Se(e), { updateTimeValues: l, getSetDateTime: c, setTime: y, assignStartTime: D, disabledTimesConfig: S } = Ia(\n e,\n t,\n a\n ), g = (M) => {\n const { hours: E, minutes: z, seconds: K } = M;\n return { hours: +E, minutes: +z, seconds: K ? +K : 0 };\n }, Y = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const E = g(e.startTime[0]), z = g(e.startTime[1]);\n return [we(P(), E), we(P(), z)];\n }\n const M = g(e.startTime);\n return we(P(), M);\n }\n return e.range ? [null, null] : null;\n }, R = () => {\n if (e.range) {\n const [M, E] = Y();\n a.value = [c(M, 0), c(E, 1)];\n } else\n a.value = c(Y());\n }, G = (M) => Array.isArray(M) ? [vt(P(M[0])), vt(P(M[1]))] : [vt(M ?? P())], q = (M, E, z) => {\n y(\"hours\", M), y(\"minutes\", E), e.enableSeconds && y(\"seconds\", z);\n }, J = () => {\n const [M, E] = G(a.value);\n return e.range ? q(\n [M.hours, E.hours],\n [M.minutes, E.minutes],\n [M.seconds, E.minutes]\n ) : q(M.hours, M.minutes, M.seconds);\n };\n Ue(() => {\n if (!e.shadow)\n return D(r.value), a.value ? J() : R();\n });\n const Q = () => {\n Array.isArray(a.value) ? a.value = a.value.map((M, E) => M && c(M, E)) : a.value = c(a.value), n(\"time-update\");\n };\n return {\n time: t,\n disabledTimesConfig: S,\n updateTime: (M, E = !0, z = !1) => {\n l(M, E, z, Q);\n }\n };\n}, Nl = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...xe\n },\n emits: [\"update:internal-model-value\", \"time-update\", \"am-pm-change\"],\n setup(e, { emit: n }) {\n const a = e, t = Yt(), r = ze(t, \"timePicker\"), { time: l, disabledTimesConfig: c, updateTime: y } = Ol(a, n);\n return (D, S) => (b(), ce(Un, {\n \"multi-calendars\": 0,\n stretch: \"\"\n }, {\n default: ue(() => [\n Ze(Ya, Ie(D.$props, {\n hours: m(l).hours,\n minutes: m(l).minutes,\n seconds: m(l).seconds,\n \"internal-model-value\": D.internalModelValue,\n \"disabled-times-config\": m(c),\n \"onUpdate:hours\": S[0] || (S[0] = (g) => m(y)(g)),\n \"onUpdate:minutes\": S[1] || (S[1] = (g) => m(y)(g, !1)),\n \"onUpdate:seconds\": S[2] || (S[2] = (g) => m(y)(g, !1, !0)),\n onAmPmChange: S[3] || (S[3] = (g) => D.$emit(\"am-pm-change\", g))\n }), Ee({ _: 2 }, [\n Me(m(r), (g, Y) => ({\n name: g,\n fn: ue((R) => [\n ae(D.$slots, g, Ce(Ve(R)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\"])\n ]),\n _: 3\n }));\n }\n}), Yl = { class: \"dp__month_year_row\" }, Il = [\"aria-label\", \"onClick\", \"onKeydown\"], Bl = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...xe\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\"],\n setup(e, { expose: n, emit: a }) {\n const t = e, { defaultedTransitions: r, defaultedAriaLabels: l, defaultedMultiCalendars: c, defaultedFilters: y, defaultedConfig: D } = Se(t), { transitionName: S, showTransition: g } = Bt(r), { buildMatrix: Y } = lt(), { handleMonthYearChange: R, isDisabled: G, updateMonthYear: q } = Gr(t, a), { showLeftIcon: J, showRightIcon: Q } = qt(), p = Z(!1), M = Z(!1), E = Z([null, null, null, null]);\n Ue(() => {\n a(\"mount\");\n });\n const z = (d) => ({\n get: () => t[d],\n set: (o) => {\n const $ = d === Le.month ? Le.year : Le.month;\n a(\"update-month-year\", { [d]: o, [$]: t[$] }), d === Le.month ? H(!0) : ee(!0);\n }\n }), K = W(z(Le.month)), _ = W(z(Le.year)), re = W(() => (d) => ({\n month: t.month,\n year: t.year,\n items: d === Le.month ? t.months : t.years,\n instance: t.instance,\n updateMonthYear: q,\n toggle: d === Le.month ? H : ee\n })), x = W(() => {\n const d = t.months.find((o) => o.value === t.month);\n return d || { text: \"\", value: 0 };\n }), L = W(() => kt(t.months, (d) => {\n const o = t.month === d.value, $ = Rt(\n d.value,\n Ta(t.year, t.minDate),\n Aa(t.year, t.maxDate)\n ) || y.value.months.includes(d.value);\n return { active: o, disabled: $ };\n })), h = W(() => kt(t.years, (d) => {\n const o = t.year === d.value, $ = Rt(d.value, wt(t.minDate), wt(t.maxDate)) || y.value.years.includes(d.value);\n return { active: o, disabled: $ };\n })), T = (d, o) => {\n o !== void 0 ? d.value = o : d.value = !d.value, d.value || a(\"overlay-closed\");\n }, H = (d = !1, o) => {\n v(d), T(p, o);\n }, ee = (d = !1, o) => {\n v(d), T(M, o);\n }, v = (d) => {\n d || a(\"reset-flow\");\n }, I = (d, o) => {\n t.arrowNavigation && (E.value[o] = Ae(d), Y(E.value, \"monthYear\"));\n }, f = W(() => {\n var d, o;\n return [\n {\n type: Le.month,\n index: 1,\n toggle: H,\n modelValue: K.value,\n updateModelValue: ($) => K.value = $,\n text: x.value.text,\n showSelectionGrid: p.value,\n items: L.value,\n ariaLabel: (d = l.value) == null ? void 0 : d.openMonthsOverlay\n },\n {\n type: Le.year,\n index: 2,\n toggle: ee,\n modelValue: _.value,\n updateModelValue: ($) => _.value = $,\n text: t.year,\n showSelectionGrid: M.value,\n items: h.value,\n ariaLabel: (o = l.value) == null ? void 0 : o.openYearsOverlay\n }\n ];\n }), k = W(\n () => t.disableYearSelect ? [f.value[0]] : f.value\n );\n return n({\n toggleMonthPicker: H,\n toggleYearPicker: ee,\n handleMonthYearChange: R\n }), (d, o) => {\n var $, X, s;\n return b(), F(\"div\", Yl, [\n d.$slots[\"month-year\"] ? ae(d.$slots, \"month-year\", Ce(Ie({ key: 0 }, { month: e.month, year: e.year, months: e.months, years: e.years, updateMonthYear: m(q), handleMonthYearChange: m(R), instance: e.instance }))) : (b(), F(de, { key: 1 }, [\n m(J)(m(c), e.instance) && !d.vertical ? (b(), ce(St, {\n key: 0,\n \"aria-label\": ($ = m(l)) == null ? void 0 : $.prevMonth,\n disabled: m(G)(!1),\n onActivate: o[0] || (o[0] = (u) => m(R)(!1, !0)),\n onSetRef: o[1] || (o[1] = (u) => I(u, 0))\n }, {\n default: ue(() => [\n d.$slots[\"arrow-left\"] ? ae(d.$slots, \"arrow-left\", { key: 0 }) : V(\"\", !0),\n d.$slots[\"arrow-left\"] ? V(\"\", !0) : (b(), ce(m(Rn), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : V(\"\", !0),\n oe(\"div\", {\n class: ye([\"dp__month_year_wrap\", {\n dp__year_disable_select: d.disableYearSelect\n }])\n }, [\n (b(!0), F(de, null, Me(k.value, (u, C) => (b(), F(de, {\n key: u.type\n }, [\n oe(\"button\", {\n type: \"button\",\n class: \"dp__btn dp__month_year_select\",\n tabindex: \"0\",\n \"aria-label\": u.ariaLabel,\n ref_for: !0,\n ref: (O) => I(O, C + 1),\n onClick: u.toggle,\n onKeydown: [\n le(pe(u.toggle, [\"prevent\"]), [\"enter\"]),\n le(pe(u.toggle, [\"prevent\"]), [\"space\"])\n ]\n }, [\n d.$slots[u.type] ? ae(d.$slots, u.type, {\n key: 0,\n text: u.text,\n value: t[u.type]\n }) : V(\"\", !0),\n d.$slots[u.type] ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(u.text), 1)\n ], 64))\n ], 40, Il),\n Ze(Dt, {\n name: m(S)(u.showSelectionGrid),\n css: m(g)\n }, {\n default: ue(() => [\n u.showSelectionGrid ? (b(), ce(Ot, {\n key: 0,\n items: u.items,\n \"arrow-navigation\": d.arrowNavigation,\n \"hide-navigation\": d.hideNavigation,\n \"is-last\": d.autoApply && !d.keepActionRow && !m(D).keepActionRow,\n \"skip-button-ref\": !1,\n config: d.config,\n type: u.type,\n \"header-refs\": [],\n \"esc-close\": d.escClose,\n \"text-input\": d.textInput,\n onSelected: u.updateModelValue,\n onToggle: u.toggle\n }, Ee({\n \"button-icon\": ue(() => [\n d.$slots[\"calendar-icon\"] ? ae(d.$slots, \"calendar-icon\", { key: 0 }) : V(\"\", !0),\n d.$slots[\"calendar-icon\"] ? V(\"\", !0) : (b(), ce(m(It), { key: 1 }))\n ]),\n _: 2\n }, [\n d.$slots[`${u.type}-overlay-val`] ? {\n name: \"item\",\n fn: ue(({ item: O }) => [\n ae(d.$slots, `${u.type}-overlay-val`, {\n text: O.text,\n value: O.value\n })\n ]),\n key: \"0\"\n } : void 0,\n d.$slots[`${u.type}-overlay`] ? {\n name: \"overlay\",\n fn: ue(() => [\n ae(d.$slots, `${u.type}-overlay`, Ce(Ve(re.value(u.type))))\n ]),\n key: \"1\"\n } : void 0,\n d.$slots[`${u.type}-overlay-header`] ? {\n name: \"header\",\n fn: ue(() => [\n ae(d.$slots, `${u.type}-overlay-header`, {\n toggle: u.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"text-input\", \"onSelected\", \"onToggle\"])) : V(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n m(J)(m(c), e.instance) && d.vertical ? (b(), ce(St, {\n key: 1,\n \"aria-label\": (X = m(l)) == null ? void 0 : X.prevMonth,\n disabled: m(G)(!1),\n onActivate: o[2] || (o[2] = (u) => m(R)(!1, !0))\n }, {\n default: ue(() => [\n d.$slots[\"arrow-up\"] ? ae(d.$slots, \"arrow-up\", { key: 0 }) : V(\"\", !0),\n d.$slots[\"arrow-up\"] ? V(\"\", !0) : (b(), ce(m(Yn), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : V(\"\", !0),\n m(Q)(m(c), e.instance) ? (b(), ce(St, {\n key: 2,\n ref: \"rightIcon\",\n disabled: m(G)(!0),\n \"aria-label\": (s = m(l)) == null ? void 0 : s.nextMonth,\n onActivate: o[3] || (o[3] = (u) => m(R)(!0, !0)),\n onSetRef: o[4] || (o[4] = (u) => I(u, d.disableYearSelect ? 2 : 3))\n }, {\n default: ue(() => [\n d.$slots[d.vertical ? \"arrow-down\" : \"arrow-right\"] ? ae(d.$slots, d.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : V(\"\", !0),\n d.$slots[d.vertical ? \"arrow-down\" : \"arrow-right\"] ? V(\"\", !0) : (b(), ce(Pn(d.vertical ? m(In) : m(On)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\"])) : V(\"\", !0)\n ], 64))\n ]);\n };\n }\n}), El = [\"aria-label\"], Fl = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Vl = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Hl = /* @__PURE__ */ oe(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1), Ul = [\"aria-label\"], Ll = {\n key: 0,\n role: \"gridcell\",\n class: \"dp__calendar_item dp__week_num\"\n}, Wl = { class: \"dp__cell_inner\" }, zl = [\"aria-selected\", \"aria-disabled\", \"aria-label\", \"onClick\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\"], jl = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...xe\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, { buildMultiLevelMatrix: r } = lt(), { defaultedTransitions: l, defaultedConfig: c, defaultedAriaLabels: y, defaultedMultiCalendars: D } = Se(t), S = Z(null), g = Z({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), Y = Z([]), R = Z(null), G = Z(!0), q = Z(\"\"), J = Z({ startX: 0, endX: 0, startY: 0, endY: 0 }), Q = Z([]), p = Z({ left: \"50%\" }), M = W(() => t.calendar ? t.calendar(t.mappedDates) : t.mappedDates), E = W(() => t.dayNames ? Array.isArray(t.dayNames) ? t.dayNames : t.dayNames(t.locale, +t.weekStart) : Tr(t.formatLocale, t.locale, +t.weekStart));\n Ue(() => {\n a(\"mount\", { cmp: \"calendar\", refs: Y }), !t.noSwipe && !c.value.noSwipe && R.value && (R.value.addEventListener(\"touchstart\", ee, { passive: !1 }), R.value.addEventListener(\"touchend\", v, { passive: !1 }), R.value.addEventListener(\"touchmove\", I, { passive: !1 })), t.monthChangeOnScroll && R.value && R.value.addEventListener(\"wheel\", d, { passive: !1 });\n });\n const z = (s) => s ? t.vertical ? \"vNext\" : \"next\" : t.vertical ? \"vPrevious\" : \"previous\", K = (s, u) => {\n if (t.transitions) {\n const C = He(Je(P(), t.month, t.year));\n q.value = Re(He(Je(P(), s, u)), C) ? l.value[z(!0)] : l.value[z(!1)], G.value = !1, rt(() => {\n G.value = !0;\n });\n }\n }, _ = W(\n () => ({\n [t.calendarClassName]: !!t.calendarClassName\n })\n ), re = W(() => (s) => {\n const u = Sr(s);\n return {\n dp__marker_dot: u.type === \"dot\",\n dp__marker_line: u.type === \"line\"\n };\n }), x = W(() => (s) => ge(s, S.value)), L = W(() => ({\n dp__calendar: !0,\n dp__calendar_next: D.value.count > 0 && t.instance !== 0\n })), h = W(() => (s) => t.hideOffsetDates ? s.current : !0), T = async (s, u, C) => {\n var O, A;\n if (a(\"set-hover-date\", s), (A = (O = s.marker) == null ? void 0 : O.tooltip) != null && A.length) {\n const te = Ae(Y.value[u][C]);\n if (te) {\n const { width: B, height: ie } = te.getBoundingClientRect();\n S.value = s.value;\n let he = { left: `${B / 2}px` }, me = -50;\n if (await rt(), Q.value[0]) {\n const { left: N, width: j } = Q.value[0].getBoundingClientRect();\n N < 0 && (he = { left: \"0\" }, me = 0, p.value.left = `${B / 2}px`), window.innerWidth < N + j && (he = { right: \"0\" }, me = 0, p.value.left = `${j - B / 2}px`);\n }\n g.value = {\n bottom: `${ie}px`,\n ...he,\n transform: `translateX(${me}%)`\n }, a(\"tooltip-open\", s.marker);\n }\n }\n }, H = (s) => {\n S.value && (S.value = null, g.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), a(\"tooltip-close\", s.marker));\n }, ee = (s) => {\n J.value.startX = s.changedTouches[0].screenX, J.value.startY = s.changedTouches[0].screenY;\n }, v = (s) => {\n J.value.endX = s.changedTouches[0].screenX, J.value.endY = s.changedTouches[0].screenY, f();\n }, I = (s) => {\n t.vertical && !t.inline && s.preventDefault();\n }, f = () => {\n const s = t.vertical ? \"Y\" : \"X\";\n Math.abs(J.value[`start${s}`] - J.value[`end${s}`]) > 10 && a(\"handle-swipe\", J.value[`start${s}`] > J.value[`end${s}`] ? \"right\" : \"left\");\n }, k = (s, u, C) => {\n s && (Array.isArray(Y.value[u]) ? Y.value[u][C] = s : Y.value[u] = [s]), t.arrowNavigation && r(Y.value, \"calendar\");\n }, d = (s) => {\n t.monthChangeOnScroll && (s.preventDefault(), a(\"handle-scroll\", s));\n }, o = (s) => {\n const u = s[0];\n return t.weekNumbers === \"local\" ? Xa(u.value, { weekStartsOn: +t.weekStart }) : t.weekNumbers === \"iso\" ? Ja(u.value) : typeof t.weekNumbers == \"function\" ? t.weekNumbers(u.value) : \"\";\n }, $ = (s, u) => {\n tt(s, c.value), a(\"select-date\", u);\n }, X = (s) => {\n tt(s, c.value);\n };\n return n({ triggerTransition: K }), (s, u) => {\n var C;\n return b(), F(\"div\", {\n class: ye(L.value)\n }, [\n oe(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: R,\n role: \"grid\",\n class: ye(_.value),\n \"aria-label\": (C = m(y)) == null ? void 0 : C.calendarWrap\n }, [\n (b(), F(de, { key: 0 }, [\n oe(\"div\", Fl, [\n s.weekNumbers ? (b(), F(\"div\", Vl, Ne(s.weekNumName), 1)) : V(\"\", !0),\n (b(!0), F(de, null, Me(E.value, (O, A) => (b(), F(\"div\", {\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n key: A\n }, [\n s.$slots[\"calendar-header\"] ? ae(s.$slots, \"calendar-header\", {\n key: 0,\n day: O,\n index: A\n }) : V(\"\", !0),\n s.$slots[\"calendar-header\"] ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(O), 1)\n ], 64))\n ]))), 128))\n ]),\n Hl,\n Ze(Dt, {\n name: q.value,\n css: !!s.transitions\n }, {\n default: ue(() => {\n var O;\n return [\n G.value ? (b(), F(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"grid\",\n \"aria-label\": ((O = m(y)) == null ? void 0 : O.calendarDays) || void 0\n }, [\n (b(!0), F(de, null, Me(M.value, (A, te) => (b(), F(\"div\", {\n class: \"dp__calendar_row\",\n role: \"row\",\n key: te\n }, [\n s.weekNumbers ? (b(), F(\"div\", Ll, [\n oe(\"div\", Wl, Ne(o(A.days)), 1)\n ])) : V(\"\", !0),\n (b(!0), F(de, null, Me(A.days, (B, ie) => {\n var he, me, N;\n return b(), F(\"div\", {\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n ref_for: !0,\n ref: (j) => k(j, te, ie),\n key: ie + te,\n \"aria-selected\": B.classData.dp__active_date || B.classData.dp__range_start || B.classData.dp__range_start,\n \"aria-disabled\": B.classData.dp__cell_disabled || void 0,\n \"aria-label\": (me = (he = m(y)) == null ? void 0 : he.day) == null ? void 0 : me.call(he, B),\n tabindex: \"0\",\n onClick: pe((j) => $(j, B), [\"prevent\"]),\n onKeydown: [\n le((j) => s.$emit(\"select-date\", B), [\"enter\"]),\n le((j) => s.$emit(\"handle-space\", B), [\"space\"])\n ],\n onMouseenter: (j) => T(B, te, ie),\n onMouseleave: (j) => H(B)\n }, [\n oe(\"div\", {\n class: ye([\"dp__cell_inner\", B.classData])\n }, [\n s.$slots.day && h.value(B) ? ae(s.$slots, \"day\", {\n key: 0,\n day: +B.text,\n date: B.value\n }) : V(\"\", !0),\n s.$slots.day ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n at(Ne(B.text), 1)\n ], 64)),\n B.marker && h.value(B) ? (b(), F(de, { key: 2 }, [\n s.$slots.marker ? ae(s.$slots, \"marker\", {\n key: 0,\n marker: B.marker,\n day: +B.text,\n date: B.value\n }) : (b(), F(\"div\", {\n key: 1,\n class: ye(re.value(B.marker)),\n style: Ke(B.marker.color ? { backgroundColor: B.marker.color } : {})\n }, null, 6))\n ], 64)) : V(\"\", !0),\n x.value(B.value) ? (b(), F(\"div\", {\n key: 3,\n class: \"dp__marker_tooltip\",\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: Q,\n style: Ke(g.value)\n }, [\n (N = B.marker) != null && N.tooltip ? (b(), F(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: X\n }, [\n (b(!0), F(de, null, Me(B.marker.tooltip, (j, De) => (b(), F(\"div\", {\n key: De,\n class: \"dp__tooltip_text\"\n }, [\n s.$slots[\"marker-tooltip\"] ? ae(s.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: j,\n day: B.value\n }) : V(\"\", !0),\n s.$slots[\"marker-tooltip\"] ? V(\"\", !0) : (b(), F(de, { key: 1 }, [\n oe(\"div\", {\n class: \"dp__tooltip_mark\",\n style: Ke(j.color ? { backgroundColor: j.color } : {})\n }, null, 4),\n oe(\"div\", null, Ne(j.text), 1)\n ], 64))\n ]))), 128)),\n oe(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: Ke(p.value)\n }, null, 4)\n ])) : V(\"\", !0)\n ], 4)) : V(\"\", !0)\n ], 2)\n ], 40, zl);\n }), 128))\n ]))), 128))\n ], 8, Ul)) : V(\"\", !0)\n ];\n }),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64))\n ], 10, El)\n ], 2);\n };\n }\n}), ia = (e) => Array.isArray(e), Kl = (e, n, a, t) => {\n const r = Z([]), { modelValue: l, calendars: c, time: y } = Zt(e, n), { defaultedMultiCalendars: D, defaultedStartTime: S } = Se(e), { validateMonthYearInRange: g, isDisabled: Y, isDateRangeAllowed: R, checkMinMaxRange: G } = Et(e), { updateTimeValues: q, getSetDateTime: J, setTime: Q, assignStartTime: p, disabledTimesConfig: M } = Ia(\n e,\n y,\n l,\n t\n ), E = W(\n () => (i) => c.value[i] ? c.value[i].month : 0\n ), z = W(\n () => (i) => c.value[i] ? c.value[i].year : 0\n ), K = (i, w, U) => {\n var se, be;\n c.value[i] || (c.value[i] = { month: 0, year: 0 }), c.value[i].month = aa(w) ? (se = c.value[i]) == null ? void 0 : se.month : w, c.value[i].year = aa(U) ? (be = c.value[i]) == null ? void 0 : be.year : U;\n }, _ = () => {\n e.autoApply && n(\"select-date\");\n };\n gt(l, (i, w) => {\n JSON.stringify(i) !== JSON.stringify(w) && L();\n }), Ue(() => {\n e.shadow || (l.value || (o(), S.value && p(S.value)), L(!0), e.focusStartDate && e.startDate && o());\n });\n const re = W(() => {\n var i;\n return (i = e.flow) != null && i.length && !e.partialFlow ? e.flowStep === e.flow.length : !0;\n }), x = () => {\n e.autoApply && re.value && n(\"auto-apply\", e.partialFlow);\n }, L = (i = !1) => {\n if (l.value)\n return Array.isArray(l.value) ? (r.value = l.value, I(i)) : T(l.value, i);\n if (D.value.count && i && !e.startDate)\n return h(P(), i);\n }, h = (i, w = !1) => {\n if ((!D.value.count || !D.value.static || w) && K(0, ve(i), fe(i)), D.value.count)\n for (let U = 1; U < D.value.count; U++) {\n const se = we(P(), { month: E.value(U - 1), year: z.value(U - 1) }), be = pa(se, { months: 1 });\n c.value[U] = { month: ve(be), year: fe(be) };\n }\n }, T = (i, w) => {\n h(i), Q(\"hours\", qe(i)), Q(\"minutes\", Xe(i)), Q(\"seconds\", bt(i)), D.value.count && w && d();\n }, H = (i) => {\n if (D.value.count) {\n if (D.value.solo)\n return 0;\n const w = ve(i[0]), U = ve(i[1]);\n return Math.abs(U - w) < D.value.count ? 0 : 1;\n }\n return 1;\n }, ee = (i, w) => {\n i[1] && e.showLastInRange ? h(i[H(i)], w) : h(i[0], w);\n const U = (se, be) => [\n se(i[0]),\n i[1] ? se(i[1]) : y[be][1]\n ];\n Q(\"hours\", U(qe, \"hours\")), Q(\"minutes\", U(Xe, \"minutes\")), Q(\"seconds\", U(bt, \"seconds\"));\n }, v = (i, w) => {\n if ((e.range || e.weekPicker) && !e.multiDates)\n return ee(i, w);\n if (e.multiDates && w) {\n const U = i[i.length - 1];\n return T(U, w);\n }\n }, I = (i) => {\n const w = l.value;\n v(w, i), D.value.count && D.value.solo && d();\n }, f = (i, w) => {\n const U = we(P(), { month: E.value(w), year: z.value(w) }), se = i < 0 ? ft(U, 1) : Ct(U, 1);\n g(ve(se), fe(se), i < 0, e.preventMinMaxNavigation) && (K(w, ve(se), fe(se)), D.value.count && !D.value.solo && k(w), a());\n }, k = (i) => {\n for (let w = i - 1; w >= 0; w--) {\n const U = Ct(we(P(), { month: E.value(w + 1), year: z.value(w + 1) }), 1);\n K(w, ve(U), fe(U));\n }\n for (let w = i + 1; w <= D.value.count - 1; w++) {\n const U = ft(we(P(), { month: E.value(w - 1), year: z.value(w - 1) }), 1);\n K(w, ve(U), fe(U));\n }\n }, d = () => {\n if (Array.isArray(l.value) && l.value.length === 2) {\n const i = P(\n P(l.value[1] ? l.value[1] : ft(l.value[0], 1))\n ), [w, U] = [ve(l.value[0]), fe(l.value[0])], [se, be] = [ve(l.value[1]), fe(l.value[1])];\n (w !== se || w === se && U !== be) && D.value.solo && K(1, ve(i), fe(i));\n } else\n l.value && !Array.isArray(l.value) && (K(0, ve(l.value), fe(l.value)), h(P()));\n }, o = () => {\n e.startDate && (K(0, ve(P(e.startDate)), fe(P(e.startDate))), D.value.count && k(0));\n }, $ = (i, w) => {\n e.monthChangeOnScroll && f(e.monthChangeOnScroll !== \"inverse\" ? -i.deltaY : i.deltaY, w);\n }, X = (i, w, U = !1) => {\n e.monthChangeOnArrows && e.vertical === U && s(i, w);\n }, s = (i, w) => {\n f(i === \"right\" ? -1 : 1, w);\n }, u = (i) => e.markers.find((w) => ge(la(i.value), la(w.date))), C = (i, w) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [i == 0, !0];\n case \"fair\":\n return [i == 0 || w > i, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, O = (i, w, U, se) => {\n if (e.sixWeeks && i.length < 6) {\n const be = 6 - i.length, Qe = (w.getDay() + 7 - se) % 7, Ft = 6 - (U.getDay() + 7 - se) % 7, [Tt, ln] = C(Qe, Ft);\n for (let ot = 1; ot <= be; ot++)\n if (ln ? !!(ot % 2) == Tt : Tt) {\n const Vt = i[0].days[0], on = A(it(Vt.value, -7), ve(w));\n i.unshift({ days: on });\n } else {\n const Vt = i[i.length - 1], on = Vt.days[Vt.days.length - 1], Ea = A(it(on.value, 1), ve(w));\n i.push({ days: Ea });\n }\n }\n return i;\n }, A = (i, w) => {\n const U = P(i), se = [];\n for (let be = 0; be < 7; be++) {\n const Qe = it(U, be), $t = ve(Qe) !== w;\n se.push({\n text: e.hideOffsetDates && $t ? \"\" : Qe.getDate(),\n value: Qe,\n current: !$t,\n classData: {}\n });\n }\n return se;\n }, te = (i, w) => {\n const U = [], se = P(Ge(new Date(w, i), e.timezone)), be = P(Ge(new Date(w, i + 1, 0), e.timezone)), Qe = e.weekStart, $t = ga(se, { weekStartsOn: Qe }), Ft = (Tt) => {\n const ln = A(Tt, i);\n if (U.push({ days: ln }), !U[U.length - 1].days.some(\n (ot) => ge(He(ot.value), He(be))\n )) {\n const ot = it(Tt, 7);\n Ft(ot);\n }\n };\n return Ft($t), O(U, se, be, Qe);\n }, B = (i) => (l.value = jt(P(i.value), e.timezone, e.weekStart), x()), ie = (i) => {\n const w = nt(P(i.value), y.hours, y.minutes, Te());\n e.multiDates ? Ln(w, l, e.multiDatesLimit) : l.value = w, t(), rt().then(() => {\n x();\n });\n }, he = (i) => e.noDisabledRange ? _a(r.value[0], i).some((U) => Y(U)) : !1, me = () => {\n r.value = l.value ? l.value.slice() : [], r.value.length === 2 && !(e.fixedStart || e.fixedEnd) && (r.value = []);\n }, N = (i, w) => {\n const U = [P(i.value), it(P(i.value), +e.autoRange)];\n R(U) && (w && j(i.value), r.value = U);\n }, j = (i) => {\n const w = ve(P(i)), U = fe(P(i));\n if (K(0, w, U), D.value.count > 0)\n for (let se = 1; se < D.value.count; se++) {\n const be = Or(\n we(P(i), { year: E.value(se - 1), month: z.value(se - 1) })\n );\n K(se, be.month, be.year);\n }\n }, De = (i) => Array.isArray(l.value) && l.value.length === 2 ? e.fixedStart && (Re(i, l.value[0]) || ge(i, l.value[0])) ? [l.value[0], i] : e.fixedEnd && (Pe(i, l.value[1]) || ge(i, l.value[1])) ? [i, l.value[1]] : (n(\"invalid-fixed-range\", i), l.value) : [], ne = (i) => {\n he(i.value) || !G(i.value, l.value, e.fixedStart ? 0 : 1) || (r.value = De(P(i.value)));\n }, Fe = (i, w) => {\n if (me(), e.autoRange)\n return N(i, w);\n if (e.fixedStart || e.fixedEnd)\n return ne(i);\n r.value[0] ? G(P(i.value), l.value) && !he(i.value) && (Pe(P(i.value), P(r.value[0])) ? (r.value.unshift(P(i.value)), n(\"range-end\", r.value[0])) : (r.value[1] = P(i.value), n(\"range-end\", r.value[1]))) : (r.value[0] = P(i.value), n(\"range-start\", r.value[0]));\n }, Te = (i = !0) => e.enableSeconds ? Array.isArray(y.seconds) ? i ? y.seconds[0] : y.seconds[1] : y.seconds : 0, Mt = (i) => {\n r.value[i] = nt(\n r.value[i],\n y.hours[i],\n y.minutes[i],\n Te(i !== 1)\n );\n }, Jt = () => {\n var i, w;\n r.value[0] && r.value[1] && +((i = r.value) == null ? void 0 : i[0]) > +((w = r.value) == null ? void 0 : w[1]) && (r.value.reverse(), n(\"range-start\", r.value[0]), n(\"range-end\", r.value[1]));\n }, xt = () => {\n r.value.length && (r.value[0] && !r.value[1] ? Mt(0) : (Mt(0), Mt(1), t()), Jt(), l.value = r.value.slice(), Wn(r.value, n, e.autoApply, e.modelAuto));\n }, Qt = (i, w = !1) => {\n if (!(Y(i.value) || !i.current && e.hideOffsetDates)) {\n if (e.weekPicker)\n return B(i);\n if (!e.range)\n return ie(i);\n ia(y.hours) && ia(y.minutes) && !e.multiDates && (Fe(i, w), xt());\n }\n }, en = (i, w) => {\n var se;\n K(i, w.month, w.year), D.value.count && !D.value.solo && k(i), n(\"update-month-year\", { instance: i, month: w.month, year: w.year }), a(D.value.solo ? i : void 0);\n const U = (se = e.flow) != null && se.length ? e.flow[e.flowStep] : void 0;\n !w.fromNav && (U === je.month || U === je.year) && t();\n }, tn = (i, w) => {\n Array.isArray(i) && i.length <= 2 && e.range ? l.value = i.map((U) => Ge(P(U), w ? void 0 : e.timezone)) : Array.isArray(i) || (l.value = Ge(P(i), w ? void 0 : e.timezone)), _(), e.multiCalendars && rt().then(() => L(!0));\n }, nn = () => {\n e.range ? l.value && Array.isArray(l.value) && l.value[0] ? l.value = Pe(P(), l.value[0]) ? [P(), l.value[0]] : [l.value[0], P()] : l.value = [P()] : l.value = P(), _();\n }, an = () => {\n if (Array.isArray(l.value))\n if (e.multiDates) {\n const i = rn();\n l.value[l.value.length - 1] = J(i);\n } else\n l.value = l.value.map((i, w) => i && J(i, w));\n else\n l.value = J(l.value);\n n(\"time-update\");\n }, rn = () => Array.isArray(l.value) && l.value.length ? l.value[l.value.length - 1] : null;\n return {\n calendars: c,\n modelValue: l,\n month: E,\n year: z,\n time: y,\n disabledTimesConfig: M,\n getCalendarDays: te,\n getMarker: u,\n handleScroll: $,\n handleSwipe: s,\n handleArrow: X,\n selectDate: Qt,\n updateMonthYear: en,\n presetDate: tn,\n selectCurrentDate: nn,\n updateTime: (i, w = !0, U = !1) => {\n q(i, w, U, an);\n }\n };\n}, Gl = { key: 0 }, Zl = /* @__PURE__ */ Be({\n __name: \"DatePicker\",\n props: {\n ...xe\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, {\n calendars: r,\n month: l,\n year: c,\n modelValue: y,\n time: D,\n disabledTimesConfig: S,\n getCalendarDays: g,\n getMarker: Y,\n handleArrow: R,\n handleScroll: G,\n handleSwipe: q,\n selectDate: J,\n updateMonthYear: Q,\n presetDate: p,\n selectCurrentDate: M,\n updateTime: E\n } = Kl(t, a, k, d), z = Yt(), { setHoverDate: K, getDayClassData: _, clearHoverDate: re } = Jr(y, t), { defaultedMultiCalendars: x } = Se(t), L = Z([]), h = Z([]), T = Z(null), H = ze(z, \"calendar\"), ee = ze(z, \"monthYear\"), v = ze(z, \"timePicker\"), I = (C) => {\n t.shadow || a(\"mount\", C);\n };\n gt(\n r,\n () => {\n t.shadow || setTimeout(() => {\n a(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n );\n const f = W(() => (C) => g(l.value(C), c.value(C)).map((O) => ({\n ...O,\n days: O.days.map((A) => (A.marker = Y(A), A.classData = _(A), A))\n })));\n function k(C) {\n var O;\n C || C === 0 ? (O = h.value[C]) == null || O.triggerTransition(l.value(C), c.value(C)) : h.value.forEach((A, te) => A.triggerTransition(l.value(te), c.value(te)));\n }\n function d() {\n a(\"update-flow-step\");\n }\n const o = (C, O = !1) => {\n J(C, O), t.spaceConfirm && a(\"select-date\");\n };\n return n({\n clearHoverDate: re,\n presetDate: p,\n selectCurrentDate: M,\n toggleMonthPicker: (C, O, A = 0) => {\n var te;\n (te = L.value[A]) == null || te.toggleMonthPicker(C, O);\n },\n toggleYearPicker: (C, O, A = 0) => {\n var te;\n (te = L.value[A]) == null || te.toggleYearPicker(C, O);\n },\n toggleTimePicker: (C, O, A) => {\n var te;\n (te = T.value) == null || te.toggleTimePicker(C, O, A);\n },\n handleArrow: R,\n updateMonthYear: Q,\n getSidebarProps: () => ({\n modelValue: y,\n month: l,\n year: c,\n time: D,\n updateTime: E,\n updateMonthYear: Q,\n selectDate: J,\n presetDate: p\n })\n }), (C, O) => (b(), F(de, null, [\n Ze(Un, {\n \"multi-calendars\": m(x).count\n }, {\n default: ue(({ instance: A, index: te }) => [\n C.disableMonthYearSelect ? V(\"\", !0) : (b(), ce(Bl, Ie({\n key: 0,\n ref: (B) => {\n B && (L.value[te] = B);\n },\n months: m(Ma)(C.formatLocale, C.locale, C.monthNameFormat),\n years: m(Vn)(C.yearRange, C.reverseYears),\n month: m(l)(A),\n year: m(c)(A),\n instance: A\n }, C.$props, {\n onMount: O[0] || (O[0] = (B) => I(m(mt).header)),\n onResetFlow: O[1] || (O[1] = (B) => C.$emit(\"reset-flow\")),\n onUpdateMonthYear: (B) => m(Q)(A, B),\n onOverlayClosed: O[2] || (O[2] = (B) => C.$emit(\"focus-menu\"))\n }), Ee({ _: 2 }, [\n Me(m(ee), (B, ie) => ({\n name: B,\n fn: ue((he) => [\n ae(C.$slots, B, Ce(Ve(he)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n Ze(jl, Ie({\n ref: (B) => {\n B && (h.value[te] = B);\n },\n \"mapped-dates\": f.value(A),\n month: m(l)(A),\n year: m(c)(A)\n }, C.$props, {\n onSelectDate: (B) => m(J)(B, A !== 1),\n onHandleSpace: (B) => o(B, A !== 1),\n onSetHoverDate: O[3] || (O[3] = (B) => m(K)(B)),\n onHandleScroll: (B) => m(G)(B, A),\n onHandleSwipe: (B) => m(q)(B, A),\n onMount: O[4] || (O[4] = (B) => I(m(mt).calendar)),\n onResetFlow: O[5] || (O[5] = (B) => C.$emit(\"reset-flow\")),\n onTooltipOpen: O[6] || (O[6] = (B) => C.$emit(\"tooltip-open\", B)),\n onTooltipClose: O[7] || (O[7] = (B) => C.$emit(\"tooltip-close\", B))\n }), Ee({ _: 2 }, [\n Me(m(H), (B, ie) => ({\n name: B,\n fn: ue((he) => [\n ae(C.$slots, B, Ce(Ve({ ...he })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\"]),\n C.enableTimePicker ? (b(), F(\"div\", Gl, [\n C.$slots[\"time-picker\"] ? ae(C.$slots, \"time-picker\", Ce(Ie({ key: 0 }, { time: m(D), updateTime: m(E) }))) : (b(), ce(Ya, Ie({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: T\n }, C.$props, {\n hours: m(D).hours,\n minutes: m(D).minutes,\n seconds: m(D).seconds,\n \"internal-model-value\": C.internalModelValue,\n \"disabled-times-config\": m(S),\n onMount: O[8] || (O[8] = (A) => I(m(mt).timePicker)),\n \"onUpdate:hours\": O[9] || (O[9] = (A) => m(E)(A)),\n \"onUpdate:minutes\": O[10] || (O[10] = (A) => m(E)(A, !1)),\n \"onUpdate:seconds\": O[11] || (O[11] = (A) => m(E)(A, !1, !0)),\n onResetFlow: O[12] || (O[12] = (A) => C.$emit(\"reset-flow\")),\n onOverlayClosed: O[13] || (O[13] = (A) => C.$emit(\"time-picker-close\")),\n onOverlayOpened: O[14] || (O[14] = (A) => C.$emit(\"time-picker-open\", A)),\n onAmPmChange: O[15] || (O[15] = (A) => C.$emit(\"am-pm-change\", A))\n }), Ee({ _: 2 }, [\n Me(m(v), (A, te) => ({\n name: A,\n fn: ue((B) => [\n ae(C.$slots, A, Ce(Ve(B)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\"]))\n ])) : V(\"\", !0)\n ], 64));\n }\n}), ql = [\"id\", \"onKeydown\"], Xl = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, Jl = {\n key: 1,\n class: \"dp--preset-dates\"\n}, xl = [\"onClick\", \"onKeydown\"], Ql = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, eo = {\n key: 3,\n class: \"dp__action_extra\"\n}, da = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...Xt,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n arrMapValues: { type: Object, default: () => ({}) }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, r = W(() => {\n const { openOnTop: N, ...j } = t;\n return {\n ...j,\n flowStep: re.value\n };\n }), { setMenuFocused: l, setShiftKey: c, control: y } = Oa(), D = Yt(), { defaultedTextInput: S, defaultedInline: g, defaultedConfig: Y } = Se(t), R = Z(null), G = Z(0), q = Z(null), J = Z(null), Q = Z(!1), p = Z(null);\n Ue(() => {\n if (!t.shadow) {\n Q.value = !0, M(), window.addEventListener(\"resize\", M);\n const N = Ae(q);\n if (N && !S.value.enabled && !g.value.enabled && (l(!0), H()), N) {\n const j = (De) => {\n (t.allowPreventDefault || Y.value.allowPreventDefault) && De.preventDefault(), tt(De, Y.value, !0);\n };\n N.addEventListener(\"pointerdown\", j), N.addEventListener(\"mousedown\", j);\n }\n }\n }), _n(() => {\n window.removeEventListener(\"resize\", M);\n });\n const M = () => {\n const N = Ae(J);\n N && (G.value = N.getBoundingClientRect().width);\n }, { arrowRight: E, arrowLeft: z, arrowDown: K, arrowUp: _ } = lt(), { flowStep: re, updateFlowStep: x, childMount: L, resetFlow: h } = xr(t, a, p), T = W(() => t.monthPicker ? gl : t.yearPicker ? hl : t.timePicker ? Nl : Zl), H = () => {\n const N = Ae(q);\n N && N.focus({ preventScroll: !0 });\n }, ee = W(() => {\n var N;\n return ((N = p.value) == null ? void 0 : N.getSidebarProps()) || {};\n }), v = () => {\n t.openOnTop && a(\"recalculate-position\");\n }, I = ze(D, \"action\"), f = W(() => t.monthPicker || t.yearPicker ? ze(D, \"monthYear\") : t.timePicker ? ze(D, \"timePicker\") : ze(D, \"shared\")), k = W(() => t.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), d = W(() => ({\n dp__menu_disabled: t.disabled,\n dp__menu_readonly: t.readonly\n })), o = W(\n () => ({\n dp__menu: !0,\n dp__menu_index: !g.value.enabled,\n dp__relative: g.value.enabled,\n [t.menuClassName]: !!t.menuClassName\n })\n ), $ = (N) => {\n tt(N, Y.value, !0);\n }, X = () => {\n t.escClose && a(\"close-picker\");\n }, s = (N) => {\n if (t.arrowNavigation) {\n if (N === \"up\")\n return _();\n if (N === \"down\")\n return K();\n if (N === \"left\")\n return z();\n if (N === \"right\")\n return E();\n } else\n N === \"left\" || N === \"up\" ? te(\"handleArrow\", \"left\", 0, N === \"up\") : te(\"handleArrow\", \"right\", 0, N === \"down\");\n }, u = (N) => {\n c(N.shiftKey), !t.disableMonthYearSelect && N.code === \"Tab\" && N.target.classList.contains(\"dp__menu\") && y.value.shiftKeyInMenu && (N.preventDefault(), tt(N, Y.value, !0), a(\"close-picker\"));\n }, C = () => {\n H(), a(\"time-picker-close\");\n }, O = (N) => {\n var j, De, ne;\n (j = p.value) == null || j.toggleTimePicker(!1, !1), (De = p.value) == null || De.toggleMonthPicker(!1, !1, N), (ne = p.value) == null || ne.toggleYearPicker(!1, !1, N);\n }, A = (N, j = 0) => {\n var De, ne, Fe;\n return N === \"month\" ? (De = p.value) == null ? void 0 : De.toggleMonthPicker(!1, !0, j) : N === \"year\" ? (ne = p.value) == null ? void 0 : ne.toggleYearPicker(!1, !0, j) : N === \"time\" ? (Fe = p.value) == null ? void 0 : Fe.toggleTimePicker(!0, !1) : O(j);\n }, te = (N, ...j) => {\n var De, ne;\n (De = p.value) != null && De[N] && ((ne = p.value) == null || ne[N](...j));\n }, B = () => {\n te(\"selectCurrentDate\");\n }, ie = (N, j) => {\n te(\"presetDate\", N, j);\n }, he = () => {\n te(\"clearHoverDate\");\n };\n return n({\n updateMonthYear: (N, j) => {\n te(\"updateMonthYear\", N, j);\n },\n switchView: A\n }), (N, j) => {\n var De;\n return b(), F(\"div\", {\n id: N.uid ? `dp-menu-${N.uid}` : void 0,\n tabindex: \"0\",\n ref_key: \"dpMenuRef\",\n ref: q,\n role: \"dialog\",\n class: ye(o.value),\n onMouseleave: he,\n onClick: $,\n onKeydown: [\n le(X, [\"esc\"]),\n j[15] || (j[15] = le(pe((ne) => s(\"left\"), [\"prevent\"]), [\"left\"])),\n j[16] || (j[16] = le(pe((ne) => s(\"up\"), [\"prevent\"]), [\"up\"])),\n j[17] || (j[17] = le(pe((ne) => s(\"down\"), [\"prevent\"]), [\"down\"])),\n j[18] || (j[18] = le(pe((ne) => s(\"right\"), [\"prevent\"]), [\"right\"])),\n u\n ]\n }, [\n (N.disabled || N.readonly) && m(g).enabled ? (b(), F(\"div\", {\n key: 0,\n class: ye(d.value)\n }, null, 2)) : V(\"\", !0),\n !m(g).enabled && !N.teleportCenter ? (b(), F(\"div\", {\n key: 1,\n class: ye(k.value)\n }, null, 2)) : V(\"\", !0),\n oe(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: J,\n class: ye({\n dp__menu_content_wrapper: ((De = N.presetDates) == null ? void 0 : De.length) || !!N.$slots[\"left-sidebar\"] || !!N.$slots[\"right-sidebar\"]\n }),\n style: Ke({ \"--dp-menu-width\": `${G.value}px` })\n }, [\n N.$slots[\"left-sidebar\"] ? (b(), F(\"div\", Xl, [\n ae(N.$slots, \"left-sidebar\", Ce(Ve(ee.value)))\n ])) : V(\"\", !0),\n N.presetDates.length ? (b(), F(\"div\", Jl, [\n (b(!0), F(de, null, Me(N.presetDates, (ne, Fe) => (b(), F(\"div\", {\n key: Fe,\n style: Ke(ne.style || {}),\n class: \"dp--preset-range\"\n }, [\n ne.slot ? ae(N.$slots, ne.slot, {\n key: 0,\n presetDate: ie,\n label: ne.label,\n value: ne.value\n }) : (b(), F(\"div\", {\n key: 1,\n role: \"button\",\n tabindex: \"0\",\n onClick: (Te) => ie(ne.value, ne.noTz),\n onKeydown: [\n le(pe((Te) => ie(ne.value, ne.noTz), [\"prevent\"]), [\"enter\"]),\n le(pe((Te) => ie(ne.value, ne.noTz), [\"prevent\"]), [\"space\"])\n ]\n }, Ne(ne.label), 41, xl))\n ], 4))), 128))\n ])) : V(\"\", !0),\n oe(\"div\", {\n class: \"dp__instance_calendar\",\n ref_key: \"calendarWrapperRef\",\n ref: R,\n role: \"document\"\n }, [\n (b(), ce(Pn(T.value), Ie({\n ref_key: \"dynCmpRef\",\n ref: p\n }, r.value, {\n \"flow-step\": m(re),\n onMount: m(L),\n onUpdateFlowStep: m(x),\n onResetFlow: m(h),\n onFocusMenu: H,\n onSelectDate: j[0] || (j[0] = (ne) => N.$emit(\"select-date\")),\n onTooltipOpen: j[1] || (j[1] = (ne) => N.$emit(\"tooltip-open\", ne)),\n onTooltipClose: j[2] || (j[2] = (ne) => N.$emit(\"tooltip-close\", ne)),\n onAutoApply: j[3] || (j[3] = (ne) => N.$emit(\"auto-apply\", ne)),\n onRangeStart: j[4] || (j[4] = (ne) => N.$emit(\"range-start\", ne)),\n onRangeEnd: j[5] || (j[5] = (ne) => N.$emit(\"range-end\", ne)),\n onInvalidFixedRange: j[6] || (j[6] = (ne) => N.$emit(\"invalid-fixed-range\", ne)),\n onTimeUpdate: j[7] || (j[7] = (ne) => N.$emit(\"time-update\")),\n onAmPmChange: j[8] || (j[8] = (ne) => N.$emit(\"am-pm-change\", ne)),\n onTimePickerOpen: j[9] || (j[9] = (ne) => N.$emit(\"time-picker-open\", ne)),\n onTimePickerClose: C,\n onRecalculatePosition: v,\n onUpdateMonthYear: j[10] || (j[10] = (ne) => N.$emit(\"update-month-year\", ne)),\n \"onUpdate:internalModelValue\": j[11] || (j[11] = (ne) => N.$emit(\"update:internal-model-value\", ne))\n }), Ee({ _: 2 }, [\n Me(f.value, (ne, Fe) => ({\n name: ne,\n fn: ue((Te) => [\n ae(N.$slots, ne, Ce(Ve({ ...Te })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n N.$slots[\"right-sidebar\"] ? (b(), F(\"div\", Ql, [\n ae(N.$slots, \"right-sidebar\", Ce(Ve(ee.value)))\n ])) : V(\"\", !0),\n N.$slots[\"action-extra\"] ? (b(), F(\"div\", eo, [\n N.$slots[\"action-extra\"] ? ae(N.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: B\n }) : V(\"\", !0)\n ])) : V(\"\", !0)\n ], 6),\n !N.autoApply || N.keepActionRow || m(Y).keepActionRow ? (b(), ce(ol, Ie({\n key: 2,\n \"menu-mount\": Q.value\n }, r.value, {\n \"calendar-width\": G.value,\n onClosePicker: j[12] || (j[12] = (ne) => N.$emit(\"close-picker\")),\n onSelectDate: j[13] || (j[13] = (ne) => N.$emit(\"select-date\")),\n onInvalidSelect: j[14] || (j[14] = (ne) => N.$emit(\"invalid-select\")),\n onSelectNow: B\n }), Ee({ _: 2 }, [\n Me(m(I), (ne, Fe) => ({\n name: ne,\n fn: ue((Te) => [\n ae(N.$slots, ne, Ce(Ve({ ...Te })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : V(\"\", !0)\n ], 42, ql);\n };\n }\n}), to = typeof window < \"u\" ? window : void 0, bn = () => {\n}, no = (e) => Ha() ? (Ua(e), !0) : !1, ao = (e, n, a, t) => {\n if (!e)\n return bn;\n let r = bn;\n const l = gt(\n () => m(e),\n (y) => {\n r(), y && (y.addEventListener(n, a, t), r = () => {\n y.removeEventListener(n, a, t), r = bn;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), c = () => {\n l(), r();\n };\n return no(c), c;\n}, ro = (e, n, a, t = {}) => {\n const { window: r = to, event: l = \"pointerdown\" } = t;\n return r ? ao(r, l, (y) => {\n const D = Ae(e), S = Ae(n);\n !D || !S || D === y.target || y.composedPath().includes(D) || y.composedPath().includes(S) || a(y);\n }, { passive: !0 }) : void 0;\n}, lo = /* @__PURE__ */ Be({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...Xt\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\"\n ],\n setup(e, { expose: n, emit: a }) {\n const t = e, r = Yt(), l = Z(!1), c = Kt(t, \"modelValue\"), y = Kt(t, \"timezone\"), D = Z(null), S = Z(null), g = Z(null), Y = Z(!1), R = Z(null), { setMenuFocused: G, setShiftKey: q } = Oa(), { clearArrowNav: J } = lt(), { mapDatesArrToMap: Q, validateDate: p, isValidTime: M } = Et(t), { defaultedTransitions: E, defaultedTextInput: z, defaultedInline: K, defaultedConfig: _ } = Se(t), { menuTransition: re, showTransition: x } = Bt(E);\n Ue(() => {\n $(t.modelValue), rt().then(() => {\n K.value.enabled || (f(R.value).addEventListener(\"scroll\", te), window.addEventListener(\"resize\", B));\n }), K.value.enabled && (l.value = !0);\n });\n const L = W(() => Q());\n _n(() => {\n if (!K.value.enabled) {\n const i = f(R.value);\n i && i.removeEventListener(\"scroll\", te), window.removeEventListener(\"resize\", B);\n }\n });\n const h = ze(r, \"all\", t.presetDates), T = ze(r, \"input\");\n gt(\n [c, y],\n () => {\n $(c.value);\n },\n { deep: !0 }\n );\n const { openOnTop: H, menuStyle: ee, xCorrect: v, setMenuPosition: I, getScrollableParent: f, shadowRender: k } = Zr({\n menuRef: D,\n menuRefInner: S,\n inputRef: g,\n pickerWrapperRef: R,\n inline: K,\n emit: a,\n props: t,\n slots: r\n }), {\n inputValue: d,\n internalModelValue: o,\n parseExternalModelValue: $,\n emitModelValue: X,\n formatInputValue: s,\n checkBeforeEmit: u\n } = Kr(a, t, Y), C = W(\n () => ({\n dp__main: !0,\n dp__theme_dark: t.dark,\n dp__theme_light: !t.dark,\n dp__flex_display: K.value.enabled,\n dp__flex_display_with_input: K.value.input\n })\n ), O = W(() => t.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), A = W(() => t.teleport ? {\n to: typeof t.teleport == \"boolean\" ? \"body\" : t.teleport,\n disabled: K.value.enabled\n } : { class: \"dp__outer_menu_wrap\" }), te = () => {\n l.value && (t.closeOnScroll || _.value.closeOnScroll ? Te() : I());\n }, B = () => {\n l.value && I();\n }, ie = () => {\n !t.disabled && !t.readonly && (k(da, t), I(!1), l.value = !0, l.value && a(\"open\"), l.value || Fe(), $(t.modelValue));\n }, he = () => {\n d.value = \"\", Fe(), a(\"update:model-value\", null), a(\"update:model-timezone-value\", null), a(\"cleared\"), (t.closeOnClearValue || _.value.closeOnClearValue) && Te();\n }, me = () => {\n const i = o.value;\n return !i || !Array.isArray(i) && p(i) ? !0 : Array.isArray(i) ? i.length === 2 && p(i[0]) && p(i[1]) ? !0 : t.partialRange && !t.timePicker ? p(i[0]) : !1 : !1;\n }, N = () => {\n u() && me() ? (X(), Te()) : a(\"invalid-select\", o.value);\n }, j = (i) => {\n De(), X(), (t.closeOnAutoApply || _.value.closeOnAutoApply) && !i && Te();\n }, De = () => {\n g.value && z.value.enabled && g.value.setParsedDate(o.value);\n }, ne = (i = !1) => {\n t.autoApply && M(o.value) && me() && (t.range && Array.isArray(o.value) ? (t.partialRange || o.value.length === 2) && j(i) : j(i));\n }, Fe = () => {\n z.value.enabled || (o.value = null);\n }, Te = () => {\n K.value.enabled || (l.value && (l.value = !1, v.value = !1, G(!1), q(!1), J(), a(\"closed\"), d.value && $(c.value)), Fe(), a(\"blur\"));\n }, Mt = (i, w) => {\n if (!i) {\n o.value = null;\n return;\n }\n o.value = i, w && (N(), a(\"text-submit\"));\n }, Jt = () => {\n t.autoApply && M(o.value) && X(), De();\n }, xt = () => l.value ? Te() : ie(), Qt = (i) => {\n o.value = i;\n }, en = () => {\n z.value.enabled && (Y.value = !0, s()), a(\"focus\");\n }, tn = () => {\n z.value.enabled && (Y.value = !1, $(t.modelValue)), a(\"blur\");\n }, nn = (i) => {\n S.value && S.value.updateMonthYear(0, {\n month: na(i.month),\n year: na(i.year)\n });\n }, an = (i) => {\n $(i ?? t.modelValue);\n }, rn = (i, w) => {\n var U;\n (U = S.value) == null || U.switchView(i, w);\n }, zn = (i) => t.onClickOutside ? t.onClickOutside(i) : _.value.onClickOutside ? _.value.onClickOutside(i) : Te();\n return ro(D, g, () => zn(me)), n({\n closeMenu: Te,\n selectDate: N,\n clearValue: he,\n openMenu: ie,\n onScroll: te,\n formatInputValue: s,\n // exposed for testing purposes\n updateInternalModelValue: Qt,\n // modify internal modelValue\n setMonthYear: nn,\n parseModel: an,\n switchView: rn\n }), (i, w) => (b(), F(\"div\", {\n class: ye(C.value),\n ref_key: \"pickerWrapperRef\",\n ref: R\n }, [\n Ze(nl, Ie({\n ref_key: \"inputRef\",\n ref: g,\n \"is-menu-open\": l.value,\n \"input-value\": m(d),\n \"onUpdate:inputValue\": w[0] || (w[0] = (U) => Kn(d) ? d.value = U : null)\n }, i.$props, {\n onClear: he,\n onOpen: ie,\n onSetInputDate: Mt,\n onSetEmptyDate: m(X),\n onSelectDate: N,\n onToggle: xt,\n onClose: Te,\n onFocus: en,\n onBlur: tn,\n onRealBlur: w[1] || (w[1] = (U) => Y.value = !1)\n }), Ee({ _: 2 }, [\n Me(m(T), (U, se) => ({\n name: U,\n fn: ue((be) => [\n ae(i.$slots, U, Ce(Ve(be)))\n ])\n }))\n ]), 1040, [\"is-menu-open\", \"input-value\", \"onSetEmptyDate\"]),\n Ze(Dt, {\n name: m(re)(m(H)),\n css: m(x) && !m(K).enabled\n }, {\n default: ue(() => [\n l.value ? (b(), ce(Pn(i.teleport ? La : \"div\"), Ie({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: D\n }, A.value, {\n class: { \"dp--menu-wrapper\": !m(K).enabled },\n style: m(K).enabled ? void 0 : m(ee)\n }), {\n default: ue(() => [\n Ze(da, Ie({\n ref_key: \"dpMenuRef\",\n ref: S,\n class: { [O.value]: !0, \"dp--menu-wrapper\": i.teleport },\n style: i.teleport ? m(ee) : void 0,\n \"open-on-top\": m(H),\n \"arr-map-values\": L.value\n }, i.$props, {\n \"internal-model-value\": m(o),\n \"onUpdate:internalModelValue\": w[2] || (w[2] = (U) => Kn(o) ? o.value = U : null),\n onClosePicker: Te,\n onSelectDate: N,\n onAutoApply: ne,\n onTimeUpdate: Jt,\n onFlowStep: w[3] || (w[3] = (U) => i.$emit(\"flow-step\", U)),\n onUpdateMonthYear: w[4] || (w[4] = (U) => i.$emit(\"update-month-year\", U)),\n onInvalidSelect: w[5] || (w[5] = (U) => i.$emit(\"invalid-select\", m(o))),\n onInvalidFixedRange: w[6] || (w[6] = (U) => i.$emit(\"invalid-fixed-range\", U)),\n onRecalculatePosition: m(I),\n onTooltipOpen: w[7] || (w[7] = (U) => i.$emit(\"tooltip-open\", U)),\n onTooltipClose: w[8] || (w[8] = (U) => i.$emit(\"tooltip-close\", U)),\n onTimePickerOpen: w[9] || (w[9] = (U) => i.$emit(\"time-picker-open\", U)),\n onTimePickerClose: w[10] || (w[10] = (U) => i.$emit(\"time-picker-close\", U)),\n onAmPmChange: w[11] || (w[11] = (U) => i.$emit(\"am-pm-change\", U)),\n onRangeStart: w[12] || (w[12] = (U) => i.$emit(\"range-start\", U)),\n onRangeEnd: w[13] || (w[13] = (U) => i.$emit(\"range-end\", U))\n }), Ee({ _: 2 }, [\n Me(m(h), (U, se) => ({\n name: U,\n fn: ue((be) => [\n ae(i.$slots, U, Ce(Ve({ ...be })))\n ])\n }))\n ]), 1040, [\"class\", \"style\", \"open-on-top\", \"arr-map-values\", \"internal-model-value\", \"onRecalculatePosition\"])\n ]),\n _: 3\n }, 16, [\"class\", \"style\"])) : V(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2));\n }\n}), Ba = /* @__PURE__ */ (() => {\n const e = lo;\n return e.install = (n) => {\n n.component(\"Vue3DatePicker\", e);\n }, e;\n})(), oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: Ba\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(oo).forEach(([e, n]) => {\n e !== \"default\" && (Ba[e] = n);\n});\nexport {\n Ba as default\n};\n","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport subDays from \"../subDays/index.js\";\nimport subMonths from \"../subMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nexport default function sub(date, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0;\n\n // Subtract years and months\n var dateWithoutMonths = subMonths(date, months + years * 12);\n\n // Subtract weeks and days\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7);\n\n // Subtract hours, minutes and seconds\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport startOfWeekYear from \"../startOfWeekYear/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport default function getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek(date, options).getTime() - startOfWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getWeekYear from \"../getWeekYear/index.js\";\nimport startOfWeek from \"../startOfWeek/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the start of a week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek(firstWeek, options);\n return date;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the local week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport default function getWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import { ref, computed, watch } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport VueDatePicker from '@vuepic/vue-datepicker'\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue'\r\nimport phoneValidator from '../../foundation/js/inputValidators/phoneValidator'\r\nimport nameValidator from '../../foundation/js/inputValidators/nameValidator'\r\nimport textAreaValidator from '../../foundation/js/inputValidators/textAreaValidator'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\n\r\nexport default {\r\n name: 'PersonalFundraising',\r\n components: {\r\n VueDatePicker,\r\n FormInputTextField\r\n },\r\n props: {\r\n isMindegave: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n isUpdate: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n personalFundraising: {\r\n type: Object,\r\n required: true\r\n },\r\n hasPhoneNumber: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n showUnsavedChangesWarning: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'personalFundraising',\r\n labelKey\r\n })\r\n const headline = ref(props.personalFundraising?.Headline ?? '')\r\n const dateOfbirth = ref(props.personalFundraising?.DateOfBirth)\r\n const fundraisingTarget = ref(\r\n props.personalFundraising?.FundraisingTarget ?? ''\r\n )\r\n const dateOfdeath = ref(props.personalFundraising?.DateOfDeath)\r\n const endDate = ref(props.personalFundraising?.EndDate ?? '')\r\n const fundraiseReason = ref(\r\n props.personalFundraising?.FundraiseReason ?? ''\r\n )\r\n const fundraisePersonDescription = ref(\r\n props.personalFundraising?.FundraisePersonDescription ?? ''\r\n )\r\n const personalStoryImage = ref(\r\n props.personalFundraising?.personalStoryImages ?? []\r\n )\r\n const fundraiseImage = ref(props.personalFundraising?.fundraiseImage)\r\n const datePickerRefDateOfBirth = ref()\r\n const datePickerRefDateOfDeath = ref()\r\n const datePickerRefEndDate = ref()\r\n const notificationSms = ref(\r\n props.personalFundraising?.SmsNotification ?? false\r\n )\r\n const notificationEmail = ref(\r\n props.personalFundraising?.EmailNotification ?? false\r\n )\r\n const phoneNumber = ref('')\r\n const unSubmitted = ref(true)\r\n const isSubmitting = computed(\r\n () => store.state.fundraising.isSubmitting\r\n )\r\n\r\n \r\n \r\n const showUnsavedChangesWarning = props.showUnsavedChangesWarning;\r\n const handleBeforeUnload = (e) => {\r\n if (store.state.fundraising.isEditing && showUnsavedChangesWarning) {\r\n e.preventDefault();\r\n e.returnValue = ''; \r\n }\r\n };\r\n \r\n if (showUnsavedChangesWarning) {\r\n window.addEventListener('beforeunload', handleBeforeUnload);\r\n } else {\r\n window.removeEventListener('beforeunload', handleBeforeUnload);\r\n }\r\n \r\n\r\n const isUploadingFundraiseImage = computed(\r\n () => store.state.fundraising.isFundraiseImageUploading\r\n )\r\n const personalStoryImagesUploading = computed(\r\n () => store.state.fundraising.personalStoryImagesUploading\r\n )\r\n\r\n const selectEndDate = () => {\r\n datePickerRefEndDate.value.selectDate()\r\n }\r\n\r\n const selectDateOfBirth = () => {\r\n datePickerRefDateOfBirth.value.selectDate()\r\n }\r\n\r\n const selectDateOfDeath = () => {\r\n datePickerRefDateOfDeath.value.selectDate()\r\n }\r\n\r\n const customPosition = () => ({ top: 10, left: 40 })\r\n\r\n const headlineFilled = computed(() => {\r\n return unSubmitted.value && !headline.value\r\n ? true\r\n : (unSubmitted.value || headline.value.length > 2) &&\r\n headline.value.length <= 75 &&\r\n nameValidator(headline.value)\r\n })\r\n\r\n const dateOfbirthFilled = computed(() => {\r\n return unSubmitted.value || !props.isMindegave\r\n ? true\r\n : dateOfbirth.value\r\n })\r\n\r\n const endDateFilled = computed(() => {\r\n return unSubmitted.value ? true : endDate.value\r\n })\r\n\r\n const dateOfdeathFilled = computed(() => {\r\n return unSubmitted.value || !props.isMindegave\r\n ? true\r\n : dateOfdeath.value\r\n })\r\n\r\n const fundraisingTargetFilled = computed(() => {\r\n return unSubmitted.value ? true : fundraisingTarget.value >= 100\r\n })\r\n\r\n const fundraiseReasonFilled = computed(() => {\r\n return unSubmitted.value && !fundraiseReason.value\r\n ? true\r\n : (unSubmitted.value || fundraiseReason.value.length > 2) &&\r\n fundraiseReason.value.length <= 2000 &&\r\n textAreaValidator(fundraiseReason.value)\r\n })\r\n\r\n const fundraisePersonDescriptionFilled = computed(() => {\r\n return unSubmitted.value && !fundraisePersonDescription.value\r\n ? true\r\n : fundraisePersonDescription.value\r\n ? (unSubmitted.value ||\r\n fundraisePersonDescription.value.length > 2) &&\r\n fundraisePersonDescription.value.length <= 2000 &&\r\n textAreaValidator(fundraisePersonDescription.value)\r\n : true\r\n })\r\n\r\n const personalStoryImageFilled = computed(() => {\r\n return unSubmitted.value ? true : !!personalStoryImage.value\r\n })\r\n\r\n const fundraiseImageFilled = computed(() => {\r\n return unSubmitted.value ? true : !!fundraiseImage.value\r\n })\r\n\r\n const phoneNumberFilled = computed(() => {\r\n return unSubmitted.value && !phoneNumber.value\r\n ? true\r\n : phoneValidator(phoneNumber.value)\r\n })\r\n\r\n const pageId = computed(() => store.state.main.page_id)\r\n const isFundraiseImageUploadError = computed(\r\n () => store.state.fundraising.isFundraiseImageUploadError\r\n )\r\n const isPersonalStoryImageUploadError = computed(\r\n () => store.state.fundraising.isPersonalStoryImageUploadError\r\n )\r\n\r\n const inputIsValid = function () {\r\n return (\r\n headlineFilled.value &&\r\n dateOfbirthFilled.value &&\r\n endDateFilled.value &&\r\n dateOfdeathFilled.value &&\r\n fundraisingTargetFilled.value &&\r\n fundraiseReasonFilled.value &&\r\n personalStoryImageFilled.value &&\r\n (notificationSms.value\r\n ? props.hasPhoneNumber || phoneNumberFilled.value\r\n : true)\r\n )\r\n }\r\n \r\n const onSubmit = function () {\r\n store.commit('fundraising/set_fundraise_image_upload_error', false)\r\n store.commit(\r\n 'fundraising/set_personal_story_image_upload_error',\r\n false\r\n )\r\n unSubmitted.value = false\r\n if (!inputIsValid()) {\r\n scrollToFirstError()\r\n \r\n return false;\r\n }\r\n\r\n const payload = {\r\n content: {\r\n pageId: pageId.value,\r\n headline: headline.value,\r\n dateOfBirth: dateOfbirth.value,\r\n dateOfDeath: dateOfdeath.value,\r\n fundraisingTarget: parseInt(fundraisingTarget.value),\r\n endDate: endDate.value,\r\n fundraiseDescription: fundraiseReason.value,\r\n fundraisePersonDescription:\r\n fundraisePersonDescription.value || null,\r\n coverImage: fundraiseImage.value,\r\n images: personalStoryImage.value,\r\n phoneNumber:\r\n notificationSms.value && !props.hasPhoneNumber\r\n ? phoneNumber.value\r\n : null,\r\n notificationSms: notificationSms.value,\r\n notificationEmail: notificationEmail.value\r\n },\r\n id: props.personalFundraising.Id\r\n }\r\n if (props.isUpdate)\r\n store.dispatch('fundraising/updatePersonalfundraising', payload)\r\n else\r\n store.dispatch('fundraising/createPersonalfundraising', payload)\r\n }\r\n\r\n const fundraiseImageUploader = async function (e) {\r\n const imageData = await store.dispatch(\r\n 'fundraising/uploadFundraiseImage',\r\n {\r\n type: 'fundraiseImage',\r\n file: e.target.files[0],\r\n id: props.personalFundraising.Id\r\n }\r\n )\r\n if (imageData) fundraiseImage.value = imageData\r\n }\r\n\r\n const personalStoryImageUploader = async function (e) {\r\n for (var file of e.target.files)\r\n singlePersonalStoryImageUploader(file)\r\n }\r\n\r\n const singlePersonalStoryImageUploader = async function (file) {\r\n const imageData = await store.dispatch(\r\n 'fundraising/uploadFundraiseImage',\r\n {\r\n type: 'personalStoryImage',\r\n file: file,\r\n id: props.personalFundraising.Id\r\n }\r\n )\r\n if (imageData) personalStoryImage.value.push(imageData)\r\n }\r\n\r\n const discardUploadedImage = function (imageType, discardFileId) {\r\n if (imageType === 'fundraiseImage') fundraiseImage.value = null\r\n if (imageType === 'personalStoryImage')\r\n personalStoryImage.value = personalStoryImage.value.filter(\r\n (image) => image.id !== discardFileId\r\n )\r\n }\r\n\r\n const previousButtonPressed = function () {\r\n if (history.length <= 1) document.location = defaultRedirectUrl\r\n\r\n history.back()\r\n }\r\n\r\n const deleteButtonPressed = function () {\r\n if (window.confirm(getLabel('deleteConfirmation'))) {\r\n store.dispatch('fundraising/deletePersonalfundraising', {\r\n id: props.personalFundraising.Id,\r\n pageId: pageId.value\r\n })\r\n }\r\n }\r\n\r\n const formatFilesize = (fileSize) => {\r\n var roundedMb = (fileSize / Math.pow(1024, 2)).toFixed(0)\r\n if (roundedMb >= 1) return roundedMb + ' MB'\r\n var roundedKb = (fileSize / Math.pow(1024, 1)).toFixed(0)\r\n return roundedKb + ' KB'\r\n }\r\n\r\n const disableSubmit = computed(() => {\r\n return (\r\n isUploadingFundraiseImage.value ||\r\n personalStoryImagesUploading.value > 0\r\n )\r\n })\r\n\r\n const showPhoneNumberInput = computed(() => {\r\n return notificationSms.value && !props.hasPhoneNumber\r\n })\r\n\r\n return {\r\n discardUploadedImage,\r\n headline,\r\n dateOfbirth,\r\n fundraisingTarget,\r\n dateOfdeath,\r\n fundraiseReason,\r\n endDate,\r\n fundraisePersonDescription,\r\n personalStoryImage,\r\n fundraiseImage,\r\n fundraiseImageUploader,\r\n onSubmit,\r\n disableSubmit,\r\n headlineFilled,\r\n dateOfbirthFilled,\r\n fundraisingTargetFilled,\r\n dateOfdeathFilled,\r\n fundraiseImageFilled,\r\n personalStoryImageFilled,\r\n fundraiseReasonFilled,\r\n fundraisePersonDescriptionFilled,\r\n endDateFilled,\r\n phoneNumberFilled,\r\n getLabel,\r\n selectEndDate,\r\n datePickerRefEndDate,\r\n selectDateOfBirth,\r\n datePickerRefDateOfBirth,\r\n selectDateOfDeath,\r\n datePickerRefDateOfDeath,\r\n customPosition,\r\n personalStoryImageUploader,\r\n previousButtonPressed,\r\n deleteButtonPressed,\r\n formatFilesize,\r\n isSubmitting,\r\n isUploadingFundraiseImage,\r\n personalStoryImagesUploading,\r\n isFundraiseImageUploadError,\r\n isPersonalStoryImageUploadError,\r\n notificationSms,\r\n notificationEmail,\r\n phoneNumber,\r\n showPhoneNumberInput\r\n }\r\n }\r\n}\r\n","import { render } from \"./PersonalFundraising.vue?vue&type=template&id=f9549de8\"\nimport script from \"./PersonalFundraising.vue?vue&type=script&lang=js\"\nexport * from \"./PersonalFundraising.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport PersonalFundraising from './PersonalFundraising'\r\n\r\nconst el = '.kb-component--personal-fundraising'\r\n\r\nconst mapImage = (img) => {\r\n return {\r\n id: img.Id,\r\n name: img.Name,\r\n url: img.Url\r\n }\r\n}\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((PersonalFundraisingDOM) => {\r\n const pageId = PersonalFundraisingDOM.dataset.pageId\r\n if (pageId) Store.commit('main/set_page_id', pageId)\r\n\r\n const isMindegave =\r\n PersonalFundraisingDOM.hasAttribute('is-mindegave')\r\n const isUpdate = PersonalFundraisingDOM.hasAttribute('is-update')\r\n const hasPhoneNumber =\r\n PersonalFundraisingDOM.hasAttribute('has-phone-number')\r\n const personalFundraising = JSON.parse(\r\n PersonalFundraisingDOM.dataset.personalFundraising\r\n )\r\n const showUnsavedChangesWarning =\r\n PersonalFundraisingDOM.hasAttribute('show-unsaved-changes-warning')\r\n\r\n if (personalFundraising?.Images)\r\n personalFundraising.personalStoryImages =\r\n personalFundraising.Images.map((i) => mapImage(i))\r\n if (personalFundraising?.CoverImage)\r\n personalFundraising.fundraiseImage = mapImage(\r\n personalFundraising.CoverImage\r\n )\r\n\r\n const component = createApp(PersonalFundraising, {\r\n isUpdate,\r\n isMindegave,\r\n personalFundraising,\r\n hasPhoneNumber,\r\n showUnsavedChangesWarning\r\n }).use(Store)\r\n component.mount(PersonalFundraisingDOM)\r\n })\r\n }\r\n}\r\n","import {useStore} from 'vuex'\r\n\r\nexport default {\r\n name: \"PostAside\",\r\n setup(){\r\n const store = useStore()\r\n const startUserInfoOverlay = function(e, userId){\r\n store.commit('main/set_page_overlay_content_data', {\r\n userId\r\n })\r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: 'MemberOverlay',\r\n returnTarget: e.currentTarget\r\n }) \r\n }\r\n\r\n return {\r\n startUserInfoOverlay\r\n }\r\n }\r\n}","\r\n\r\n\r\n","\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\nimport { computed, ref } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\nimport AttachmentsViewer from \"../AttachmentsViewer/AttachmentsViewer.vue\";\r\nimport AttachmentsEditor from \"../AttachmentsEditor/AttachmentsEditor.vue\";\r\n\r\nexport default {\r\n name: \"PostComment\",\r\n components: {\r\n Editor,\r\n AttachmentsEditor,\r\n AttachmentsViewer\r\n },\r\n props: {\r\n comment: {\r\n type: Object,\r\n required: true\r\n },\r\n canReply: {\r\n type: Boolean,\r\n default: false\r\n },\r\n subComments: {\r\n type: Array,\r\n default: []\r\n },\r\n postId: {\r\n type: String\r\n },\r\n groupId: {\r\n type: String\r\n },\r\n isFrivilligContext: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n setup(props){\r\n const store = useStore()\r\n\r\n const editCommentContent = ref(props.comment.content)\r\n const editCommentFilesToAdd = ref([])\r\n const editCommentFilesToRemove = ref([])\r\n \r\n const subCommentContent = ref('')\r\n const subCommentFilesToAdd = ref([])\r\n\r\n const isAddingSubcomment = ref(false)\r\n const isEditingComment = ref(false)\r\n const addSubCommentRef = ref(null)\r\n const userInfoExpanded = ref(false)\r\n\r\n const isSubmitting = ref(false)\r\n const subCommentSubmitButtonDisabled = computed(() => subCommentContent.value.length === 0 || isSubmitting.value)\r\n\r\n const overlayContent = props.isFrivilligContext\r\n ? \"MemberOverlayProfileCard\"\r\n : \"MemberOverlay\" \r\n \r\n const handleEditComment = () => {\r\n isEditingComment.value = true\r\n }\r\n\r\n const handleCancelEditedComment = () => {\r\n isEditingComment.value = false\r\n }\r\n\r\n const handleSaveEditedComment = async () => {\r\n\r\n const formData = new FormData()\r\n\r\n if (editCommentContent.value) {\r\n formData.append('htmlComment', editCommentContent.value)\r\n }\r\n \r\n editCommentFilesToAdd.value.forEach(file => {\r\n formData.append('filesToAdd', file)\r\n })\r\n\r\n editCommentFilesToRemove.value.forEach(fileId => {\r\n formData.append('filesToRemove', fileId)\r\n })\r\n\r\n const response = await store.dispatch('forum/submitEditComment', {\r\n id: props.comment.id,\r\n body: formData\r\n })\r\n\r\n if (response.status === \"success\") {\r\n isEditingComment.value = false\r\n }\r\n }\r\n\r\n const handleDeleteComment = (e) => {\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: async () => {\r\n if(isSubmitting.value){ \r\n return;\r\n } \r\n isSubmitting.value = true\r\n var response = await store.dispatch('forum/submitDeleteComment', { id: props.comment.id }) \r\n if (response.success) {\r\n location.reload()\r\n } else {\r\n isSubmitting.value = false\r\n }\r\n }\r\n })\r\n\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"DeleteCommentOverlay\",\r\n returnTarget: e.currentTarget,\r\n });\r\n }\r\n\r\n const scrollToAddSubComment = () => {\r\n isAddingSubcomment.value = true\r\n setTimeout(() => {\r\n addSubCommentRef.value?.scrollIntoView({ behavior: \"smooth\", block: \"end\", inline: \"nearest\" })\r\n }, 100)\r\n }\r\n\r\n const submitNewSubComment = async () => {\r\n\r\n if (!subCommentContent.value) {\r\n return\r\n }\r\n \r\n isSubmitting.value = true\r\n \r\n let formData = new FormData()\r\n formData.append('postId', props.postId)\r\n formData.append('htmlComment', subCommentContent.value)\r\n\r\n subCommentFilesToAdd.value.forEach(file => {\r\n formData.append('file', file)\r\n })\r\n \r\n const response = await store.dispatch('forum/submitNewSubComment', {\r\n id: props.comment.id,\r\n body: formData\r\n })\r\n\r\n await store.dispatch()\r\n }\r\n\r\n const startUserInfoOverlay = (e) => {\r\n\r\n if (props?.comment?.authorId == undefined){\r\n return\r\n }\r\n\r\n store.commit('main/set_page_overlay_content_data', { \r\n userId: props?.comment?.authorId,\r\n isFrivilligContext: props.isFrivilligContext })\r\n\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: overlayContent,\r\n returnTarget: e.currentTarget,\r\n })\r\n }\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({labelCollection: 'PostCommments', labelKey})\r\n\r\n return {\r\n getLabel,\r\n handleEditComment,\r\n handleDeleteComment,\r\n submitNewSubComment,\r\n handleSaveEditedComment,\r\n handleCancelEditedComment,\r\n startUserInfoOverlay,\r\n scrollToAddSubComment,\r\n editCommentContent,\r\n editCommentFilesToAdd,\r\n editCommentFilesToRemove,\r\n subCommentContent,\r\n subCommentFilesToAdd,\r\n isAddingSubcomment,\r\n isEditingComment,\r\n addSubCommentRef,\r\n userInfoExpanded,\r\n subCommentSubmitButtonDisabled,\r\n isSubmitting\r\n }\r\n }\r\n}","import { render } from \"./PostComment.vue?vue&type=template&id=739db786\"\nimport script from \"./PostComment.vue?vue&type=script&lang=js\"\nexport * from \"./PostComment.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { useStore } from \"vuex\";\r\nimport { ref, computed, watch, onMounted, nextTick } from 'vue';\r\nimport PostComment from \"../PostComment/PostComment.vue\";\r\n\r\nexport default {\r\n name: \"PostComments\",\r\n components: {\r\n PostComment\r\n },\r\n props: {\r\n canReply: {\r\n type: Boolean,\r\n default: false\r\n },\r\n isFrivilligContext: {\r\n type: Boolean,\r\n default: false\r\n },\r\n postId: {\r\n type: String,\r\n required: true\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const commentId = ref()\r\n const comments = computed(() => store.state.forum.post_comments[props.postId])\r\n\r\n const scrollToComment = (id) => {\r\n const element = document.getElementById(id)\r\n if (element) {\r\n element.scrollIntoView({ behavior: 'smooth', alignToTop: true })\r\n }\r\n }\r\n\r\n watch(\r\n comments,\r\n async (newComments) => {\r\n if (newComments && commentId.value) {\r\n await nextTick()\r\n scrollToComment(commentId.value)\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n onMounted(() => {\r\n store.dispatch(\"forum/getPostComments\", {\r\n postId: props.postId,\r\n pageId: store.state.main.page_id\r\n })\r\n\r\n const params = new URLSearchParams(window.location.search);\r\n commentId.value = params.get('commentId');\r\n })\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({labelCollection: 'PostCommments', labelKey})\r\n\r\n return {\r\n comments,\r\n getLabel\r\n }\r\n }\r\n}","import { render } from \"./PostComments.vue?vue&type=template&id=1879972e\"\nimport script from \"./PostComments.vue?vue&type=script&lang=js\"\nexport * from \"./PostComments.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {createApp} from 'vue'\r\nimport PostComments from './PostComments'\r\n\r\nconst el = '.kb-component--post-comments'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((PostCommentsDOM)=>{\r\n const isFrivilligContext =\r\n PostCommentsDOM.hasAttribute('is-frivillig-context')\r\n const canReply =\r\n PostCommentsDOM.hasAttribute('can-reply')\r\n const props = {\r\n canReply,\r\n isFrivilligContext,\r\n postId: PostCommentsDOM.dataset.postId ?? '',\r\n groupId: PostCommentsDOM.dataset.groupId ?? ''\r\n }\r\n\r\n const component = createApp(PostComments, props).use(Store)\r\n component.mount(PostCommentsDOM)\r\n })\r\n }\r\n}","import {useStore} from 'vuex'\r\n\r\nexport default {\r\n name: \"PostHeader\",\r\n props: {\r\n postId: {\r\n type: String,\r\n required: true\r\n },\r\n authorId: {\r\n type: String,\r\n required: true\r\n },\r\n canEdit: {\r\n type: Boolean,\r\n default: false\r\n },\r\n isFrivilligContext: {\r\n type: Boolean,\r\n default: false\r\n },\r\n authorId: {\r\n type: String,\r\n required: true\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n }, \r\n setup(props){\r\n const store = useStore()\r\n const startUserInfoOverlay = function(e){\r\n if(!props.authorId){\r\n return\r\n }\r\n\r\n const overlayContent = props.isFrivilligContext\r\n ? 'MemberOverlayProfileCard'\r\n : 'MemberOverlay'\r\n \r\n store.commit('main/set_page_overlay_content_data', {\r\n userId: props.authorId,\r\n isFrivilligContext: props.isFrivilligContext\r\n })\r\n\r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: overlayContent,\r\n returnTarget: e.currentTarget,\r\n })\r\n }\r\n\r\n const startDeleteOverlay = function(e) {\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: () => {\r\n store.dispatch('forum/deletePost', {\r\n id: props.postId\r\n })\r\n }\r\n })\r\n\r\n store.dispatch('main/openPageOverlay',{\r\n overlayContent: 'DeletePostOverlay',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n const handleLike = async function(e){\r\n let like = true\r\n if (e.target.classList.contains(\"kb-post-header__contents-bottom-right-button--filled\")) { \r\n like = false\r\n }\r\n const response = await store.dispatch('forum/submitLikePost', { like: like, id: props.postId })\r\n\r\n if (response.status === 'success') {\r\n e.target.classList.toggle(\"kb-post-header__contents-bottom-right-button--filled\")\r\n }\r\n }\r\n\r\n const handleSave = async function(e){\r\n let save = true\r\n if (e.target.classList.contains(\"kb-post-header__contents-bottom-right-button--filled\")) { \r\n save = false\r\n }\r\n\r\n e.target.setAttribute('aria-pressed', save)\r\n\r\n const response = await store.dispatch('forum/submitSavePost', { save: save, id: props.postId })\r\n\r\n if (response.status === 'success') {\r\n e.target.classList.toggle(\"kb-post-header__contents-bottom-right-button--filled\")\r\n }\r\n }\r\n\r\n const scrollToElement = (id) => {\r\n const target = document.getElementById(id)\r\n target?.scrollIntoView({ behavior: \"smooth\", block: \"end\", inline: \"nearest\" })\r\n }\r\n\r\n return {\r\n startUserInfoOverlay,\r\n startDeleteOverlay,\r\n handleLike,\r\n handleSave,\r\n scrollToElement\r\n }\r\n }\r\n}","\r\n\r\n","import { ref, computed } from \"vue\"\r\nimport { useStore } from \"vuex\"\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\nimport AttachmentsEditor from \"../AttachmentsEditor/AttachmentsEditor.vue\";\r\n\r\nexport default {\r\n name: \"PostHeaderAddComment\",\r\n components: {\r\n AttachmentsEditor,\r\n Editor\r\n },\r\n props: {\r\n postId: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const newCommentContent = ref('')\r\n const newCommentFilesToAdd = ref([])\r\n const isSubmitting = ref(false)\r\n const isSubmitButtonDisabled = computed(() => newCommentContent.value.length === 0 || isSubmitting.value)\r\n\r\n const submitNewComment = async () => {\r\n\r\n if (newCommentContent.value === '') {\r\n return\r\n }\r\n\r\n isSubmitting.value = true\r\n\r\n let formData = new FormData()\r\n if (newCommentContent.value !== '') {\r\n formData.append('htmlComment', newCommentContent.value)\r\n }\r\n \r\n newCommentFilesToAdd.value.forEach(file => {\r\n formData.append('file', file)\r\n })\r\n\r\n formData.append('postId', props.postId)\r\n\r\n await store.dispatch('forum/submitNewComment', {\r\n id: props.postId,\r\n body: formData\r\n })\r\n \r\n window.location.reload()\r\n }\r\n\r\n const getLabel = (labelKey) => store.getters['labels/getLabel']({labelCollection: 'PostHeaderAddComment', labelKey})\r\n\r\n return {\r\n getLabel,\r\n submitNewComment,\r\n newCommentContent,\r\n newCommentFilesToAdd,\r\n isSubmitButtonDisabled\r\n }\r\n }\r\n}","import { render } from \"./PostHeaderAddComment.vue?vue&type=template&id=2e1246f7\"\nimport script from \"./PostHeaderAddComment.vue?vue&type=script&lang=js\"\nexport * from \"./PostHeaderAddComment.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { ref, onMounted, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport deepClone from '../../foundation/js/deepClone'\r\nimport getLabelFromStore from '../../foundation/js/getLabel'\r\nimport GroupPost from '../GroupPost/GroupPost'\r\n\r\nexport default {\r\n name: \"PostsList\", \r\n components: { \r\n GroupPost\r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n isClosedGroup: {\r\n type: Boolean,\r\n required: true\r\n },\r\n isLoggedIn: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n },\r\n loginUrl: {\r\n type: String,\r\n required: true\r\n },\r\n hasMemberAccess: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n },\r\n skip: {\r\n type: Number,\r\n required: true,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n required: false,\r\n default: 10\r\n },\r\n universId: {\r\n type: String,\r\n required: true\r\n },\r\n numberOfMembers: {\r\n type: Number,\r\n required: true,\r\n default: 0\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const numberOfItems = ref(0)\r\n\r\n const posts = computed(() => store.state.search.results[props.guid] ?? [])\r\n\r\n const totalAmount = computed(() => {\r\n return store.state.search.scoped_total[props.guid] ?? 0\r\n })\r\n \r\n const showSpinner = computed(()=> store.state.search.search_inprogress[props.guid] )\r\n\r\n onMounted(() => {\r\n initFetchPosts()\r\n })\r\n\r\n const getLabel = (key, strings) => {\r\n let label = getLabelFromStore({\r\n labelKey: key,\r\n labelCollection: 'PostsList'\r\n })\r\n\r\n if (strings) {\r\n strings.forEach((str, index) => {\r\n label = label.replace(`{${index}}`, str)\r\n })\r\n }\r\n\r\n return label\r\n }\r\n\r\n const initFetchPosts = function() {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: process.env.GET_POSTS_LIST + \"?id=\" + props.groupId + '&universId=' + props.universId\r\n })\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: '',\r\n skip: props.skip,\r\n take: props.take\r\n })\r\n }\r\n\r\n const handlePostClick = (e, post) => {\r\n if (!props.isLoggedIn) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: \"LoginOverlay\",\r\n returnTarget: e.currentTarget\r\n })\r\n return\r\n }\r\n\r\n if (!props.isClosedGroup) {\r\n window.location.href = post.url\r\n return\r\n }\r\n\r\n if (!props.hasMemberAccess) {\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: \"ClosedGroupOverlay\",\r\n returnTarget: e.currentTarget\r\n })\r\n\r\n return\r\n }\r\n\r\n window.location.href = post.url\r\n }\r\n \r\n\r\n const getMorePosts = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n const openMemberOverlay = (e) => {\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"MemberListOverlay\",\r\n returnTarget: e.currentTarget,\r\n })\r\n }\r\n\r\n return {\r\n openMemberOverlay,\r\n showSpinner,\r\n getLabel,\r\n numberOfItems,\r\n posts,\r\n totalAmount,\r\n getMorePosts,\r\n handlePostClick,\r\n }\r\n }\r\n}","import { render } from \"./PostsList.vue?vue&type=template&id=52152e18\"\nimport script from \"./PostsList.vue?vue&type=script&lang=js\"\nexport * from \"./PostsList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref, computed } from 'vue'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\n\r\nexport default {\r\n name: 'PreFooter',\r\n setup() {\r\n const emailInput = ref()\r\n const consentCheckbox = ref(false)\r\n\r\n const isValidEmail = computed(\r\n emailValidator.bind(null, emailInput.value)\r\n )\r\n\r\n const readyToSubmit = computed(() => {\r\n return consentCheckbox.value && isValidEmail\r\n })\r\n\r\n const sendInfomationToServer = function () {\r\n if (readyToSubmit.value) {\r\n console.log(\r\n 'Send information via XHR to server:',\r\n emailInput.value\r\n )\r\n }\r\n }\r\n\r\n return {\r\n consentCheckbox,\r\n emailInput,\r\n isValidEmail,\r\n sendInfomationToServer\r\n }\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './PreFooter.options'\r\n\r\nconst el = '.kb-component--pre-footer'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelector(el)\r\n if (DOM) {\r\n if (DOM.hasAttribute('data-v-app')) return false\r\n const template = DOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(el)\r\n }\r\n}\r\n","\r\n\r\n","import { computed } from 'vue'\r\n\r\nexport default {\r\n name: 'ProductCard',\r\n props: {\r\n data: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup() {\r\n return {}\r\n }\r\n}\r\n","import { render } from \"./ProductCard.vue?vue&type=template&id=cf93394c\"\nimport script from \"./ProductCard.vue?vue&type=script&lang=js\"\nexport * from \"./ProductCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import BuySection from 'components/BuySection/BuySection.vue'\r\n\r\nexport default {\r\n name: \"ProductDetail\",\r\n components: {BuySection},\r\n props: {\r\n isSoldOut: {\r\n type: Boolean,\r\n required: true\r\n }\r\n },\r\n\r\n setup(props) {\r\n\r\n return {\r\n isSoldOut: props.isSoldOut\r\n }\r\n }\r\n}","\r\n\r\n\r\n","import { useStore } from 'vuex'\r\nimport { computed, onMounted, ref } from 'vue'\r\nimport SortDropdown from '../SortDropdown/SortDropdown.vue'\r\nimport SpotCardGrid from '../SpotCardGrid/SpotCardGrid.vue'\r\nimport ProductCard from 'components/ProductCard/ProductCard.vue'\r\nimport MaterialCard from 'components/MaterialCard/MaterialCard.vue'\r\nimport NoSearchResults from 'components/NoSearchResults/NoSearchResults.vue'\r\n\r\nconst urlMap = {\r\n products: 'PRODUCT_LIST_SEARCH',\r\n productsSearch: 'PRODUCT_SEARCH',\r\n materials: 'PRODUCT_LIST_SEARCH',\r\n materialsSearch: 'PRODUCT_SEARCH'\r\n}\r\n\r\nconst frivilligUrlMap = {\r\n products: 'FRIVILLIG_PRODUCT_LIST_SEARCH',\r\n productsSearch: 'FRIVILLIG_PRODUCT_SEARCH',\r\n materials: 'FRIVILLIG_PRODUCT_LIST_SEARCH',\r\n materialsSearch: 'FRIVILLIG_PRODUCT_SEARCH'\r\n}\r\n\r\nconst getUrl = function (type, webshopContext) {\r\n if (webshopContext === 'frivilligwebshop'){\r\n return frivilligUrlMap[type] ?? 'FRIVILLIG_PRODUCT_SEARCH'\r\n }\r\n\r\n return urlMap[type] ?? 'PRODUCT_SEARCH'\r\n}\r\n\r\nconst webshopSearch = function (props, store) {\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.firstPageSize,\r\n showMorePageSize: props.showMorePageSize,\r\n url: process.env[getUrl(props.type, props.webshopContext)]\r\n })\r\n\r\n const inputText = new URLSearchParams(document.location.search).get('q')\r\n const skip = new URLSearchParams(document.location.search).get('skip')\r\n const take =\r\n new URLSearchParams(document.location.search).get('take') ?? props.take\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: inputText,\r\n skip,\r\n take\r\n })\r\n}\r\n\r\nexport default {\r\n name: 'ProductList',\r\n components: {\r\n SortDropdown,\r\n SpotCardGrid,\r\n ProductCard,\r\n MaterialCard,\r\n NoSearchResults\r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n type: {\r\n type: String,\r\n required: false,\r\n default: 'products'\r\n },\r\n firstPageSize: {\r\n type: Number,\r\n required: false\r\n },\r\n showMorePageSize: {\r\n type: Number,\r\n required: false\r\n },\r\n spotCardData: {\r\n type: Object,\r\n required: false\r\n },\r\n avoidSetQueryInUrl: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n hideNoResults: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n webshopContext: {\r\n type: String,\r\n required: false,\r\n default: 'webshop'\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const results = computed(\r\n () => store.state.search.results[props.guid] ?? []\r\n )\r\n const totalCount = computed(\r\n () => store.state.search.scoped_total[props.guid] ?? 0\r\n )\r\n const showSpinner = computed(\r\n () => store.state.search.search_inprogress[props.guid]\r\n )\r\n\r\n const determineLabelCollection = function () {\r\n return (\r\n {\r\n materialsSearch: 'webshopSearchMaterials',\r\n productsSearch: 'webshopSearchProducts',\r\n products: 'productList',\r\n materials: 'productList'\r\n }[props.type] ??\r\n console.error(\r\n 'search boolean or type missing in order to determine labelCollection'\r\n )\r\n )\r\n }\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: determineLabelCollection(),\r\n labelKey: labelKey\r\n })\r\n\r\n const getMoreResults = function () {\r\n store.dispatch('search/performMoreSearch', {\r\n guid: props.guid\r\n })\r\n }\r\n\r\n onMounted(() => {\r\n if (props.avoidSetQueryInUrl) {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n }\r\n webshopSearch(props, store)\r\n })\r\n\r\n const sortingHandler = function (sorting) {\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n sorting\r\n })\r\n }\r\n\r\n const canShowMore = computed(() =>\r\n store.getters['search/canShowMore'](props.guid)\r\n )\r\n\r\n const displayProperties = {\r\n products: { card: 'ProductCard', gridType: '3col' },\r\n productsSearch: { card: 'ProductCard', gridType: '3col' },\r\n materials: { card: 'MaterialCard', gridType: '4col' },\r\n materialsSearch: { card: 'MaterialCard', gridType: '4col' }\r\n }[props.type] ?? { card: 'ProductCard' }\r\n\r\n const displayModifications = computed(() => {\r\n const grid = 'kb-product-list__results--grid'\r\n const gridModifications = displayProperties.gridType\r\n ? displayProperties.gridType\r\n ? grid + '-' + displayProperties.gridType\r\n : ''\r\n : null\r\n\r\n return gridModifications ? gridModifications : ''\r\n })\r\n\r\n // result count\r\n const resultCount = computed(() => {\r\n if (displayProperties.gridType === 'products') {\r\n let totalCount = 0\r\n\r\n for (const key in results.value) {\r\n if (results.value.hasOwnProperty(key)) {\r\n const array = results.value[key].entries\r\n totalCount += array.length\r\n }\r\n }\r\n\r\n return totalCount\r\n }\r\n\r\n return results.value.length\r\n })\r\n\r\n const totalCountLabel = computed(() =>\r\n getLabel('resultCountTitle').replace('{}', totalCount.value)\r\n )\r\n\r\n // spot card\r\n const spotCard = SpotCardGrid\r\n const spotCardIndex = computed(() =>\r\n Math.min(props.spotCardData.position - 1, totalCount.value)\r\n )\r\n\r\n // Flatten the results in case the results are grouped in categories.\r\n // This was we can make sure to place the spot card in the correct position\r\n const flatResults = computed(() => {\r\n if (displayProperties.gridType === 'products') {\r\n return Object.values(results.value).flatMap(\r\n (category) => category.entries\r\n )\r\n }\r\n\r\n return results.value\r\n })\r\n\r\n const shouldRenderSpotCard = function (result, isLastRender) {\r\n if (!props.spotCardData) return false\r\n\r\n const realIndex = flatResults.value.findIndex((r) => r === result)\r\n\r\n if (!isLastRender) {\r\n return realIndex === spotCardIndex.value\r\n }\r\n\r\n return (\r\n realIndex === resultCount.value - 1 &&\r\n spotCardIndex.value >= resultCount.value\r\n )\r\n }\r\n\r\n return {\r\n displayProperties,\r\n results,\r\n resultCount,\r\n totalCountLabel,\r\n getLabel,\r\n getMoreResults,\r\n showSpinner,\r\n totalCount,\r\n canShowMore,\r\n sortingHandler,\r\n displayModifications,\r\n spotCard,\r\n spotCardIndex,\r\n shouldRenderSpotCard\r\n }\r\n }\r\n}\r\n","import { render } from \"./ProductList.vue?vue&type=template&id=12f6390e\"\nimport script from \"./ProductList.vue?vue&type=script&lang=js\"\nexport * from \"./ProductList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ProductList from './ProductList'\r\n\r\nconst el = '.kb-component--product-list'\r\nconst DOMs = document.querySelectorAll(el)\r\n\r\nexport default function (Store) {\r\n if (DOMs && DOMs.length) {\r\n DOMs.forEach((DOM) => {\r\n const guid = DOM.dataset.guid\r\n const type = DOM.dataset.type\r\n const firstPageSize = parseInt(DOM.dataset.firstPageSize) ?? 20\r\n const showMorePageSize =\r\n parseInt(DOM.dataset.showMorePageSize) ?? 20\r\n const spotCardData = DOM.dataset.spotCard\r\n ? JSON.parse(DOM.dataset.spotCard)\r\n : null\r\n const avoidSetQueryInUrl = DOM.hasAttribute(\r\n 'avoid-set-query-in-url'\r\n )\r\n const hideNoResults = DOM.hasAttribute('hide-no-results')\r\n const webshopContext = DOM.dataset.webshopContext\r\n\r\n const props = {\r\n guid,\r\n type,\r\n firstPageSize,\r\n showMorePageSize,\r\n spotCardData,\r\n avoidSetQueryInUrl,\r\n hideNoResults,\r\n webshopContext\r\n }\r\n const component = createApp(ProductList, props).use(Store)\r\n\r\n const mountOn = DOM.id ? `#${DOM.id}` : el\r\n component.mount(mountOn)\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n","import Glide from '@glidejs/glide'\r\nimport config from './config/config'\r\nimport { useStore } from 'vuex'\r\nimport { onMounted, ref } from 'vue'\r\nimport ProductCard from 'components/ProductCard/ProductCard'\r\nimport MaterialCard from 'components/MaterialCard/MaterialCard'\r\nimport SpotCardGrid from 'components/SpotCardGrid/SpotCardGrid'\r\n\r\nconst unifyCardHeight = function (root) {\r\n root.value.querySelectorAll('.glide__slide').forEach((slide) => {\r\n slide.style.height = `auto`\r\n })\r\n}\r\n\r\nexport default {\r\n name: 'ProductsCardsSlider',\r\n components: { ProductCard, MaterialCard, SpotCardGrid },\r\n props: {\r\n glideBehaviour: {\r\n type: String,\r\n required: false,\r\n default: 'slider'\r\n },\r\n results: {\r\n type: Array,\r\n required: true\r\n },\r\n spotCardData: {\r\n type: Object,\r\n required: false\r\n },\r\n spotCardIndex: {\r\n type: Number,\r\n required: false\r\n },\r\n type: {\r\n type: String,\r\n required: false,\r\n default: 'products'\r\n },\r\n link: {\r\n type: Object,\r\n required: false\r\n },\r\n sliderId: {\r\n type: String,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n const root = ref(null)\r\n const componentRootEl = ref(null)\r\n const store = useStore()\r\n const glidePosition = ref(0)\r\n\r\n const displayProperties = {\r\n products: { card: 'ProductCard' },\r\n materials: { card: 'MaterialCard' }\r\n }[props.type] ?? { card: 'ProductCard' }\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: `productsCardsSlider-${props.sliderId}`,\r\n labelKey\r\n })\r\n\r\n const configFunction = function () {\r\n const glideBehaviour = props.glideBehaviour\r\n const viewportSize = document.documentElement.clientWidth\r\n return config({ glideBehaviour, viewportSize, startAt: glidePosition.value })\r\n }\r\n\r\n const truncateSummary = function (summary) {\r\n return summary.length > 120\r\n ? summary.substring(0, 117) + '...'\r\n : summary\r\n }\r\n\r\n const shouldRenderSpotCard = function (index) {\r\n // minus one to place correctly\r\n return props.spotCardIndex - 1 === index\r\n }\r\n\r\n onMounted(() => {\r\n unifyCardHeight(root)\r\n let sliderDOM = document.querySelector(`#${props.sliderId}`)\r\n\r\n if (!sliderDOM) return\r\n\r\n let glide = new Glide(`#${props.sliderId}`, configFunction())\r\n\r\n glide.on('resize', function () {\r\n glide.update(configFunction())\r\n })\r\n\r\n glide.on('move', function (e) {\r\n glidePosition.value = glide.index\r\n })\r\n\r\n glide.mount()\r\n\r\n document\r\n .querySelector('.glide')\r\n .addEventListener('keydown', function (event) {\r\n // When tab key is pressed\r\n if (event.keyCode == 9) {\r\n var card = event.target?.parentNode\r\n if (card == null) return\r\n\r\n // Go to the next or previous card depending on whether it was a shift-tab\r\n var nextCard = event.shiftKey\r\n ? card.previousSibling\r\n : card.nextSibling\r\n var nextIndex =\r\n nextCard?.attributes['data-index']?.value\r\n if (nextIndex) glide.go('=' + nextIndex)\r\n }\r\n })\r\n })\r\n\r\n return {\r\n displayProperties,\r\n componentRootEl,\r\n getLabel,\r\n root,\r\n link: props.link,\r\n truncateSummary,\r\n shouldRenderSpotCard\r\n }\r\n }\r\n}\r\n","export default function ({ glideBehaviour, viewportSize, perView, startAt }) {\r\n let glideConfig = {\r\n type: glideBehaviour,\r\n startAt: startAt ?? 0,\r\n perView: perView ?? 3.55,\r\n gap: 32,\r\n peek: {\r\n after: 275,\r\n before: 0\r\n }\r\n }\r\n\r\n if (glideBehaviour === 'slider') {\r\n glideConfig.rewind = false\r\n glideConfig.bound = true\r\n }\r\n\r\n if (viewportSize < 400) {\r\n return Object.assign(glideConfig, {\r\n perView: 1.15,\r\n gap: 14,\r\n peek: {\r\n after: 50,\r\n before: 0\r\n }\r\n })\r\n } else if (viewportSize < 500) {\r\n return Object.assign(glideConfig, {\r\n perView: 1.45,\r\n gap: 16,\r\n peek: {\r\n after: 50,\r\n before: 0\r\n }\r\n })\r\n } else if (viewportSize < 700) {\r\n return Object.assign(glideConfig, {\r\n perView: 2.1,\r\n gap: 20,\r\n peek: {\r\n after: 75,\r\n before: 0\r\n }\r\n })\r\n } else if (viewportSize < 800) {\r\n return Object.assign(glideConfig, {\r\n perView: 2.9,\r\n gap: 22,\r\n peek: {\r\n after: 70,\r\n before: 0\r\n }\r\n })\r\n } else if (viewportSize < 1000) {\r\n return Object.assign(glideConfig, {\r\n perView: 3.2,\r\n gap: 32,\r\n peek: {\r\n after: 70,\r\n before: 0\r\n }\r\n })\r\n } else if (viewportSize < 1200) {\r\n return Object.assign(glideConfig, {\r\n perView: 3.8,\r\n gap: 32,\r\n peek: {\r\n after: 160,\r\n before: 0\r\n }\r\n })\r\n } else {\r\n return glideConfig\r\n }\r\n}\r\n","import { render } from \"./ProductsCardsSlider.vue?vue&type=template&id=f72585aa\"\nimport script from \"./ProductsCardsSlider.vue?vue&type=script&lang=js\"\nexport * from \"./ProductsCardsSlider.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export default {\r\n name: \"ProjectCard\",\r\n props: {\r\n result: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(){\r\n \r\n }\r\n}","import { render } from \"./ProjectCard.vue?vue&type=template&id=14964614\"\nimport script from \"./ProjectCard.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n \r\n \r\n\r\n","\r\n\r\n\r\n","import { computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'SearchFilteredTags',\r\n props: {\r\n guids: {\r\n type: Array,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const selectedTags = computed(\r\n () => store.getters['search/selectedTags'](props.guids[0]) ?? []\r\n )\r\n const queryString = computed(\r\n () => store.state.search.queries[props.guids[0]]\r\n )\r\n\r\n const clearFilterOnTag = function (tag) {\r\n props.guids.forEach((guid) => {\r\n store.dispatch('search/performSearch', {\r\n guid,\r\n query: queryString.value,\r\n facet: tag\r\n })\r\n })\r\n }\r\n\r\n return {\r\n selectedTags,\r\n clearFilterOnTag\r\n }\r\n }\r\n}\r\n","import { render } from \"./SearchFilteredTags.vue?vue&type=template&id=89a33104\"\nimport script from \"./SearchFilteredTags.vue?vue&type=script&lang=js\"\nexport * from \"./SearchFilteredTags.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed, onMounted, ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport deepClone from '../../foundation/js/deepClone'\r\nimport SearchFilteredTags from '../SearchFilteredTags/SearchFilteredTags.vue'\r\nimport SpotCardGrid from '../SpotCardGrid/SpotCardGrid.vue'\r\nimport ProjectCard from '../ProjectCard/ProjectCard.vue'\r\n\r\nexport default {\r\n name: \"ProjectsList\",\r\n components: {\r\n ProjectCard,\r\n SearchFilteredTags,\r\n SpotCardGrid\r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n firstPageSize: {\r\n type: Number,\r\n required: false\r\n },\r\n showMorePageSize: {\r\n type: Number,\r\n required: false\r\n },\r\n hideNoResults: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n hideTotalCount: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n spotCardData: {\r\n type: Object,\r\n required: false\r\n },\r\n },\r\n setup(props){\r\n\r\n const store = useStore()\r\n\r\n onMounted(() => {\r\n initFetchProjects()\r\n })\r\n\r\n const totalCount = computed(() => {\r\n return store.state.search.scoped_total[props.guid]\r\n })\r\n\r\n const results = computed(() => {\r\n return deepClone(store.state.search.results[props.guid] ?? [])\r\n })\r\n\r\n const tags = computed(() => {\r\n return store.getters['search/selectedTags'](props.guid) ?? []\r\n })\r\n\r\n const canShowMore = computed(()=>store.getters['search/canShowMore'](props.guid))\r\n\r\n const showSpinner = computed(\r\n () => store.state.search.search_inprogress[props.guid]\r\n )\r\n \r\n const resultCount = computed(() => {\r\n return results.value.length\r\n })\r\n\r\n\r\n const initFetchProjects = function () {\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.firstPageSize,\r\n showMorePageSize: props.showMorePageSize,\r\n url: process.env.PROJECTS_SEARCH\r\n })\r\n\r\n const inputText = new URLSearchParams(document.location.search).get('q')\r\n const skip = new URLSearchParams(document.location.search).get('skip')\r\n const take = new URLSearchParams(document.location.search).get('take') ?? props.firstPageSize\r\n\r\n store.dispatch('search/performZeroSearch', {\r\n guid: props.guid\r\n })\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: inputText,\r\n skip,\r\n take\r\n })\r\n\r\n }\r\n\r\n const getMoreResults = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n return {\r\n results,\r\n tags,\r\n totalCount,\r\n showSpinner,\r\n resultCount,\r\n canShowMore,\r\n getMoreResults,\r\n getLabel: (labelKey, params) => store.getters['labels/getLabel']({labelCollection: 'ProjectsList', labelKey, params}),\r\n }\r\n }\r\n}","import { render } from \"./ProjectsList.vue?vue&type=template&id=19e97013\"\nimport script from \"./ProjectsList.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectsList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n {{ getLabel(\"deliveryTitle\") }}\r\n {{ receiptResults.deliveryAddress }}\r\n {{ receiptResults.deliveryType }}\r\n \r\n \r\n \r\n {{ receiptResults.deliveryPrice }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ getLabel(\"totalTitle\") }}\r\n \r\n \r\n {{ receiptResults.total }}\r\n \r\n \r\n\r\n \r\n \r\n {{ getLabel(\"VATTitle\") }}\r\n \r\n \r\n {{ receiptResults.VAT }}\r\n \r\n \r\n\r\n \r\n \r\n {{ getLabel(\"discountTitle\") }}\r\n \r\n \r\n {{ receiptResults.discount }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ getLabel(\"printButtonText\") }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n

    \r\n {{ getLabel(\"sellerAddressTitle\") }}\r\n

    \r\n

    \r\n {{ getLabel(\"sellerAddressName\") }}\r\n

    \r\n

    \r\n {{ getLabel(\"sellerAddressStreet\") }}\r\n

    \r\n

    \r\n {{ getLabel(\"sellerAddressCity\") }}\r\n

    \r\n
    \r\n \r\n\r\n","import { useStore } from 'vuex'\r\nimport { ref, onMounted } from 'vue'\r\n\r\nexport default {\r\n name: 'ReceiptContent',\r\n props: {\r\n receiptResults: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup() {\r\n const store = useStore()\r\n\r\n const getLabel = (labelKey) =>\r\n store.getters['labels/getLabel']({\r\n labelCollection: 'receiptContent',\r\n labelKey: labelKey,\r\n allowEmpty: true\r\n })\r\n\r\n const src = ref('ReceiptPage.html')\r\n\r\n onMounted(() => {\r\n sessionStorage.removeItem('checkoutState')\r\n })\r\n\r\n return {\r\n getLabel,\r\n print: () => window.print()\r\n }\r\n }\r\n}\r\n","import { render } from \"./ReceiptContent.vue?vue&type=template&id=151f2488\"\nimport script from \"./ReceiptContent.vue?vue&type=script&lang=js\"\nexport * from \"./ReceiptContent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onMounted } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport deepClone from '../../foundation/js/deepClone'\r\nimport getLabelFromStore from '../../foundation/js/getLabel'\r\nimport SearchFilteredTags from '../SearchFilteredTags/SearchFilteredTags.vue'\r\n\r\nexport default {\r\n name: 'RelayList',\r\n components: {\r\n SearchFilteredTags\r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n skip: {\r\n type: Number,\r\n required: true,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n required: true,\r\n default: 10\r\n },\r\n hideNoResults: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n onMounted(() => {\r\n initFetchRelays()\r\n })\r\n\r\n const totalAmount = computed(() => {\r\n return store.state.search.scoped_total[props.guid]\r\n })\r\n\r\n const relays = computed(() => {\r\n return deepClone(store.state.search.results[props.guid] ?? [])\r\n })\r\n\r\n const tags = computed(() => {\r\n return store.getters['search/selectedTags'](props.guid) ?? []\r\n })\r\n\r\n const showSpinner = computed(\r\n () => store.state.search.search_inprogress[props.guid]\r\n )\r\n\r\n const resultCount = computed(() => {\r\n return relays.value.length\r\n })\r\n\r\n const getLabel = (key, strings) => {\r\n let label = getLabelFromStore({\r\n labelKey: key,\r\n labelCollection: 'relayList'\r\n })\r\n\r\n if (strings) {\r\n strings.forEach((str, index) => {\r\n label = label.replace(`{${index}}`, str)\r\n })\r\n }\r\n\r\n return label\r\n }\r\n\r\n const initFetchRelays = function () {\r\n store.commit('search/set_replaceQueryInUrl', false)\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: process.env.GET_RELAY_LIST\r\n })\r\n\r\n\r\n store.dispatch('search/performZeroSearch', {\r\n guid: props.guid\r\n })\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: '',\r\n skip: props.skip,\r\n take: props.take\r\n })\r\n }\r\n\r\n const getMoreResults = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n const getRelayDescription = (relay) => {\r\n const dateFromTo = getDateFromTo(relay)\r\n return `${getLabel('relayDateText')} ${dateFromTo}, kl. ${relay.activeTimeslot}`\r\n }\r\n\r\n const getDateFromTo = ({ startDate, endDate }) => {\r\n\r\n const timestampStart = new Date(startDate)\r\n const timestampEnd = new Date(endDate)\r\n\r\n const dateStart = timestampStart.getDate()\r\n const dateEnd = timestampEnd.getDate()\r\n\r\n const monthStart = timestampStart.toLocaleDateString('da-DK', { month: 'long' })\r\n const monthEnd = timestampEnd.toLocaleDateString('da-DK', { month: 'long' })\r\n\r\n if (dateStart === dateEnd) {\r\n return `d. ${dateStart}. ${monthStart}`\r\n }\r\n else if (monthStart === monthEnd) {\r\n return `d. ${dateStart}. - ${dateEnd}. ${monthStart}`\r\n }\r\n else {\r\n return `d. ${dateStart}. ${monthStart} - ${dateEnd}. ${monthEnd}`\r\n }\r\n }\r\n\r\n return {\r\n tags,\r\n relays,\r\n showSpinner,\r\n resultCount,\r\n totalAmount,\r\n getLabel,\r\n getMoreResults,\r\n getRelayDescription\r\n }\r\n }\r\n}\r\n","import { render } from \"./RelayList.vue?vue&type=template&id=04c75b74\"\nimport script from \"./RelayList.vue?vue&type=script&lang=js\"\nexport * from \"./RelayList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\nimport { ref, computed, onBeforeMount, watch } from 'vue'\r\nimport { useStore } from 'vuex'\r\n\r\nimport nonEmptyStringValidator from \"foundation/js/inputValidators/nonEmptyStringValidator\";\r\n\r\nimport FormInputTextField from 'components/FormInputTextField/FormInputTextField.vue' \r\nimport FormCheckbox from 'components/FormCheckbox/FormCheckbox.vue' \r\nimport FormInputDropdown from 'components/FormInputDropdown/FormInputDropdown.vue' \r\n\r\nexport default {\r\n name: 'RequestRole',\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n FormInputDropdown\r\n },\r\n setup() {\r\n const store = useStore()\r\n\r\n const activities = computed(()=> store.state.frivilligprofil.aktivitet_list)\r\n const roles = computed(()=> store.state.frivilligprofil.rolle_list)\r\n const groups = computed(()=> store.state.frivilligprofil.gruppe_list)\r\n\r\n onBeforeMount(() => {\r\n store.dispatch('frivilligprofil/fetchAktiviteter')\r\n })\r\n\r\n let displayError = ref(false)\r\n\r\n const roleActivityId = ref('')\r\n const roleId = ref('')\r\n const roleGroupId = ref('')\r\n const roleGroupCheckbox = ref(false)\r\n const roleGroupTextField = ref('')\r\n const activitySelectOptions = computed(() => activities.value.map(a => {\r\n return {\r\n name: a.name,\r\n value: a.id\r\n }\r\n }))\r\n const groupSelectOptions = computed(() => groups.value.map(g => {\r\n return {\r\n name: g.name,\r\n value: g.kode\r\n }\r\n }))\r\n const roleSelectOptions = computed(() => roles.value.map(a => {\r\n return {\r\n name: a.name,\r\n value: a.id\r\n }\r\n }))\r\n\r\n const handleActivitiesSelector = function (e){\r\n roleActivityId.value = ''\r\n\r\n setTimeout(()=>{\r\n roleActivityId.value = e.target.value\r\n displayError.value = false;\r\n },25)\r\n\r\n // reset of later inputs\r\n roleId.value = ''\r\n roleGroupId.value = ''\r\n roleGroupCheckbox.value = false\r\n roleGroupTextField.value = ''\r\n }\r\n\r\n const handleRoleSelector = function (e){\r\n roleId.value = e.target.value\r\n displayError.value = false;\r\n\r\n // reset of Group selector\r\n roleGroupId.value = ''\r\n }\r\n\r\n const handleGroupSelector = function (e){\r\n roleGroupId.value = e.target.value\r\n\r\n displayError.value = false;\r\n\r\n roleGroupTextField.value = ''\r\n }\r\n\r\n const handleGroupCheckbox = function (e){\r\n roleGroupCheckbox.value = e.target.checked\r\n displayError.value = false;\r\n\r\n roleGroupId.value = ''\r\n\r\n }\r\n\r\n const handleGroupTextField = function (e){\r\n roleGroupTextField.value = e.target.value\r\n\r\n roleGroupId.value = ''\r\n \r\n if(nonEmptyStringValidator(e.target.value)) {\r\n displayError.value = false \r\n }\r\n }\r\n\r\n const determinedRoleGroup = function (){\r\n if(roleGroupId) {\r\n return roleGroupId\r\n } else if(roleGroupCheckbox.value && roleGroupTextField.value) {\r\n return nonEmptyStringValidator(roleGroupTextField.value) ? roleGroupTextField.value : false\r\n }\r\n }\r\n\r\n const roleGroupTextFieldFilled = ref(nonEmptyStringValidator(roleGroupTextField.value))\r\n\r\n const isValid = function () {\r\n return roleActivityId \r\n && roleId \r\n && determinedRoleGroup() \r\n }\r\n\r\n const handleSubmitRoleRequest = function (){\r\n\r\n displayError.value = true;\r\n \r\n if (!isValid())\r\n return false\r\n\r\n displayError.value = false;\r\n\r\n const body = {\r\n aktivitetsId: roleActivityId.value,\r\n rolleId: roleId.value,\r\n gruppekode: roleGroupId.value,\r\n gruppeText: roleGroupTextField.value\r\n }\r\n\r\n store.dispatch('frivilligprofil/submitRoleRequest', {\r\n body: body\r\n })\r\n }\r\n\r\n watch(\r\n roleActivityId,\r\n (newValue, _) => {\r\n store.dispatch(\"frivilligprofil/fetchRoller\", newValue)\r\n store.dispatch(\"frivilligprofil/fetchGrupper\", newValue)\r\n }\r\n )\r\n\r\n return {\r\n activities,\r\n roles,\r\n groups,\r\n roleActivityId,\r\n roleId,\r\n roleGroupId,\r\n roleGroupCheckbox,\r\n roleGroupTextField,\r\n displayError,\r\n roleGroupTextFieldFilled,\r\n activitySelectOptions,\r\n roleSelectOptions,\r\n groupSelectOptions,\r\n handleActivitiesSelector,\r\n handleRoleSelector,\r\n handleGroupSelector,\r\n handleGroupCheckbox,\r\n handleGroupTextField,\r\n handleSubmitRoleRequest,\r\n getLabel: (labelKey) =>\r\n store.getters[\"labels/getLabel\"]({\r\n labelCollection: \"requestRole\",\r\n labelKey,\r\n }),\r\n }\r\n }\r\n}\r\n","import { render } from \"./RequestRole.vue?vue&type=template&id=732883cd\"\nimport script from \"./RequestRole.vue?vue&type=script&lang=js\"\nexport * from \"./RequestRole.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import RequestRole from 'components/RequestRole/RequestRole.vue' \r\nimport ActiveRolesList from 'components/ActiveRolesList/ActiveRolesList.vue' \r\n\r\nexport default {\r\n name: \"RolesFormContent\",\r\n components: {\r\n RequestRole,\r\n ActiveRolesList\r\n },\r\n setup(){\r\n \r\n }\r\n}","import { render } from \"./RolesFormContent.vue?vue&type=template&id=32d7fd5e\"\nimport script from \"./RolesFormContent.vue?vue&type=script&lang=js\"\nexport * from \"./RolesFormContent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { useStore } from 'vuex'\r\nimport { computed } from 'vue'\r\nimport debounce from 'foundation/js/debounce'\r\n\r\nexport default {\r\n name: 'SearchAndCTA',\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const inputText = computed({\r\n get: () => store.state.search.queries[props.guid] ?? '',\r\n set: (v) =>\r\n store.dispatch('search/setSearchQuery', {\r\n guid: props.guid,\r\n query: v\r\n })\r\n })\r\n\r\n const termInput = debounce(() => {\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n query: inputText.value\r\n })\r\n }, 500)\r\n\r\n const createFundraise = function (e) {\r\n const currentUrl = location.href\r\n localStorage.setItem('flowheader__returnurl', currentUrl)\r\n location.href = e.target.href\r\n }\r\n\r\n const openPageOverlay = function(overlayType, e) {\r\n const overlayComponent = {\r\n 'Login': 'loginOverlay',\r\n 'CreateHold': 'opretHoldOverlay'\r\n }[overlayType]\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: overlayComponent,\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n return {\r\n openPageOverlay,\r\n createFundraise,\r\n inputText,\r\n termInput\r\n }\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SearchOverlay from './SearchOverlay'\r\n\r\nconst el = '.kb-component--search-overlay'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function (Store) {\r\n if (DOM) {\r\n Store.commit(\r\n 'search/set_search_page_redirecturl',\r\n DOM.dataset.searchpageurl\r\n )\r\n }\r\n}\r\n","export default function (identifier) {\r\n return JSON.parse(sessionStorage.getItem(identifier))\r\n}\r\n","import getItemFromStorage from './getItemFromStorage'\r\n\r\nexport default function (identifier, items) {\r\n const existingItems = getItemFromStorage(identifier)\r\n if (!existingItems) {\r\n setItemToStorage(identifier, items)\r\n } else {\r\n const nonMatchingKeysObject = getListWithNonMatchingValues(\r\n existingItems,\r\n items\r\n )\r\n\r\n const updatedItems = [...nonMatchingKeysObject, ...items]\r\n setItemToStorage(identifier, updatedItems)\r\n }\r\n}\r\n\r\nconst setItemToStorage = (identifier, object) => {\r\n sessionStorage.setItem(identifier, JSON.stringify(object))\r\n}\r\n\r\nconst getListWithNonMatchingValues = (existingList, newList) => {\r\n const nonMatchingValuesList = []\r\n\r\n existingList.map((item) => {\r\n const match = newList.find((newItem) => newItem.name === item.name)\r\n if (!match) {\r\n nonMatchingValuesList.push(item)\r\n }\r\n })\r\n return nonMatchingValuesList\r\n}\r\n","import clearItemFromStorage from 'foundation/js/sessionStorageWrapper/clearItemFromStorage'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport { ref, onMounted, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'SessionStorageFormularTest',\r\n setup() {\r\n const formularName = ref('testFormular')\r\n const firstName = ref(null)\r\n const lastName = ref(null)\r\n const email = ref(null)\r\n const phone = ref(null)\r\n const fighter = ref(null)\r\n const isFighter = ref(false)\r\n\r\n const teams = computed(() => {\r\n return store.state.forms.forms\r\n })\r\n\r\n const store = useStore()\r\n\r\n onMounted(() => {\r\n const formular = getItemFromStorage(formularName.value)\r\n if (formular) {\r\n addToVuex()\r\n firstName.value = formular.firstName\r\n lastName.value = formular.lastName\r\n email.value = formular.email\r\n phone.value = formular.phone\r\n fighter.value = formular.fighter\r\n }\r\n })\r\n\r\n const addToVuex = () => {\r\n store.dispatch('forms/setForm', {\r\n name: formularName.value,\r\n data: getItemFromStorage(formularName.value)\r\n })\r\n }\r\n\r\n const handleFighterCheck = (e) => {\r\n isFighter.value = e.target.checked\r\n }\r\n\r\n const submitFormular = () => {\r\n updateItemFromStorage(formularName.value, {\r\n firstName: firstName.value,\r\n lastName: lastName.value,\r\n email: email.value,\r\n phone: phone.value\r\n })\r\n addToVuex()\r\n }\r\n\r\n const submitFormular2 = () => {\r\n updateItemFromStorage(formularName.value, {\r\n fighter: isFighter.value\r\n })\r\n addToVuex()\r\n }\r\n\r\n const clearFormular = () => {\r\n clearItemFromStorage(formularName.value)\r\n }\r\n\r\n return {\r\n formularName,\r\n firstName,\r\n lastName,\r\n email,\r\n phone,\r\n fighter,\r\n teams,\r\n handleFighterCheck,\r\n submitFormular,\r\n submitFormular2,\r\n clearFormular\r\n }\r\n }\r\n}\r\n","export default function (identifier) {\r\n sessionStorage.removeItem(identifier)\r\n}\r\n","import { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'SignUpButton',\r\n props: {\r\n eventId: {\r\n type: String,\r\n required: true\r\n },\r\n successButtonData: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const startSignUp = function (e) {\r\n if (!props.eventId) return false\r\n\r\n store.commit('events/set_signUpEventId', props.eventId)\r\n store.commit('main/set_page_overlay_content_data', {\r\n successButtonData: props.successButtonData\r\n })\r\n\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'SignUpForm',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n return {\r\n startSignUp\r\n }\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SpotCardGrid from './SpotCardGrid'\r\n\r\nconst el = '.kb-component--spot-card-grid'\r\nconst DOMs = document.querySelectorAll(el)\r\n\r\nexport default function (Store) {\r\n if (DOMs && DOMs.length) {\r\n DOMs.forEach((SpotCardGridDOM) => {\r\n const spotCardData = SpotCardGridDOM.dataset.spotCard\r\n ? JSON.parse(SpotCardGridDOM.dataset.spotCard)\r\n : null\r\n const component = createApp(SpotCardGrid, { spotCardData }).use(\r\n Store\r\n )\r\n component.mount(SpotCardGridDOM)\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\n","export default {\r\n name: 'StafetActions',\r\n props: {\r\n nextStepCallback: {\r\n type: Function,\r\n required: false\r\n },\r\n previousStepCallback: {\r\n type: Function,\r\n required: false\r\n },\r\n nextStepLabel: {\r\n type: String,\r\n required: false,\r\n default: 'Videre'\r\n },\r\n previousStepLabel: {\r\n type: String,\r\n required: false,\r\n default: 'Tilbage'\r\n },\r\n skipStepCallback: {\r\n type: Function,\r\n required: false\r\n },\r\n skipStepLabel: {\r\n type: String,\r\n required: false,\r\n default: 'Spring over'\r\n }\r\n },\r\n setup() {}\r\n}\r\n","import { render } from \"./StafetActions.vue?vue&type=template&id=3909cc04\"\nimport script from \"./StafetActions.vue?vue&type=script&lang=js\"\nexport * from \"./StafetActions.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onBeforeMount, onUpdated, ref } from 'vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\n\r\nexport default {\r\n name: 'StafetAddDeltager',\r\n components: {\r\n FormInputDropdown,\r\n FormInputTextField\r\n },\r\n props: {\r\n labels: {\r\n type: Object,\r\n required: true\r\n },\r\n displayInputError: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n onChangeCallback: {\r\n type: Function,\r\n required: true\r\n },\r\n data: {\r\n type: Object,\r\n required: false\r\n },\r\n excludeMail: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const numberOfAdults = ref(0)\r\n const numberOfChildren = ref(0)\r\n const adults = ref([])\r\n const children = ref([])\r\n const callbackData = ref({})\r\n\r\n const totalNumberOfParticipants = computed(() => {\r\n return numberOfAdults.value + numberOfChildren.value\r\n })\r\n\r\n onBeforeMount(() => {\r\n if (props.data) {\r\n numberOfAdults.value = props.data.children.length\r\n numberOfChildren.value = props.data.adults.length\r\n adults.value = props.data.adults\r\n children.value = props.data.children\r\n validateParticipants()\r\n handleCallbackData()\r\n }\r\n })\r\n\r\n const updateAdults = (value) => {\r\n if (adults.value.length > value) {\r\n adults.value = adults.value.slice(0, value)\r\n } else if (value === 0) {\r\n adults.value = []\r\n } else {\r\n const diff = value - adults.value.length\r\n for (let i = 0; i < diff; i++) {\r\n adults.value.push({\r\n name: '',\r\n email: '',\r\n isValid: false\r\n })\r\n }\r\n }\r\n }\r\n\r\n const updateChildren = (value) => {\r\n if (children.value.length > value) {\r\n children.value = children.value.slice(0, value)\r\n } else if (value === 0) {\r\n children.value = []\r\n } else {\r\n const diff = value - children.value.length\r\n for (let i = 0; i < diff; i++) {\r\n children.value.push({\r\n name: '',\r\n email: '',\r\n isValid: false\r\n })\r\n }\r\n }\r\n }\r\n\r\n const setNumberOfAdults = (value) => {\r\n const intValue = parseInt(value)\r\n numberOfAdults.value = intValue ? (intValue > 0 ? intValue : 0) : 0\r\n\r\n updateAdults(intValue)\r\n }\r\n\r\n const setNumberOfChildren = (value) => {\r\n const intValue = parseInt(value)\r\n numberOfChildren.value = intValue\r\n ? intValue > 0\r\n ? intValue\r\n : 0\r\n : 0\r\n\r\n updateChildren(intValue)\r\n }\r\n\r\n const validateParticipants = () => {\r\n let isNumberOfParticipantsValid =\r\n numberOfAdults.value + numberOfChildren.value > 0\r\n let isAdultsValid = true\r\n let isChildrenValid = true\r\n\r\n if (adults.value.length > 0) {\r\n fieldsValiditiy(adults.value)\r\n isAdultsValid = adults.value.every((adult) => adult.isValid)\r\n }\r\n\r\n if (children.value.length > 0) {\r\n fieldsValiditiy(children.value)\r\n isChildrenValid = children.value.every((child) => child.isValid)\r\n }\r\n\r\n callbackData.value.adults = adults.value\r\n callbackData.value.children = children.value\r\n callbackData.value.isValid =\r\n isNumberOfParticipantsValid && isAdultsValid && isChildrenValid\r\n }\r\n\r\n const fieldsValiditiy = (fields) => {\r\n fields.forEach((field) => {\r\n if (props.excludeMail) {\r\n field.isValid = nonEmptyStringValidator(field.name)\r\n } else {\r\n field.isValid =\r\n nonEmptyStringValidator(field.name) &&\r\n emailValidator(field.email)\r\n }\r\n })\r\n }\r\n\r\n const handleCallbackData = () => {\r\n if (props.onChangeCallback) {\r\n props.onChangeCallback(callbackData.value)\r\n }\r\n }\r\n\r\n onUpdated(() => {\r\n validateParticipants()\r\n handleCallbackData()\r\n })\r\n\r\n return {\r\n numberOfAdults,\r\n numberOfChildren,\r\n totalNumberOfParticipants,\r\n adults,\r\n children,\r\n setNumberOfAdults,\r\n setNumberOfChildren,\r\n nonEmptyStringValidator,\r\n emailValidator\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetAddDeltager.vue?vue&type=template&id=7b6e1a5f\"\nimport script from \"./StafetAddDeltager.vue?vue&type=script&lang=js\"\nexport * from \"./StafetAddDeltager.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","export default {\r\n name: 'StafetHeader',\r\n props: {\r\n steps: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n title: {\r\n type: String,\r\n required: true,\r\n default: ''\r\n },\r\n description: {\r\n type: String,\r\n required: true,\r\n default: ''\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetHeader.vue?vue&type=template&id=3b9d43db\"\nimport script from \"./StafetHeader.vue?vue&type=script&lang=js\"\nexport * from \"./StafetHeader.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export default {\r\n name: 'StafetPayment',\r\n props: {\r\n basket: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n title: {\r\n type: String,\r\n required: true,\r\n default: ''\r\n },\r\n inTotalLabel: {\r\n type: String,\r\n required: true,\r\n default: ''\r\n },\r\n inTotalPrice: {\r\n type: String,\r\n required: true,\r\n default: 0\r\n }\r\n },\r\n setup() {}\r\n}\r\n","import { render } from \"./StafetPayment.vue?vue&type=template&id=88dd4160\"\nimport script from \"./StafetPayment.vue?vue&type=script&lang=js\"\nexport * from \"./StafetPayment.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport StafetAddDeltager from '../StafetAddDeltager/StafetAddDeltager.vue'\r\nimport StafetPayment from '../StafetPayment/StafetPayment.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport { ref, computed } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport updateBasket from './methods/updateBasket'\r\n\r\nexport default {\r\n name: 'StafetAddMoreDeltagerFlow',\r\n components: {\r\n StafetHeader,\r\n StafetAddDeltager,\r\n StafetPayment,\r\n StafetActions\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n holdkode: {\r\n type: String,\r\n required: false\r\n },\r\n userData: {\r\n type: Object,\r\n required: false\r\n },\r\n adultPrice: {\r\n type: Number,\r\n required: true\r\n },\r\n childPrice: {\r\n type: Number,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n const participants = ref({ adults: [], children: [] })\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLAddDeltagereLabels']\r\n })\r\n\r\n const basket = computed(() => {\r\n return store.state.stafet.basket\r\n })\r\n\r\n const basketTotalPrice = computed(() => {\r\n return store.state.stafet.basketTotalPrice\r\n })\r\n\r\n\r\n const updateAddParticipants = (data) => {\r\n participants.value = data\r\n updateBasket(\r\n participants.value,\r\n labels.value,\r\n store,\r\n props.adultPrice,\r\n props.childPrice\r\n )\r\n updateVuexStore()\r\n }\r\n\r\n const updateVuexStore = () => {\r\n const deltagere = {\r\n name: 'deltagere',\r\n isValid: participants.value.isValid,\r\n value: participants.value.adults\r\n }\r\n const childDeltagere = {\r\n name: 'childDeltagere',\r\n isValid: participants.value.isValid,\r\n value: participants.value.children\r\n }\r\n store.dispatch('stafet/userInputs', {\r\n inputs: [deltagere, childDeltagere]\r\n })\r\n }\r\n\r\n \r\n\r\n const goToPayment = () => {\r\n if (participants.value && participants.value.isValid === true) {\r\n displayInputError.value = false\r\n store.dispatch('stafet/addDeltagereSubmit', {\r\n stafetId: props.stafetId,\r\n teamId: props.holdkode,\r\n userData: props.userData\r\n })\r\n } else {\r\n displayInputError.value = true\r\n scrollToFirstError()\r\n }\r\n }\r\n\r\n return {\r\n displayInputError,\r\n labels,\r\n participants,\r\n basket,\r\n basketTotalPrice,\r\n updateAddParticipants,\r\n goToPayment\r\n }\r\n }\r\n}\r\n","export default function (userInputs, labels, store, adultPrice, childPrice) {\r\n const deltagere = userInputs.adults\r\n const childDeltagere = userInputs.children\r\n\r\n const basket = []\r\n\r\n basket.push({\r\n label: labels.yourInformationTotalNewAdultDeltagereLabel,\r\n amount: `${deltagere.length} ${labels.yourInformationTotalDeltagereLabel} (á ${adultPrice} kr.)`,\r\n price: `${deltagere.length * adultPrice} kr.`,\r\n intPrice: deltagere.length * adultPrice\r\n })\r\n\r\n basket.push({\r\n label: labels.yourInformationTotalNewChildDeltagereLabel,\r\n amount: `${childDeltagere.length} ${labels.yourInformationTotalDeltagereLabel} (á ${childPrice} kr.)`,\r\n price: `${childDeltagere.length * childPrice} kr.`,\r\n intPrice: childDeltagere.length * childPrice\r\n })\r\n\r\n store.dispatch('stafet/basket', { basket: basket })\r\n}\r\n","import { render } from \"./StafetAddMoreDeltagerFlow.vue?vue&type=template&id=13ea806c\"\nimport script from \"./StafetAddMoreDeltagerFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetAddMoreDeltagerFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\n\r\nexport default [\r\n {\r\n name: 'teamName',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'isFighter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n dependentField: 'isFighter',\r\n dependentFieldValue: false,\r\n dependentFieldValidator: (value) => value === false,\r\n name: 'shirtSize',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'isFighterFreeLunch',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'isChild',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n }\r\n]\r\n","/**\r\n *\r\n * @param {object} field - object, field name, value, a validator function and a isValid boolean\r\n * @returns\r\n */\r\n\r\nexport default function (field) {\r\n if (!field.validator) {\r\n return (field.isValid = true)\r\n }\r\n\r\n if (\r\n field.dependentField &&\r\n field.dependentFieldValidator(field.dependentFieldValue)\r\n ) {\r\n return (field.isValid = true)\r\n } else if (field.dependentField && field.dependentFieldValue) {\r\n return (field.isValid = field.validator(field.value))\r\n }\r\n\r\n return (field.isValid = field.validator(field.value))\r\n}\r\n","export default Object.freeze({\r\n STAFET_JOIN_A_TEAM: 'stafetJoinATeamUserInputs',\r\n STAFET_DONATION: 'stafetDonationUserInputs',\r\n STAFET_JOIN_AS_FIGHTER: 'stafetJoinAsFighterUserInputs',\r\n STAFET_CREATE_A_TEAM: 'stafetCreateATeamUserInputs',\r\n ADD_DELTAGERE: 'addDeltagereUserInputs'\r\n})\r\n","import { computed, onBeforeMount, ref } from 'vue'\r\nimport _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport { useStore } from 'vuex'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDeltagPaaHoldStepOne',\r\n components: {\r\n FormInputDropdown,\r\n FormCheckbox,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const teamName = ref('')\r\n const isFighter = ref(false)\r\n const shirtSize = ref('')\r\n const isFighterFreeLunch = ref(false)\r\n const isChild = ref(false)\r\n\r\n const tshirtSizes = computed(() => {\r\n const array = []\r\n props.tshirtSizes.forEach((size) => {\r\n array.push({\r\n name: size.displayName,\r\n value: size.value\r\n })\r\n })\r\n return array\r\n })\r\n\r\n const teams = computed(() => {\r\n const array = []\r\n if (props.holdList) {\r\n props.holdList.forEach((hold) =>\r\n array.push({ name: hold.name, value: hold.holdKode })\r\n )\r\n }\r\n\r\n return array\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_A_TEAM\r\n )\r\n\r\n if (storedFields) {\r\n updateLocalRefs([\r\n {\r\n name: 'teamName',\r\n value: getFieldValue(storedFields, 'teamName')\r\n },\r\n {\r\n name: 'isFighter',\r\n value: getFieldValue(storedFields, 'isFighter')\r\n },\r\n {\r\n name: 'shirtSize',\r\n value: getFieldValue(storedFields, 'shirtSize')\r\n },\r\n {\r\n name: 'isFighterFreeLunch',\r\n value: getFieldValue(storedFields, 'isFighterFreeLunch')\r\n },\r\n {\r\n name: 'isChild',\r\n value: getFieldValue(storedFields, 'isChild')\r\n }\r\n ])\r\n }\r\n\r\n if (props.holdId) {\r\n teamName.value = props.holdId\r\n fieldsConfig.find((field) => field.name === \"teamName\").value = props.holdId\r\n }\r\n\r\n store.dispatch('donation/teams', { stafetId: props.stafetId })\r\n })\r\n\r\n const updateLocalRefs = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.value === undefined || field.value === null) return\r\n fieldsConfig.find((item) => item.name === field.name).value =\r\n field.value\r\n switch (field.name) {\r\n case 'teamName':\r\n teamName.value = field.value\r\n return\r\n case 'isFighter':\r\n isFighter.value = field.value\r\n return\r\n case 'shirtSize':\r\n shirtSize.value = field.value\r\n return\r\n case 'isFighterFreeLunch':\r\n isFighterFreeLunch.value = field.value\r\n return\r\n case 'isChild':\r\n isChild.value = field.value\r\n return\r\n default:\r\n return\r\n }\r\n })\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n updateLocalRefs([{ name: fieldName, value: value }]) // update local refs and keep in sync with fieldsConfig\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n if (field.dependentField) {\r\n const dependentField = fieldsConfig.find(\r\n (item) => item.name === field.dependentField\r\n )\r\n\r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value\r\n }\r\n }\r\n\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n const handleErrorMessage = (fieldName) => {\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n return !field?.isValid && props.displayInputError\r\n }\r\n\r\n return {\r\n teamName,\r\n isFighter,\r\n shirtSize,\r\n tshirtSizes,\r\n isFighterFreeLunch,\r\n isChild,\r\n teams,\r\n stepModel,\r\n validateField,\r\n handleErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagPaaHoldStepOne.vue?vue&type=template&id=4c4c0e6e\"\nimport script from \"./StafetDeltagPaaHoldStepOne.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagPaaHoldStepOne.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","export default Object.freeze({\r\n NONE: 'none',\r\n TEAM: 'team',\r\n STAFET: 'stafet',\r\n DELTAGER: 'participant',\r\n})\r\n","import { computed, onMounted, onUpdated } from 'vue'\r\nimport supportTypeEnum from './supportTypeEnum'\r\nimport { useStore } from 'vuex'\r\nimport donationTypeValidator from './validators/donationTypeValidator'\r\nimport teamValidator from './validators/teamValidator'\r\nimport deltagerValidator from './validators/deltagerValidator'\r\n\r\nexport default {\r\n name: 'SupportSelector',\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n labels: {\r\n type: Object,\r\n required: true\r\n },\r\n displayInputError: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n onChangeCallback: {\r\n type: Function,\r\n required: true\r\n },\r\n holdList: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n\r\n const donationFor = computed(() => {\r\n return store.state.donation.donationFor\r\n })\r\n\r\n const donationTeam = computed(() => {\r\n return store.state.donation.donationTeam\r\n })\r\n\r\n const donationParticipant = computed(() => {\r\n return store.state.donation.donationParticipant\r\n })\r\n\r\n const teams = computed(() => {\r\n const result = []\r\n if (props.holdList.length > 0) {\r\n props.holdList.forEach((hold) =>\r\n result.push({\r\n name: hold.name,\r\n value: hold.holdKode,\r\n selected: hold.holdKode === donationTeam.value\r\n })\r\n )\r\n } else {\r\n const teams = store.state.donation.teams\r\n teams.map((team) => {\r\n result.push({\r\n name: team.name,\r\n value: team.id,\r\n selected: team.id === donationTeam.value\r\n })\r\n })\r\n }\r\n return result\r\n })\r\n\r\n const participants = computed(() => {\r\n const result = []\r\n const participants = store.state.donation.participants\r\n participants.map((participant) => {\r\n result.push({\r\n selected: participant.id === donationParticipant.value,\r\n name: `${participant.firstName} ${participant.lastName ?? ''}`,\r\n value: participant.id\r\n })\r\n })\r\n return result\r\n })\r\n\r\n const isTeamSelected = computed(() => {\r\n const isTeam = donationFor.value === supportTypeEnum.TEAM\r\n\r\n if (isTeam) {\r\n store.dispatch('donation/participants')\r\n }\r\n\r\n return isTeam\r\n })\r\n\r\n const isDeltagerSelected = computed(() => {\r\n const isDeltager = donationFor.value === supportTypeEnum.DELTAGER\r\n\r\n if (isDeltager) {\r\n store.dispatch('donation/participants')\r\n }\r\n return isDeltager\r\n })\r\n\r\n const isSupportTypeValid = computed(() => {\r\n return donationTypeValidator()\r\n })\r\n\r\n const isTeamValid = computed(() => {\r\n let isTeamValid = donationTeam.value !== ''\r\n store.dispatch('donation/participants', {\r\n teamId: isTeamValid ? donationTeam.value : undefined\r\n })\r\n\r\n return teamValidator()\r\n })\r\n\r\n const isDeltagerValid = computed(() => {\r\n return deltagerValidator()\r\n })\r\n\r\n const supportTypeHandler = (e) => {\r\n store.dispatch('donation/donationFor', {\r\n donationFor: e.target.value\r\n })\r\n }\r\n\r\n const teamHandler = (e) => {\r\n store.dispatch('donation/participants')\r\n store.dispatch('donation/donationParticipant', {\r\n participant: ''\r\n })\r\n store.dispatch('donation/donationTeam', { team: e.target.value })\r\n }\r\n\r\n const participantHandler = (e) => {\r\n store.dispatch('donation/donationParticipant', {\r\n participant: e.target.value\r\n })\r\n }\r\n\r\n const supportSelectorConfig = computed(() => [\r\n {\r\n id: 'support-selector',\r\n label: props.labels.yourSupportSelectorDropdownLabel,\r\n shown: true,\r\n required: true,\r\n isValid: isSupportTypeValid.value,\r\n errorMessage:\r\n props.labels.yourSupportSelectorDropdownErrorMessage,\r\n handler: supportTypeHandler,\r\n defaultOption: {\r\n name: props.labels.yourSupportSelectorDropdownPlaceholder,\r\n value: supportTypeEnum.NONE\r\n },\r\n options: [\r\n {\r\n name: props.labels\r\n .yourSupportSelectorDropdownOptionStafet,\r\n value: supportTypeEnum.STAFET,\r\n selected: supportTypeEnum.STAFET === donationFor.value\r\n },\r\n {\r\n name: props.labels\r\n .yourSupportSelectorDropdownOptionHold,\r\n value: supportTypeEnum.TEAM,\r\n selected: supportTypeEnum.TEAM === donationFor.value\r\n },\r\n {\r\n name: props.labels\r\n .yourSupportSelectorDropdownOptionDeltager,\r\n value: supportTypeEnum.DELTAGER,\r\n selected: supportTypeEnum.DELTAGER === donationFor.value\r\n }\r\n ]\r\n },\r\n {\r\n id: 'team-selector',\r\n label: props.labels.yourSupportSelectorDropdownHoldLabel,\r\n shown: isTeamSelected.value || isDeltagerSelected.value,\r\n required: true,\r\n isValid: isTeamValid.value,\r\n errorMessage:\r\n props.labels.yourSupportSelectorDropdownHoldErrorMessage,\r\n handler: teamHandler,\r\n defaultOption: {\r\n name: props.labels\r\n .yourSupportSelectorDropdownHoldPlaceholder,\r\n value: ''\r\n },\r\n options: teams.value\r\n },\r\n {\r\n id: 'participant-selector',\r\n label: props.labels.yourSupportSelectorDropdownDeltagerLabel,\r\n shown: isDeltagerSelected.value,\r\n required: true,\r\n showErrorMessage: false,\r\n isValid: isDeltagerValid.value,\r\n errorMessage:\r\n props.labels\r\n .yourSupportSelectorDropdownDeltagerErrorMessage,\r\n handler: participantHandler,\r\n defaultOption: {\r\n name: props.labels\r\n .yourSupportSelectorDropdownDeltagerPlaceholder,\r\n value: ''\r\n },\r\n options: participants.value\r\n }\r\n ])\r\n\r\n const handleChangeCallback = () => {\r\n if (props.onChangeCallback) {\r\n props.onChangeCallback({\r\n donationFor: donationFor.value,\r\n donationTeam: donationTeam.value,\r\n donationParticipant: donationParticipant.value,\r\n isValid: isSupportTypeValid.value && isTeamValid.value\r\n })\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n handleChangeCallback()\r\n })\r\n\r\n onUpdated(() => {\r\n handleChangeCallback()\r\n })\r\n\r\n return {\r\n supportSelectorConfig,\r\n donationFor,\r\n donationTeam,\r\n donationParticipant\r\n }\r\n }\r\n}\r\n","import { useStore } from 'vuex'\r\nimport supportTypeEnum from '../supportTypeEnum'\r\n\r\nexport default function () {\r\n const store = useStore()\r\n const donationFor = store.state.donation.donationFor\r\n return donationFor !== supportTypeEnum.NONE\r\n}\r\n","import { useStore } from 'vuex'\r\nimport supportTypeEnum from '../supportTypeEnum'\r\n\r\nexport default function () {\r\n const store = useStore()\r\n const donationFor = store.state.donation.donationFor\r\n const donationTeam = store.state.donation.donationTeam\r\n\r\n return donationFor === supportTypeEnum.STAFET || donationTeam !== ''\r\n}\r\n","import { useStore } from 'vuex'\r\nimport supportTypeEnum from '../supportTypeEnum'\r\n\r\nexport default function () {\r\n const store = useStore()\r\n const donationFor = store.state.donation.donationFor\r\n const donationTeam = store.state.donation.donationTeam\r\n const donationParticipant = store.state.donation.donationParticipant\r\n\r\n return (\r\n donationFor !== supportTypeEnum.DELTAGER ||\r\n (donationTeam !== '' && donationParticipant !== '')\r\n )\r\n}\r\n","import { render } from \"./SupportSelector.vue?vue&type=template&id=ece2dba6\"\nimport script from \"./SupportSelector.vue?vue&type=script&lang=js\"\nexport * from \"./SupportSelector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { onBeforeMount, onUpdated, ref, watch } from 'vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputTextarea from '../FormInputTextarea/FormInputTextarea.vue'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\n\r\nexport default {\r\n name: 'StafetFlowLightBagsMetaList',\r\n components: {\r\n FormCheckbox,\r\n FormInputDropdown,\r\n FormInputTextField,\r\n FormInputTextarea\r\n },\r\n props: {\r\n labels: {\r\n type: Object,\r\n required: true\r\n },\r\n numberOfDonations: {\r\n type: Number,\r\n required: true\r\n },\r\n onChangeCallback: {\r\n type: Function,\r\n required: true\r\n },\r\n displayInputError: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n data: {\r\n type: Object,\r\n required: false\r\n },\r\n isLysposerDedicated: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n addPersonalNote: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const isLysposerDedicated = ref(props.isLysposerDedicated)\r\n const addPersonalNote = ref(props.addPersonalNote)\r\n\r\n const dedicatedTypeAll = ref('')\r\n const lysposeDedicatedToAll = ref('')\r\n const lightPersonalNoteAll = ref('')\r\n\r\n const donationAmountList = ref([])\r\n\r\n // static options\r\n const dedicationTypeOptions = [\r\n {\r\n name: props.labels.inMemoryOf,\r\n value: 'TilMindeFor'\r\n },\r\n {\r\n name: props.labels.inSupportOf,\r\n value: 'TilStoetteFor'\r\n }\r\n ]\r\n\r\n watch(\r\n () => props.numberOfDonations,\r\n (newValue, oldValue) => {\r\n if (newValue < oldValue) {\r\n donationAmountList.value = donationAmountList.value.slice(\r\n 0,\r\n newValue\r\n )\r\n } else {\r\n const diff = newValue - oldValue\r\n for (let i = 0; i < diff; i++) {\r\n donationAmountList.value.push({\r\n lysposeDedicatedTo: '',\r\n personalNote: '',\r\n lysposeDedicatedType: ''\r\n })\r\n }\r\n }\r\n }\r\n )\r\n\r\n onBeforeMount(() => {\r\n if (props.isLysposerDedicated) {\r\n dedicatedTypeAll.value = props.data[0].lysposeDedicatedType\r\n lysposeDedicatedToAll.value = props.data[0].lysposeDedicatedTo\r\n lightPersonalNoteAll.value = props.data[0].personalNote\r\n }\r\n\r\n if (props.data?.length > 0) {\r\n donationAmountList.value = props.data\r\n } else {\r\n for (let i = 0; i < props.numberOfDonations; i++) {\r\n donationAmountList.value.push({\r\n lysposeDedicatedTo: '',\r\n personalNote: '',\r\n lysposeDedicatedType: ''\r\n })\r\n }\r\n }\r\n\r\n if (donationAmountList.value.length < props.numberOfDonations) {\r\n const diff =\r\n props.numberOfDonations - donationAmountList.value.length\r\n for (let i = 0; i < diff; i++) {\r\n donationAmountList.value.push({\r\n lysposeDedicatedTo: '',\r\n personalNote: '',\r\n lysposeDedicatedType: ''\r\n })\r\n }\r\n } else {\r\n donationAmountList.value = donationAmountList.value.slice(\r\n 0,\r\n props.numberOfDonations\r\n )\r\n }\r\n\r\n handleCallbackData()\r\n })\r\n\r\n onUpdated(() => {\r\n handleCallbackData()\r\n })\r\n\r\n const validateDonationItems = () => {\r\n\r\n const dedicatedTypeValid = isLysposerDedicated.value\r\n ? nonEmptyStringValidator(dedicatedTypeAll.value)\r\n : donationAmountList.value.every((item) => nonEmptyStringValidator(item.lysposeDedicatedType))\r\n\r\n const lightDedicatedToValid = isLysposerDedicated.value\r\n ? nonEmptyStringValidator(lysposeDedicatedToAll.value)\r\n : donationAmountList.value.every((item) => nonEmptyStringValidator(item.lysposeDedicatedTo))\r\n\r\n return dedicatedTypeValid && lightDedicatedToValid\r\n }\r\n\r\n const handleCallbackData = () => {\r\n if (props.onChangeCallback) {\r\n props.onChangeCallback({\r\n isLysposerDedicated: isLysposerDedicated.value,\r\n addPersonalNote: addPersonalNote.value,\r\n donationItems: donationAmountList.value,\r\n isValid: validateDonationItems()\r\n })\r\n }\r\n }\r\n\r\n const toggleAddPersonalNote = (value) => {\r\n addPersonalNote.value = value\r\n }\r\n\r\n const toggleDedicatedLightBag = (value) => {\r\n isLysposerDedicated.value = value\r\n\r\n if (value) {\r\n dedicatedTypeAll.value = donationAmountList.value[0].lysposeDedicatedType\r\n lysposeDedicatedToAll.value = donationAmountList.value[0].lysposeDedicatedTo\r\n lightPersonalNoteAll.value = donationAmountList.value[0].personalNote\r\n }\r\n \r\n donationAmountList.value.forEach((item) => {\r\n item.lysposeDedicatedType = dedicatedTypeAll.value\r\n item.lysposeDedicatedTo = lysposeDedicatedToAll.value\r\n item.personalNote = lightPersonalNoteAll.value\r\n })\r\n }\r\n\r\n const updateLightDedicatedTo = (index, value) => {\r\n donationAmountList.value[index].lysposeDedicatedTo = value\r\n handleCallbackData()\r\n }\r\n\r\n const updatePersonalNote = (index, value) => {\r\n donationAmountList.value[index].personalNote = value\r\n handleCallbackData()\r\n }\r\n\r\n const updateDedicationType = (index, value) => {\r\n donationAmountList.value[index].lysposeDedicatedType = value\r\n handleCallbackData()\r\n }\r\n\r\n const setDedicationTypeAll = (value) => {\r\n donationAmountList.value.forEach((item) => {\r\n item.lysposeDedicatedType = value\r\n })\r\n dedicatedTypeAll.value = value\r\n handleCallbackData()\r\n }\r\n\r\n const setLightDedicatedToAll = (value) => {\r\n donationAmountList.value.forEach((item) => {\r\n item.lysposeDedicatedTo = value\r\n })\r\n lysposeDedicatedToAll.value = value\r\n handleCallbackData()\r\n }\r\n\r\n const setPersonalNoteAll = (value) => {\r\n donationAmountList.value.forEach((item) => {\r\n item.personalNote = value\r\n })\r\n lightPersonalNoteAll.value = value\r\n handleCallbackData()\r\n }\r\n\r\n return {\r\n isLysposerDedicated,\r\n addPersonalNote,\r\n donationAmountList,\r\n dedicationTypeOptions,\r\n dedicatedTypeAll,\r\n lysposeDedicatedToAll,\r\n lightPersonalNoteAll,\r\n setDedicationTypeAll,\r\n setLightDedicatedToAll,\r\n setPersonalNoteAll,\r\n toggleAddPersonalNote,\r\n toggleDedicatedLightBag,\r\n updateLightDedicatedTo,\r\n updatePersonalNote,\r\n updateDedicationType\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetLysPoserList.vue?vue&type=template&id=82e5cabe\"\nimport script from \"./StafetLysPoserList.vue?vue&type=script&lang=js\"\nexport * from \"./StafetLysPoserList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputTextarea from '../FormInputTextarea/FormInputTextarea.vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport AdvancedRadio from '../AdvancedRadio/AdvancedRadio.vue'\r\nimport SupportSelector from '../SupportSelector/SupportSelector.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport StafetLysPoserList from '../StafetLysPoserList/StafetLysPoserList.vue'\r\nimport { computed, onBeforeMount, ref } from 'vue'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport { useStore } from 'vuex'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\n\r\nexport default {\r\n name: 'StafetDeltagPaaHoldStepTwo',\r\n components: {\r\n FormInputTextField,\r\n FormInputTextarea,\r\n FormInputDropdown,\r\n FormCheckbox,\r\n SupportSelector,\r\n StafetActions,\r\n StafetLysPoserList,\r\n AdvancedRadio\r\n },\r\n props: {\r\n lysposeQuantityOption1: {\r\n type: Number,\r\n required: true,\r\n },\r\n lysposeQuantityOption2: {\r\n type: Number,\r\n required: true,\r\n },\r\n lysposeQuantityOption3: {\r\n type: Number,\r\n required: true,\r\n },\r\n ..._stafetCommonStepsProps\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const isCustomAmount = ref(false)\r\n const donationAmount = ref(0)\r\n const donationPerLightBag = ref(props.lysposeMinimumAmount)\r\n const isLysposerDedicated = ref(false)\r\n const addPersonalNote = ref(false)\r\n const donationAmountList = ref([])\r\n const lightBagMeta = ref({})\r\n const supportSelector = ref({})\r\n\r\n const editorControlledDonationAmountList = ref([\r\n {\r\n label: `${props.lysposeQuantityOption1} ${props.labels.taendEtLysUnitLabel}`,\r\n value: props.lysposeQuantityOption1\r\n },\r\n {\r\n label: `${props.lysposeQuantityOption2} ${props.labels.taendEtLysUnitLabel}`,\r\n value: props.lysposeQuantityOption2\r\n },\r\n {\r\n label: `${props.lysposeQuantityOption3} ${props.labels.taendEtLysUnitLabel}`,\r\n value: props.lysposeQuantityOption3\r\n }\r\n ])\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_A_TEAM\r\n )\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'donationAmount')) {\r\n donationAmount.value = getFieldValue(\r\n storedFields,\r\n 'donationAmount'\r\n )\r\n const lysposeQuantityOptions = [\r\n props.lysposeQuantityOption1,\r\n props.lysposeQuantityOption2,\r\n props.lysposeQuantityOption3\r\n ]\r\n if (!lysposeQuantityOptions.includes(donationAmount.value)) {\r\n isCustomAmount.value = true\r\n }\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationPerLightBag')) {\r\n donationPerLightBag.value = getFieldValue(\r\n storedFields,\r\n 'donationPerLightBag'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'isLysposerDedicated')) {\r\n isLysposerDedicated.value = getFieldValue(\r\n storedFields,\r\n 'isLysposerDedicated'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationItems')) {\r\n donationAmountList.value = getFieldValue(\r\n storedFields,\r\n 'donationItems'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'addPersonalNote')) {\r\n addPersonalNote.value = getFieldValue(\r\n storedFields,\r\n 'addPersonalNote'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationFor')) {\r\n store.dispatch('donation/donationFor', {\r\n donationFor: getFieldValue(storedFields, 'donationFor')\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationTeam')) {\r\n store.dispatch('donation/donationTeam', {\r\n team: getFieldValue(\r\n storedFields,\r\n 'donationTeam'\r\n ).toString()\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationParticipant')) {\r\n store.dispatch('donation/donationParticipant', {\r\n participant: getFieldValue(\r\n storedFields,\r\n 'donationParticipant'\r\n )\r\n })\r\n }\r\n }\r\n })\r\n\r\n const StafetFlowLightBagsMetaListLabels = {\r\n isLysposeDedicatedCheckboxLabel:\r\n props.labels.taendEtLysCustomizeLysposeBoolDedicatedLabel,\r\n personalNoteCheckboxLabel:\r\n props.labels.taendEtLysCustomizeLysposeBoolOwnNoteLabel,\r\n personalizeLightBagsTitle: props.labels.taendEtLysLysposeTitle,\r\n lightDedicatedToTextLabel:\r\n props.labels.taendEtLysLysposeDedicatedToLabel,\r\n lightDedicatedToErrorMessage:\r\n props.labels.taendEtLysLysposeDedicatedToErrorMessage,\r\n lightDedicatedToHelpTextLabel:\r\n props.labels.taendEtLysLysposeDedicatedToSubtext,\r\n personalNoteTextLabel:\r\n props.labels.taendEtLysLysposePersonalNoteLabel,\r\n personalNoteHelpTextLabel:\r\n props.labels.taendEtLysLysposePersonalNoteSubtext,\r\n personalNoteErrorMessage:\r\n props.labels.taendEtLysLysposePersonalNoteErrorMessage,\r\n dedicationTypeTextLabel:\r\n props.labels.taendEtLysLysposeDedicatedTypeLabel,\r\n dedicationTypePlaceholder:\r\n props.labels.taendEtLysLysposeDedicatedTypePlaceholder,\r\n dedicationTypeErrorMessage:\r\n props.labels.taendEtLysLysposeDedicatedTypeErrorMessage,\r\n inMemoryOf: props.labels.taendEtLysLysposeDedicatedTypeInMemoryOf,\r\n inSupportOf: props.labels.taendEtLysLysposeDedicatedTypeInSupportOf\r\n }\r\n\r\n const stepModel = computed(() => {\r\n const array = [\r\n {\r\n name: 'donationAmount',\r\n value: parseInt(donationAmount.value),\r\n isValid: false,\r\n validator: (value) => {\r\n return value > 0\r\n }\r\n },\r\n {\r\n name: 'donationPerLightBag',\r\n value: parseInt(donationPerLightBag.value),\r\n isValid: false,\r\n validator: (value) => {\r\n return donationAmount.value > 0 ? value >= 50 : true\r\n }\r\n },\r\n {\r\n name: 'donationFor',\r\n value: supportSelector.value.donationFor,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'donationTeam',\r\n value: supportSelector.value.donationTeam,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'donationParticipant',\r\n value: supportSelector.value.donationParticipant,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'donationItems',\r\n value: lightBagMeta.value.donationItems,\r\n isValid: lightBagMeta.value.isValid,\r\n validator: () => {\r\n return lightBagMeta.value.isValid\r\n }\r\n },\r\n {\r\n name: 'isLysposerDedicated',\r\n value: lightBagMeta.value.isLysposerDedicated,\r\n isValid: true,\r\n validator: () => isBoolean\r\n },\r\n {\r\n name: 'addPersonalNote',\r\n value: lightBagMeta.value.addPersonalNote,\r\n isValid: true,\r\n validator: () => isBoolean\r\n }\r\n ]\r\n\r\n if (donationAmount.value > 0) {\r\n array.push({\r\n name: 'donationItems',\r\n value: lightBagMeta.value.donationItems,\r\n isValid: lightBagMeta.value.isValid,\r\n validator: () => {\r\n return lightBagMeta.value.isValid\r\n }\r\n })\r\n }\r\n\r\n return array\r\n })\r\n\r\n const chooseCustomAmount = () => {\r\n isCustomAmount.value = !isCustomAmount.value\r\n }\r\n\r\n const setDonationAmount = (e) => {\r\n const intValue = parseInt(e.target.value)\r\n donationAmount.value = intValue > 0 ? intValue : 0\r\n }\r\n\r\n const updateLightBagMeta = (data) => {\r\n lightBagMeta.value = data\r\n }\r\n\r\n const updateSupportSelector = (data) => {\r\n supportSelector.value = data\r\n }\r\n\r\n const setDonationPerLightBag = (value) => {\r\n donationPerLightBag.value = value\r\n }\r\n\r\n const showDonationAmoutErrorMessage = computed(() => {\r\n return props.displayInputError && donationAmount.value === 0\r\n })\r\n\r\n const showDonationPerLightBagErrorMessage = computed(() => {\r\n return (\r\n props.displayInputError &&\r\n donationPerLightBag.value < props.lysposeMinimumAmount\r\n )\r\n })\r\n\r\n return {\r\n isCustomAmount,\r\n editorControlledDonationAmountList,\r\n donationAmountList,\r\n donationAmount,\r\n donationPerLightBag,\r\n isLysposerDedicated,\r\n addPersonalNote,\r\n StafetFlowLightBagsMetaListLabels,\r\n stepModel,\r\n chooseCustomAmount,\r\n setDonationAmount,\r\n updateLightBagMeta,\r\n updateSupportSelector,\r\n setDonationPerLightBag,\r\n showDonationAmoutErrorMessage,\r\n showDonationPerLightBagErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagPaaHoldStepTwo.vue?vue&type=template&id=40d1821d\"\nimport script from \"./StafetDeltagPaaHoldStepTwo.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagPaaHoldStepTwo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onBeforeMount, ref } from 'vue'\r\nimport _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport StafetAddDeltager from '../StafetAddDeltager/StafetAddDeltager.vue'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDeltagPaaHoldStepThree',\r\n components: {\r\n FormInputTextField,\r\n FormInputDropdown,\r\n FormCheckbox,\r\n StafetActions,\r\n StafetAddDeltager\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup() {\r\n const addMoreParticipants = ref(false)\r\n const participants = ref({})\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_A_TEAM\r\n )\r\n\r\n if (storedFields) {\r\n let adultParticipants = []\r\n let childParticipants = []\r\n\r\n if (getFieldValue(storedFields, 'deltagere')) {\r\n adultParticipants = getFieldValue(storedFields, 'deltagere')\r\n }\r\n\r\n if (getFieldValue(storedFields, 'childDeltagere')) {\r\n childParticipants = getFieldValue(\r\n storedFields,\r\n 'childDeltagere'\r\n )\r\n }\r\n\r\n participants.value.adults = adultParticipants\r\n participants.value.children = childParticipants\r\n\r\n const totalLength =\r\n adultParticipants.length + childParticipants.length\r\n addMoreParticipants.value = totalLength > 0\r\n }\r\n })\r\n\r\n const toggleAddMoreParticipants = (value) => {\r\n addMoreParticipants.value = value\r\n }\r\n\r\n const stepModel = computed(() => {\r\n let result = []\r\n\r\n if (addMoreParticipants.value) {\r\n result.push({\r\n name: 'deltagere',\r\n value: participants.value.adults,\r\n isValid: participants.value.isValid,\r\n validator: () => participants.value.isValid\r\n })\r\n result.push({\r\n name: 'childDeltagere',\r\n value: participants.value.children,\r\n isValid: participants.value.isValid,\r\n validator: () => participants.value.isValid\r\n })\r\n }\r\n\r\n return result\r\n })\r\n\r\n const updateAddParticipants = (data) => {\r\n participants.value = data\r\n }\r\n\r\n return {\r\n addMoreParticipants,\r\n participants,\r\n toggleAddMoreParticipants,\r\n updateAddParticipants,\r\n stepModel\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagPaaHoldStepThree.vue?vue&type=template&id=5f955274\"\nimport script from \"./StafetDeltagPaaHoldStepThree.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagPaaHoldStepThree.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport phoneValidator from 'foundation/js/inputValidators/phoneValidator'\r\n\r\nexport default [\r\n {\r\n name: 'firstTimeFighter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'firstName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'lastName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'email',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'phone',\r\n value: '',\r\n isValid: false,\r\n validator: (value) => value === '' || phoneValidator(value)\r\n },\r\n {\r\n name: 'consent',\r\n value: false,\r\n isValid: false,\r\n validator: (value) => value === true\r\n },\r\n {\r\n name: 'newsletter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'fighterNewsletter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport StafetPayment from '../StafetPayment/StafetPayment.vue'\r\nimport { onBeforeMount, ref, computed } from 'vue'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport { useStore } from 'vuex'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDeltagPaaHoldStepFour',\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n StafetActions,\r\n StafetPayment\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const firstTimeFighter = ref(false)\r\n const firstName = ref('')\r\n const lastName = ref('')\r\n const email = ref('')\r\n const phone = ref('')\r\n const consent = ref(false)\r\n const newsletter = ref(false)\r\n const fighterNewsletter = ref(false)\r\n const readOnly = ref({\r\n firstName: false,\r\n lastName: false,\r\n email: false,\r\n phone: false\r\n })\r\n\r\n const disableValidation = (fieldName) => {\r\n const field = fieldsConfig.find(field => field.name === fieldName)\r\n field.validator = _ => true\r\n }\r\n\r\n const basket = computed(() => {\r\n return store.state.stafet.basket\r\n })\r\n\r\n const basketTotalPrice = computed(() => {\r\n return store.state.stafet.basketTotalPrice\r\n })\r\n\r\n const isFighter = computed(() => {\r\n const userInputs = store.state.stafet.userInputs\r\n return userInputs.find((input) => input.name === 'isFighter')?.value\r\n })\r\n\r\n onBeforeMount(() => {\r\n \r\n if (props.userData) {\r\n \r\n if (props.userData.firstName) {\r\n firstName.value = props.userData.firstName\r\n readOnly.value.firstName = true\r\n disableValidation('firstName')\r\n }\r\n \r\n if (props.userData.lastName) {\r\n lastName.value = props.userData.lastName\r\n readOnly.value.lastName = true\r\n disableValidation('lastName')\r\n }\r\n \r\n if (props.userData.email) {\r\n email.value = props.userData.email\r\n readOnly.value.email = true\r\n disableValidation('email')\r\n }\r\n \r\n if (props.userData.phoneNumber) {\r\n phone.value = props.userData.phoneNumber\r\n readOnly.value.phone = true\r\n disableValidation('phone')\r\n }\r\n }\r\n \r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_A_TEAM\r\n )\r\n\r\n if (storedFields) {\r\n updateLocalRefs([\r\n {\r\n name: 'firstTimeFighter',\r\n value: \r\n getFieldValue(storedFields, 'firstTimeFighter') ??\r\n firstTimeFighter.value\r\n },\r\n {\r\n name: 'firstName',\r\n value:\r\n getFieldValue(storedFields, 'firstName') ??\r\n firstName.value\r\n },\r\n {\r\n name: 'lastName',\r\n value:\r\n getFieldValue(storedFields, 'lastName') ??\r\n lastName.value\r\n },\r\n {\r\n name: 'email',\r\n value:\r\n getFieldValue(storedFields, 'email') ?? email.value\r\n },\r\n {\r\n name: 'phone',\r\n value:\r\n getFieldValue(storedFields, 'phone') ?? phone.value\r\n },\r\n {\r\n name: 'consent',\r\n value:\r\n getFieldValue(storedFields, 'consent') ??\r\n consent.value\r\n },\r\n {\r\n name: 'newsletter',\r\n value:\r\n getFieldValue(storedFields, 'newsletter') ??\r\n newsletter.value\r\n },\r\n {\r\n name: 'fighterNewsletter',\r\n value:\r\n getFieldValue(storedFields, 'fighterNewsletter') ??\r\n fighterNewsletter.value\r\n }\r\n ])\r\n }\r\n })\r\n\r\n const updateLocalRefs = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.value === undefined || field.value === null) return\r\n fieldsConfig.find((item) => item.name === field.name).value = field.value\r\n switch (field.name) {\r\n case 'firstTimeFighter':\r\n firstTimeFighter.value = field.value\r\n return\r\n case 'firstName':\r\n firstName.value = field.value\r\n return\r\n case 'lastName':\r\n lastName.value = field.value\r\n return\r\n case 'email':\r\n email.value = field.value\r\n return\r\n case 'phone':\r\n phone.value = field.value\r\n return\r\n case 'consent':\r\n consent.value = field.value\r\n return\r\n case 'newsletter':\r\n newsletter.value = field.value\r\n return\r\n case 'fighterNewsletter':\r\n fighterNewsletter.value = field.value\r\n return\r\n default:\r\n return\r\n }\r\n })\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const setFirstTimeFighter = (value) => {\r\n firstTimeFighter.value = value\r\n validateField('firstTimeFighter', value)\r\n }\r\n\r\n const setConsent = (value) => {\r\n consent.value = value\r\n validateField('consent', value)\r\n }\r\n\r\n const showFirstNameErrorMessage = computed(() => showError('firstName', firstName.value))\r\n const showLastNameErrorMessage = computed(() => showError('lastName', lastName.value))\r\n const showEmailErrorMessage = computed(() => showError('email', email.value))\r\n const showPhoneErrorMessage = computed(() => showError('phone', phone.value))\r\n const showError = (fieldName, value) => {\r\n const field = fieldsConfig.find(field => field.name === fieldName)\r\n return !field.validator(value) && props.displayInputError\r\n }\r\n\r\n const showConsentErrorMessage = computed(() => {\r\n return consent.value === false && props.displayInputError\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n firstTimeFighter,\r\n firstName,\r\n lastName,\r\n email,\r\n phone,\r\n consent,\r\n newsletter,\r\n fighterNewsletter,\r\n readOnly,\r\n stepModel,\r\n basket,\r\n isFighter,\r\n basketTotalPrice,\r\n validateField,\r\n setFirstTimeFighter,\r\n setConsent,\r\n showFirstNameErrorMessage,\r\n showLastNameErrorMessage,\r\n showPhoneErrorMessage,\r\n showEmailErrorMessage,\r\n showConsentErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagPaaHoldStepFour.vue?vue&type=template&id=3e378cb1\"\nimport script from \"./StafetDeltagPaaHoldStepFour.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagPaaHoldStepFour.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default function (steps, currentStep, labels) {\r\n const array = []\r\n steps.forEach((step) => {\r\n if (!step.hidden) {\r\n array.push({\r\n title: labels[step.label],\r\n number: step.step,\r\n active: step.step === currentStep\r\n })\r\n }\r\n })\r\n return array\r\n}\r\n","import { computed } from 'vue'\r\n\r\n// store is alredy selected a specific state, so we can use it directly\r\nexport default function (store) {\r\n const userInputs = computed(() => {\r\n return store.userInputs\r\n })\r\n\r\n const steps = computed(() => {\r\n return store.steps\r\n })\r\n\r\n const currentStep = computed(() => {\r\n return store.currentStep\r\n })\r\n\r\n const finalStepName = steps.value.toReversed().name\r\n\r\n const allStepsComplete = computed(() => {\r\n return !!(\r\n steps.value.filter((stepData) => !stepData.completed).length === 0\r\n )\r\n })\r\n\r\n const currentStepName = computed(() => {\r\n return allStepsComplete.value\r\n ? finalStepName\r\n : steps.value.find((stepData) => !stepData.completed).name\r\n })\r\n\r\n return {\r\n userInputs,\r\n steps,\r\n currentStep,\r\n currentStepName\r\n }\r\n}\r\n","export default [\r\n {\r\n step: 1,\r\n name: 'StafetDeltagPaaHoldStepOne',\r\n completed: false,\r\n label: 'formStepLabel1',\r\n hidden: false\r\n },\r\n {\r\n step: 2,\r\n name: 'StafetDeltagPaaHoldStepTwo',\r\n completed: false,\r\n label: 'formStepLabel2',\r\n hidden: false\r\n },\r\n {\r\n step: 3,\r\n name: 'StafetDeltagPaaHoldStepThree',\r\n completed: false,\r\n label: 'formStepLabel3',\r\n hidden: false\r\n },\r\n {\r\n step: 4,\r\n name: 'StafetDeltagPaaHoldStepFour',\r\n completed: false,\r\n label: 'formStepLabel4',\r\n hidden: false\r\n },\r\n {\r\n step: 5,\r\n name: 'FormStepSubmitting',\r\n completed: false,\r\n label: '',\r\n hidden: true\r\n }\r\n]\r\n","import { computed, ref, onMounted } from 'vue'\r\nimport StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport StafetDeltagPaaHoldStepOne from '../StafetDeltagPaaHoldStepOne/StafetDeltagPaaHoldStepOne.vue'\r\nimport StafetDeltagPaaHoldStepTwo from '../StafetDeltagPaaHoldStepTwo/StafetDeltagPaaHoldStepTwo.vue'\r\nimport StafetDeltagPaaHoldStepThree from '../StafetDeltagPaaHoldStepThree/StafetDeltagPaaHoldStepThree.vue'\r\nimport StafetDeltagPaaHoldStepFour from '../StafetDeltagPaaHoldStepFour/StafetDeltagPaaHoldStepFour.vue'\r\nimport FormStepSubmitting from '../FormStepSubmitting/FormStepSubmitting.vue'\r\nimport { useStore } from 'vuex'\r\nimport mapStafetHeaderSteps from 'foundation/js/stafet/mapStafetHeaderSteps'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport clearItemFromStorage from 'foundation/js/sessionStorageWrapper/clearItemFromStorage'\r\nimport getCommonComputedFields from 'foundation/js/stafet/getCommonComputedFields'\r\nimport stepsConfig from './config/stepsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport updateBasket from './methods/updateBasket'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\n\r\nexport default {\r\n name: 'StafetDeltagPaaHoldFlow',\r\n components: {\r\n StafetHeader,\r\n StafetDeltagPaaHoldStepOne,\r\n StafetDeltagPaaHoldStepTwo,\r\n StafetDeltagPaaHoldStepThree,\r\n StafetDeltagPaaHoldStepFour,\r\n FormStepSubmitting\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n holdId: {\r\n type: String,\r\n required: false\r\n },\r\n tshirtSizes: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n holdList: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n donationAmounts: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n redirectToEditProfile: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n editProfileLinkText: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n lysposeMinimumAmount: {\r\n type: Number,\r\n required: false,\r\n default: 50\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n adultPrice: {\r\n type: Number,\r\n required: true\r\n },\r\n childPrice: {\r\n type: Number,\r\n required: true\r\n },\r\n lysposeQuantityOption1: {\r\n type: Number,\r\n required: true,\r\n },\r\n lysposeQuantityOption2: {\r\n type: Number,\r\n required: true,\r\n },\r\n lysposeQuantityOption3: {\r\n type: Number,\r\n required: true,\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLJoinHoldLabels']\r\n })\r\n\r\n const headerSteps = computed(() => {\r\n return mapStafetHeaderSteps(\r\n steps.value,\r\n currentStep.value,\r\n labels.value\r\n )\r\n })\r\n\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.stafet.isSubmitting\r\n })\r\n\r\n const { userInputs, steps, currentStep, currentStepName } =\r\n getCommonComputedFields(store.state.stafet)\r\n\r\n onMounted(() => {\r\n store.dispatch('stafet/stafetId', { stafetId: props.stafetId })\r\n store.dispatch('stafet/steps', {\r\n steps: stepsConfig\r\n })\r\n })\r\n\r\n const handleStepCompleted = () => {\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = true\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n\r\n const unCompletedSteps = steps.value.filter(\r\n (item) => !item.completed\r\n )\r\n\r\n if (unCompletedSteps.length > 0) {\r\n store.dispatch('stafet/currentStep', {\r\n step: unCompletedSteps[0].step\r\n })\r\n }\r\n }\r\n\r\n const nextStepCallback = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.dependentField) {\r\n const dependentField = fields.find(\r\n (item) => item.name === field.dependentField\r\n )\r\n\r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value\r\n }\r\n }\r\n fieldValidator(field)\r\n })\r\n\r\n const isStepValid = fields.every((field) => field.isValid)\r\n if (isStepValid) {\r\n displayInputError.value = false\r\n handleStepCompleted()\r\n store.dispatch('stafet/userInputs', { inputs: fields })\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_A_TEAM,\r\n fields\r\n )\r\n updateBasket(\r\n userInputs.value,\r\n labels.value,\r\n store,\r\n props.adultPrice,\r\n props.childPrice\r\n )\r\n\r\n scrollTo(0, 0)\r\n } else {\r\n displayInputError.value = true\r\n scrollToFirstError()\r\n }\r\n }\r\n\r\n const skipStepCallback = () => {\r\n handleStepCompleted()\r\n }\r\n\r\n const previousStepCallback = () => {\r\n if (currentStep.value > 1) {\r\n store.dispatch('stafet/currentStep', {\r\n step: currentStep.value - 1\r\n })\r\n\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = false\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n\r\n scrollTo(0, 0)\r\n }\r\n }\r\n\r\n const submitCallback = async () => {\r\n // it expects a object with ok: true or false\r\n await store.dispatch('stafet/joinATeamSubmit')\r\n return 'submitted'\r\n }\r\n\r\n return {\r\n headerSteps,\r\n labels,\r\n currentStepName,\r\n displayInputError,\r\n isSubmitting,\r\n nextStepCallback,\r\n previousStepCallback,\r\n submitCallback,\r\n skipStepCallback\r\n }\r\n }\r\n}\r\n","export default function (userInputs, labels, store, adultPrice, childPrice) {\r\n\r\n const basket = []\r\n const isFighter = userInputs.find((item) => item.name === 'isFighter')\r\n const donationAmount = userInputs.find(\r\n (item) => item.name === 'donationAmount'\r\n )\r\n const donationPerLightBag = userInputs.find(\r\n (item) => item.name === 'donationPerLightBag'\r\n )\r\n const deltagere = userInputs.find((item) => item.name === 'deltagere')\r\n const childDeltagere = userInputs.find(\r\n (item) => item.name === 'childDeltagere'\r\n )\r\n\r\n const isChild = userInputs.find((item) => item.name === 'isChild')\r\n\r\n basket.push({\r\n label: labels.yourInformationTotalYourDeltagergebyrLabel,\r\n amount: '',\r\n price: `${isChild.value ? childPrice : adultPrice} kr.`,\r\n intPrice: isChild.value ? childPrice : adultPrice\r\n })\r\n\r\n if (isFighter && isFighter.value) {\r\n basket.push({\r\n label: labels.yourInformationTotalFighterLabel,\r\n amount: '',\r\n price: '0 kr.',\r\n intPrice: 0\r\n })\r\n }\r\n\r\n if (\r\n donationAmount &&\r\n donationAmount.value &&\r\n donationPerLightBag &&\r\n donationPerLightBag.value\r\n ) {\r\n basket.push({\r\n label: labels.yourInformationTotalTaendteLysLabel,\r\n amount: `${donationAmount.value} ${labels.taendEtLysUnitLabel} (á ${donationPerLightBag.value} kr.)`,\r\n price: `${donationAmount.value * donationPerLightBag.value} kr.`,\r\n intPrice: donationAmount.value * donationPerLightBag.value\r\n })\r\n }\r\n\r\n if (deltagere && deltagere.value.length > 0) {\r\n basket.push({\r\n label: labels.yourInformationTotalNewAdultDeltagereLabel,\r\n amount: `${deltagere.value.length} ${labels.yourInformationTotalDeltagereLabel} (á ${adultPrice} kr.)`,\r\n price: `${deltagere.value.length * adultPrice} kr.`,\r\n intPrice: deltagere.value.length * adultPrice\r\n })\r\n }\r\n\r\n if (childDeltagere && childDeltagere.value.length > 0) {\r\n basket.push({\r\n label: labels.yourInformationTotalNewChildDeltagereLabel,\r\n amount: `${childDeltagere.value.length} ${labels.yourInformationTotalDeltagereLabel} (á ${childPrice} kr.)`,\r\n price: `${childDeltagere.value.length * childPrice} kr.`,\r\n intPrice: childDeltagere.value.length * childPrice\r\n })\r\n }\r\n\r\n store.dispatch('stafet/basket', { basket: basket })\r\n}\r\n","import { render } from \"./StafetDeltagPaaHoldFlow.vue?vue&type=template&id=9ccc76d2\"\nimport script from \"./StafetDeltagPaaHoldFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagPaaHoldFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport phoneValidator from 'foundation/js/inputValidators/phoneValidator'\r\n\r\nexport default [\r\n {\r\n name: 'firstTimeFighter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'firstName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'lastName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'email',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'phone',\r\n value: '',\r\n isValid: false,\r\n validator: (value) => value === '' || phoneValidator(value)\r\n },\r\n {\r\n name: 'consent',\r\n value: false,\r\n isValid: false,\r\n validator: (value) => value === true\r\n },\r\n {\r\n name: 'fighterNewsletter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport { ref, computed, onBeforeMount } from 'vue'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDeltagSomFighterStepOne',\r\n components: {\r\n StafetActions,\r\n FormInputTextField,\r\n FormCheckbox\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const firstTimeFighter = ref(false)\r\n const firstName = ref('')\r\n const lastName = ref('')\r\n const email = ref('')\r\n const phone = ref('')\r\n const consent = ref(false)\r\n const fighterNewsletter = ref(false)\r\n const readOnly = ref({\r\n firstName: false,\r\n lastName: false,\r\n email: false,\r\n phone: false\r\n })\r\n\r\n const disableValidation = (fieldName) => {\r\n const field = fieldsConfig.find(field => field.name === fieldName)\r\n field.validator = _ => true\r\n }\r\n\r\n onBeforeMount(() => {\r\n\r\n if (props.userData) {\r\n \r\n if (props.userData.firstName) {\r\n firstName.value = props.userData.firstName\r\n readOnly.value.firstName = true\r\n disableValidation('firstName')\r\n }\r\n \r\n if (props.userData.lastName) {\r\n lastName.value = props.userData.lastName\r\n readOnly.value.lastName = true\r\n disableValidation('lastName')\r\n }\r\n \r\n if (props.userData.email) {\r\n email.value = props.userData.email\r\n readOnly.value.email = true\r\n disableValidation('email')\r\n }\r\n \r\n if (props.userData.phoneNumber) {\r\n phone.value = props.userData.phoneNumber\r\n readOnly.value.phone = true\r\n disableValidation('phone')\r\n }\r\n }\r\n \r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_AS_FIGHTER\r\n )\r\n\r\n if (storedFields) {\r\n updateLocalRefs([\r\n {\r\n name: 'firstTimeFighter',\r\n value: getFieldValue(storedFields, 'firstTimeFighter')\r\n },\r\n {\r\n name: 'firstName',\r\n value: getFieldValue(storedFields, 'firstName')\r\n },\r\n {\r\n name: 'lastName',\r\n value: getFieldValue(storedFields, 'lastName')\r\n },\r\n {\r\n name: 'email',\r\n value: getFieldValue(storedFields, 'email')\r\n },\r\n {\r\n name: 'phone',\r\n value: getFieldValue(storedFields, 'phone')\r\n },\r\n {\r\n name: 'consent',\r\n value: getFieldValue(storedFields, 'consent')\r\n },\r\n {\r\n name: 'fighterNewsletter',\r\n value: getFieldValue(storedFields, 'fighterNewsletter')\r\n }\r\n ])\r\n } else {\r\n updateLocalRefs([\r\n {\r\n name: 'firstTimeFighter',\r\n value: firstTimeFighter.value\r\n },\r\n {\r\n name: 'firstName',\r\n value: firstName.value\r\n },\r\n {\r\n name: 'lastName',\r\n value: lastName.value\r\n },\r\n {\r\n name: 'email',\r\n value: email.value\r\n },\r\n {\r\n name: 'phone',\r\n value: phone.value\r\n }\r\n ])\r\n }\r\n })\r\n\r\n const updateLocalRefs = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.value === undefined || field.value === null) return\r\n fieldsConfig.find((item) => item.name === field.name).value =\r\n field.value\r\n switch (field.name) {\r\n case 'firstTimeFighter':\r\n firstTimeFighter.value = field.value\r\n return\r\n case 'firstName':\r\n firstName.value = field.value\r\n return\r\n case 'lastName':\r\n lastName.value = field.value\r\n return\r\n case 'email':\r\n email.value = field.value\r\n return\r\n case 'phone':\r\n phone.value = field.value\r\n return\r\n case 'consent':\r\n consent.value = field.value\r\n return\r\n case 'fighterNewsletter':\r\n fighterNewsletter.value = field.value\r\n return\r\n default:\r\n return\r\n }\r\n })\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const setFirstTimeFighter = (value) => {\r\n firstTimeFighter.value = value\r\n validateField('firstTimeFighter', value)\r\n }\r\n\r\n const setFighterNewsletter = (value) => {\r\n fighterNewsletter.value = value\r\n validateField('fighterNewsletter', value)\r\n }\r\n\r\n const setConsent = (value) => {\r\n consent.value = value\r\n validateField('consent', value)\r\n }\r\n\r\n const showFirstNameErrorMessage = computed(() => showError('firstName', firstName.value))\r\n const showLastNameErrorMessage = computed(() => showError('lastName', lastName.value))\r\n const showEmailErrorMessage = computed(() => showError('email', email.value))\r\n const showPhoneErrorMessage = computed(() => showError('phone', phone.value))\r\n const showError = (fieldName, value) => {\r\n const field = fieldsConfig.find(field => field.name === fieldName)\r\n return !field.validator(value) && props.displayInputError\r\n }\r\n\r\n const showConsentErrorMessage = computed(() => {\r\n return consent.value === false && props.displayInputError\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n firstTimeFighter,\r\n firstName,\r\n lastName,\r\n email,\r\n phone,\r\n consent,\r\n fighterNewsletter,\r\n readOnly,\r\n showFirstNameErrorMessage,\r\n showLastNameErrorMessage,\r\n showEmailErrorMessage,\r\n showPhoneErrorMessage,\r\n showConsentErrorMessage,\r\n stepModel,\r\n setFirstTimeFighter,\r\n setConsent,\r\n setFighterNewsletter,\r\n validateField\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagSomFighterStepOne.vue?vue&type=template&id=1baaca5b\"\nimport script from \"./StafetDeltagSomFighterStepOne.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagSomFighterStepOne.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\n\r\nexport default [\r\n {\r\n name: 'tshirtSize',\r\n value: 0,\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'participateInFreeLunch',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport { computed, onBeforeMount, ref } from 'vue'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDeltagSomFighterStepTwo',\r\n components: {\r\n StafetActions,\r\n FormInputDropdown,\r\n FormCheckbox\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const tshirtSize = ref('')\r\n const participateInFreeLunch = ref(false)\r\n\r\n const tshirtSizes = computed(() => {\r\n const array = []\r\n props.tshirtSizes.forEach((size) => {\r\n array.push({\r\n name: size.displayName,\r\n value: size.value\r\n })\r\n })\r\n return array\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_AS_FIGHTER\r\n )\r\n\r\n if (storedFields) {\r\n updateLocalRefs([\r\n {\r\n name: 'tshirtSize',\r\n value: getFieldValue(storedFields, 'tshirtSize')\r\n },\r\n {\r\n name: 'participateInFreeLunch',\r\n value: getFieldValue(\r\n storedFields,\r\n 'participateInFreeLunch'\r\n )\r\n }\r\n ])\r\n }\r\n })\r\n\r\n const updateLocalRefs = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.value === undefined || field.value === null) return\r\n fieldsConfig.find((item) => item.name === field.name).value =\r\n field.value\r\n switch (field.name) {\r\n case 'tshirtSize':\r\n tshirtSize.value = field.value\r\n return\r\n case 'participateInFreeLunch':\r\n participateInFreeLunch.value = field.value\r\n return\r\n default:\r\n return\r\n }\r\n })\r\n }\r\n\r\n const setTshirtSize = (value) => {\r\n tshirtSize.value = value\r\n validateField('tshirtSize', value)\r\n }\r\n\r\n const setParticipateInFreeLunch = (value) => {\r\n participateInFreeLunch.value = value\r\n validateField('participateInFreeLunch', value)\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const showTshirtSizeErrorMessage = computed(() => {\r\n return (\r\n !nonEmptyStringValidator(tshirtSize.value) &&\r\n props.displayInputError\r\n )\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n tshirtSize,\r\n tshirtSizes,\r\n participateInFreeLunch,\r\n stepModel,\r\n validateField,\r\n setParticipateInFreeLunch,\r\n setTshirtSize,\r\n showTshirtSizeErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagSomFighterStepTwo.vue?vue&type=template&id=77c5b5af\"\nimport script from \"./StafetDeltagSomFighterStepTwo.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagSomFighterStepTwo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\n\r\nexport default [\r\n {\r\n name: 'joinATeam',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'isChild',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n dependentField: 'joinATeam',\r\n dependentFieldValue: false,\r\n dependentFieldValidator: (value) => value === false,\r\n name: 'teamName',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'newsletter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport StafetPayment from '../StafetPayment/StafetPayment.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport { ref, computed, onBeforeMount } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDeltagSomFighterStepThree',\r\n components: {\r\n FormCheckbox,\r\n FormInputDropdown,\r\n StafetPayment,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const joinATeam = ref(false)\r\n const isChild = ref(false)\r\n const teamName = ref('') \r\n const newsletter = ref(false)\r\n\r\n const basket = computed(() => {\r\n return store.state.stafet.basket\r\n })\r\n\r\n const basketTotalPrice = computed(() => {\r\n return store.state.stafet.basketTotalPrice\r\n })\r\n\r\n const teams = computed(() => {\r\n const array = []\r\n if (props.holdList) {\r\n props.holdList.forEach((hold) =>\r\n array.push({ name: hold.name, value: hold.holdKode })\r\n )\r\n }\r\n\r\n return array\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_AS_FIGHTER\r\n )\r\n\r\n if (storedFields) {\r\n updateLocalRefs([\r\n {\r\n name: 'joinATeam',\r\n value: getFieldValue(storedFields, 'joinATeam')\r\n },\r\n {\r\n name: 'isChild',\r\n value: getFieldValue(storedFields, 'isChild')\r\n },\r\n {\r\n name: 'teamName',\r\n value: getFieldValue(storedFields, 'teamName')\r\n },\r\n {\r\n name: 'newsletter',\r\n value:\r\n getFieldValue(storedFields, 'newsletter') ??\r\n newsletter.value\r\n }\r\n ])\r\n }\r\n\r\n store.dispatch('donation/teams', { stafetId: props.stafetId })\r\n })\r\n\r\n const updateLocalRefs = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.value === undefined || field.value === null) return\r\n fieldsConfig.find((item) => item.name === field.name).value =\r\n field.value\r\n switch (field.name) {\r\n case 'joinATeam':\r\n joinATeam.value = field.value\r\n return\r\n case 'isChild':\r\n isChild.value = field.value\r\n return\r\n case 'teamName':\r\n teamName.value = field.value\r\n return\r\n case 'newsletter':\r\n newsletter.value = field.value\r\n return\r\n default:\r\n return\r\n }\r\n })\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n updateLocalRefs([{ name: fieldName, value: value }]) // update local refs and keep in sync with fieldsConfig\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const setJoinATeam = (value) => {\r\n joinATeam.value = value\r\n store.dispatch('stafet/userInputs', {\r\n inputs: [\r\n { name: 'joinATeam', isValid: true, value: joinATeam.value }\r\n ]\r\n })\r\n validateField('joinATeam', value)\r\n if (props.updateBasketCallback) {\r\n props.updateBasketCallback()\r\n }\r\n }\r\n\r\n const setIsChild = (value) => {\r\n isChild.value = value\r\n store.dispatch('stafet/userInputs', {\r\n inputs: [\r\n { name: 'isChild', isValid: true, value: isChild.value }\r\n ]\r\n })\r\n if (props.updateBasketCallback) {\r\n props.updateBasketCallback()\r\n }\r\n validateField('isChild', value)\r\n }\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n const handleErrorMessage = (fieldName) => {\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n return !field?.isValid && props.displayInputError\r\n }\r\n\r\n return {\r\n joinATeam,\r\n isChild,\r\n teamName,\r\n teams,\r\n basket,\r\n basketTotalPrice,\r\n stepModel,\r\n setJoinATeam,\r\n newsletter,\r\n setIsChild,\r\n validateField,\r\n handleErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagSomFighterStepThree.vue?vue&type=template&id=0b618ee6\"\nimport script from \"./StafetDeltagSomFighterStepThree.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagSomFighterStepThree.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default [\r\n {\r\n step: 1,\r\n name: 'StafetDeltagSomFighterStepOne',\r\n completed: false,\r\n label: 'formStepLabel1',\r\n hidden: false\r\n },\r\n {\r\n step: 2,\r\n name: 'StafetDeltagSomFighterStepTwo',\r\n completed: false,\r\n label: 'formStepLabel2',\r\n hidden: false\r\n },\r\n {\r\n step: 3,\r\n name: 'StafetDeltagSomFighterStepThree',\r\n completed: false,\r\n label: 'formStepLabel3',\r\n hidden: false\r\n },\r\n {\r\n step: 4,\r\n name: 'FormStepSubmitting',\r\n completed: false,\r\n label: '',\r\n hidden: true\r\n }\r\n]\r\n","export default function (userInputs, labels, store, adultPrice, childPrice) {\r\n const basket = []\r\n const isChild = userInputs.find((item) => item.name === 'isChild')\r\n const joinATeam = userInputs.find((item) => item.name === 'joinATeam')\r\n\r\n basket.push({\r\n label: labels.fighterJoinHoldTotalFighter,\r\n amount: '',\r\n price: '0 kr.',\r\n intPrice: 0\r\n })\r\n\r\n\r\n if (joinATeam && joinATeam.value) {\r\n if (isChild && isChild.value) {\r\n basket.push({\r\n label: labels.fighterJoinHoldTotalDeltagergebyr,\r\n amount: '',\r\n price: `${childPrice} kr.`,\r\n intPrice: childPrice\r\n })\r\n } else {\r\n basket.push({\r\n label: labels.fighterJoinHoldTotalDeltagergebyr,\r\n amount: '',\r\n price: `${adultPrice} kr.`,\r\n intPrice: adultPrice\r\n })\r\n }\r\n }\r\n\r\n store.dispatch('stafet/basket', { basket: basket })\r\n}\r\n","import { computed, ref, onMounted } from 'vue'\r\nimport StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport FormStepSubmitting from '../FormStepSubmitting/FormStepSubmitting.vue'\r\nimport StafetDeltagSomFighterStepOne from '../StafetDeltagSomFighterStepOne/StafetDeltagSomFighterStepOne.vue'\r\nimport StafetDeltagSomFighterStepTwo from '../StafetDeltagSomFighterStepTwo/StafetDeltagSomFighterStepTwo.vue'\r\nimport StafetDeltagSomFighterStepThree from '../StafetDeltagSomFighterStepThree/StafetDeltagSomFighterStepThree.vue'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport { useStore } from 'vuex'\r\nimport mapStafetHeaderSteps from 'foundation/js/stafet/mapStafetHeaderSteps'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getCommonComputedFields from 'foundation/js/stafet/getCommonComputedFields'\r\nimport stepsConfig from './config/stepsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport updateBasket from './methods/updateBasket'\r\n\r\nexport default {\r\n name: 'StafetDeltagSomFighterFlow',\r\n components: {\r\n StafetHeader,\r\n FormStepSubmitting,\r\n StafetDeltagSomFighterStepOne,\r\n StafetDeltagSomFighterStepTwo,\r\n StafetDeltagSomFighterStepThree\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n tshirtSizes: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n donationAmount: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n redirectToEditProfile: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n editProfileLinkText: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n holdList: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n adultPrice: {\r\n type: Number,\r\n required: true\r\n },\r\n childPrice: {\r\n type: Number,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLJoinAsFighterLabels']\r\n })\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.stafet.isSubmitting\r\n })\r\n\r\n const headerSteps = computed(() => {\r\n return mapStafetHeaderSteps(\r\n steps.value,\r\n currentStep.value,\r\n labels.value\r\n )\r\n })\r\n\r\n const { userInputs, steps, currentStep, currentStepName } =\r\n getCommonComputedFields(store.state.stafet)\r\n\r\n onMounted(() => {\r\n store.dispatch('stafet/stafetId', { stafetId: props.stafetId })\r\n store.dispatch('stafet/steps', {\r\n steps: stepsConfig\r\n })\r\n })\r\n\r\n const handleStepCompleted = () => {\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = true\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n\r\n const unCompletedSteps = steps.value.filter(\r\n (item) => !item.completed\r\n )\r\n\r\n if (unCompletedSteps.length > 0) {\r\n store.dispatch('stafet/currentStep', {\r\n step: unCompletedSteps[0].step\r\n })\r\n }\r\n }\r\n\r\n const nextStepCallback = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.dependentField) {\r\n const dependentField = fields.find(\r\n (item) => item.name === field.dependentField\r\n )\r\n\r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value\r\n }\r\n }\r\n fieldValidator(field)\r\n })\r\n\r\n const isStepValid = fields.every((field) => field.isValid)\r\n if (isStepValid) {\r\n displayInputError.value = false\r\n handleStepCompleted()\r\n store.dispatch('stafet/userInputs', { inputs: fields })\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_JOIN_AS_FIGHTER,\r\n fields\r\n )\r\n updateBasket(\r\n userInputs.value,\r\n labels.value,\r\n store,\r\n props.adultPrice,\r\n props.childPrice\r\n )\r\n\r\n scrollTo(0, 0) \r\n } else {\r\n displayInputError.value = true\r\n scrollToFirstError()\r\n }\r\n }\r\n\r\n const updateBasketCallback = () => {\r\n updateBasket(userInputs.value, labels.value, store, props.adultPrice, props.childPrice)\r\n }\r\n\r\n const previousStepCallback = () => {\r\n if (currentStep.value > 1) {\r\n store.dispatch('stafet/currentStep', {\r\n step: currentStep.value - 1\r\n })\r\n\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = false\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n\r\n scrollTo(0, 0) \r\n }\r\n }\r\n\r\n const submitCallback = async () => {\r\n // it expects a object with ok: true or false\r\n await store.dispatch('stafet/joinAsAFighterSubmit')\r\n return 'submitted'\r\n }\r\n\r\n return {\r\n labels,\r\n headerSteps,\r\n currentStepName,\r\n displayInputError,\r\n isSubmitting,\r\n nextStepCallback,\r\n previousStepCallback,\r\n submitCallback,\r\n updateBasketCallback\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDeltagSomFighterFlow.vue?vue&type=template&id=6580c69b\"\nimport script from \"./StafetDeltagSomFighterFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDeltagSomFighterFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport SupportSelector from '../SupportSelector/SupportSelector.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputTextarea from '../FormInputTextarea/FormInputTextarea.vue'\r\nimport FormRadioGroup from '../FormRadioGroup/FormRadioGroup.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport { computed, onBeforeMount, ref } from 'vue'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\nimport { useStore } from 'vuex'\r\n\r\nexport default {\r\n name: 'StafetDonationStepOne',\r\n components: {\r\n SupportSelector,\r\n FormInputTextField,\r\n FormInputTextarea,\r\n FormRadioGroup,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const donationTypeEnum = Object.freeze({\r\n PRIVATE: 'Privat',\r\n COMPANY: 'Virksomhed'\r\n })\r\n\r\n const donationType = ref(donationTypeEnum.PRIVATE)\r\n const donationAmount = ref(NaN)\r\n const supportSelector = ref({})\r\n const comment = ref('')\r\n\r\n const radioOptions = [\r\n {\r\n value: donationTypeEnum.PRIVATE,\r\n label: props.labels.yourSupportPrivateSupportRadioLabel\r\n },\r\n {\r\n value: donationTypeEnum.COMPANY,\r\n label: props.labels.yourSupportCompanySupportRadioLabel\r\n }\r\n ]\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION\r\n )\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'type')) {\r\n donationType.value = getFieldValue(\r\n storedFields,\r\n 'type'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'amount')) {\r\n donationAmount.value = getFieldValue(\r\n storedFields,\r\n 'amount'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationFor')) {\r\n store.dispatch('donation/donationFor', {\r\n donationFor: getFieldValue(storedFields, 'donationFor')\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationTeam')) {\r\n store.dispatch('donation/donationTeam', {\r\n team: getFieldValue(\r\n storedFields,\r\n 'donationTeam'\r\n ).toString()\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationParticipant')) {\r\n store.dispatch('donation/donationParticipant', {\r\n participant: getFieldValue(\r\n storedFields,\r\n 'donationParticipant'\r\n )\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'comment')) {\r\n comment.value = getFieldValue(\r\n storedFields,\r\n 'comment'\r\n )\r\n }\r\n }\r\n })\r\n\r\n const updateDonationType = (value) => {\r\n donationType.value = value\r\n }\r\n\r\n const updateSupportSelector = (data) => {\r\n supportSelector.value = data\r\n }\r\n\r\n const updateComment = (value) => {\r\n comment.value = value\r\n }\r\n\r\n const setDonationAmount = (value) => {\r\n donationAmount.value = value\r\n }\r\n\r\n const isDonationAmountValid = (value) => value && value >= props.donationMinimumAmount\r\n\r\n const showDonationAmountErrorMessage = computed(() => {\r\n return (\r\n !isDonationAmountValid(donationAmount.value) && props.displayInputError\r\n )\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return [\r\n {\r\n name: 'amount',\r\n value: parseInt(donationAmount.value),\r\n isValid: false,\r\n validator: isDonationAmountValid\r\n },\r\n {\r\n name: 'donationFor',\r\n value: supportSelector.value.donationFor,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'holdKode',\r\n value: supportSelector.value.donationTeam,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'deltagerId',\r\n value: supportSelector.value.donationParticipant,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'comment',\r\n value: comment.value,\r\n isValid: true,\r\n validator: () => true\r\n },\r\n {\r\n name: 'type',\r\n value: donationType.value,\r\n isValid: true,\r\n validator: nonEmptyStringValidator\r\n }\r\n ]\r\n })\r\n\r\n return {\r\n radioOptions,\r\n donationType,\r\n donationAmount,\r\n comment,\r\n showDonationAmountErrorMessage,\r\n stepModel,\r\n setDonationAmount,\r\n updateSupportSelector,\r\n updateComment,\r\n updateDonationType\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationStepOne.vue?vue&type=template&id=54d83d0a\"\nimport script from \"./StafetDonationStepOne.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationStepOne.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import cprValidator from 'foundation/js/inputValidators/cprValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\n\r\nexport default [\r\n {\r\n name: 'firstName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'lastName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'email',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'isAnonymous',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'taxDeduction',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n dependentField: 'taxDeduction',\r\n dependentFieldValue: false,\r\n dependentFieldValidator: (value) => value === false,\r\n name: 'cpr',\r\n value: '',\r\n isValid: false,\r\n validator: cprValidator\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport { ref, computed, onBeforeMount } from 'vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport StafetPayment from '../StafetPayment/StafetPayment.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport { useStore } from 'vuex'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport cprValidator from 'foundation/js/inputValidators/cprValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDonationStepPrivat',\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n StafetPayment,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const firstName = ref(props.userData?.firstName ?? '')\r\n const lastName = ref(props.userData?.lastName ?? '')\r\n const email = ref(props.userData?.email ?? '')\r\n const isAnonymous = ref(false)\r\n const taxDeduction = ref(false)\r\n const cpr = ref('')\r\n\r\n const basket = computed(() => {\r\n return store.state.donation.basket\r\n })\r\n\r\n const basketTotalPrice = computed(() => {\r\n return store.state.donation.basketTotalPrice\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION\r\n )\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'firstName')) {\r\n firstName.value = getFieldValue(storedFields, 'firstName')\r\n }\r\n if (getFieldValue(storedFields, 'lastName')) {\r\n lastName.value = getFieldValue(storedFields, 'lastName')\r\n }\r\n if (getFieldValue(storedFields, 'email')) {\r\n email.value = getFieldValue(storedFields, 'email')\r\n }\r\n if (getFieldValue(storedFields, 'isAnonymous')) {\r\n isAnonymous.value = getFieldValue(\r\n storedFields,\r\n 'isAnonymous'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'taxDeduction')) {\r\n taxDeduction.value = getFieldValue(\r\n storedFields,\r\n 'taxDeduction'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'cpr')) {\r\n cpr.value = getFieldValue(storedFields, 'cpr')\r\n }\r\n }\r\n\r\n validateField('lastName', lastName.value)\r\n validateField('email', email.value)\r\n validateField('isAnonymous', isAnonymous.value)\r\n validateField('taxDeduction', taxDeduction.value)\r\n validateField('cpr', cpr.value)\r\n validateField('firstName', firstName.value)\r\n })\r\n\r\n const showFirstNameErrorMessage = computed(() => {\r\n return !nameValidator(firstName.value) && props.displayInputError\r\n })\r\n\r\n const showLastNameErrorMessage = computed(() => {\r\n return !nameValidator(lastName.value) && props.displayInputError\r\n })\r\n\r\n const showEmailErrorMessage = computed(() => {\r\n return !emailValidator(email.value) && props.displayInputError\r\n })\r\n\r\n const showCprErrorMessage = computed(() => {\r\n return !cprValidator(cpr.value) && props.displayInputError\r\n })\r\n\r\n const setTaxDeduction = (value) => {\r\n taxDeduction.value = value\r\n validateField('taxDeduction', value)\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n firstName,\r\n lastName,\r\n email,\r\n isAnonymous,\r\n taxDeduction,\r\n cpr,\r\n basket,\r\n basketTotalPrice,\r\n stepModel,\r\n validateField,\r\n setTaxDeduction,\r\n showFirstNameErrorMessage,\r\n showLastNameErrorMessage,\r\n showEmailErrorMessage,\r\n showCprErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationStepPrivat.vue?vue&type=template&id=3844b3f0\"\nimport script from \"./StafetDonationStepPrivat.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationStepPrivat.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import cvrValidator from 'foundation/js/inputValidators/cvrValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\nimport phoneValidator from 'foundation/js/inputValidators/phoneValidator'\r\n\r\nexport default [\r\n {\r\n name: 'companyName',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'firstName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'lastName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'email',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'phone',\r\n value: '',\r\n isValid: false,\r\n validator: (value) => value === '' || phoneValidator(value)\r\n },\r\n {\r\n name: 'companyAddress',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'companyPostalCode',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'companyCity',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'companyWebsite',\r\n value: '',\r\n isValid: false,\r\n validator: () => true\r\n },\r\n {\r\n name: 'companyLogo',\r\n value: [],\r\n isValid: false,\r\n validator: () => true\r\n },\r\n {\r\n name: 'isAnonymous',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n name: 'taxDeduction',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n },\r\n {\r\n dependentField: 'taxDeduction',\r\n dependentFieldValue: false,\r\n dependentFieldValidator: (value) => value === false,\r\n name: 'cvr',\r\n value: '',\r\n isValid: false,\r\n validator: cvrValidator\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport { ref, computed, onBeforeMount } from 'vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport StafetPayment from '../StafetPayment/StafetPayment.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport { useStore } from 'vuex'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport phoneValidator from 'foundation/js/inputValidators/phoneValidator'\r\nimport cvrValidator from 'foundation/js/inputValidators/cvrValidator'\r\nimport FormAddressField from \"../FormAddressField/FormAddressField\"\r\n\r\nexport default {\r\n name: 'StafetDonationStepVirksomhed',\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n StafetPayment,\r\n StafetActions,\r\n FormAddressField\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const companyName = ref('')\r\n const firstName = ref(props.userData?.firstName ?? '')\r\n const lastName = ref(props.userData?.lastName ?? '')\r\n const email = ref(props.userData?.email ?? '')\r\n const phone = ref(props.userData?.phone ?? '')\r\n const companyAddress = ref(\"\")\r\n const companyPostalCode = ref(\"\")\r\n const companyCity = ref(\"\")\r\n const companyWebsite = ref('')\r\n const companyLogo = ref([])\r\n const isAnonymous = ref(false)\r\n const taxDeduction = ref(false)\r\n const cvr = ref('')\r\n\r\n const basket = computed(() => {\r\n return store.state.donation.basket\r\n })\r\n\r\n const basketTotalPrice = computed(() => {\r\n return store.state.donation.basketTotalPrice\r\n })\r\n\r\n const donationFor = computed(() => {\r\n return store.state.donation.donationFor\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION\r\n )\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'companyName')) {\r\n companyName.value = getFieldValue(\r\n storedFields,\r\n 'companyName'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'firstName')) {\r\n firstName.value = getFieldValue(storedFields, 'firstName')\r\n }\r\n if (getFieldValue(storedFields, 'lastName')) {\r\n lastName.value = getFieldValue(storedFields, 'lastName')\r\n }\r\n if (getFieldValue(storedFields, 'email')) {\r\n email.value = getFieldValue(storedFields, 'email')\r\n }\r\n if (getFieldValue(storedFields, 'phone')) {\r\n phone.value = getFieldValue(storedFields, 'phone')\r\n }\r\n if (getFieldValue(storedFields, 'companyAddress')) {\r\n companyAddress.value = getFieldValue(\r\n storedFields,\r\n 'companyAddress'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'companyPostalCode')) {\r\n companyPostalCode.value = getFieldValue(\r\n storedFields,\r\n 'companyPostalCode'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'companyCity')) {\r\n companyCity.value = getFieldValue(\r\n storedFields,\r\n 'companyCity'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'companyWebsite')) {\r\n companyWebsite.value = getFieldValue(\r\n storedFields,\r\n 'companyWebsite'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'isAnonymous')) {\r\n isAnonymous.value = getFieldValue(\r\n storedFields,\r\n 'isAnonymous'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'taxDeduction')) {\r\n taxDeduction.value = getFieldValue(\r\n storedFields,\r\n 'taxDeduction'\r\n )\r\n }\r\n if (getFieldValue(storedFields, 'cvr')) {\r\n cvr.value = getFieldValue(storedFields, 'cvr')\r\n }\r\n }\r\n\r\n validateField('firstName', firstName.value)\r\n validateField('cvr', cvr.value)\r\n validateField('taxDeduction', taxDeduction.value)\r\n validateField('isAnonymous', isAnonymous.value)\r\n validateField('companyWebsite', companyWebsite.value)\r\n validateField('companyAddress', companyAddress.value)\r\n validateField('companyPostalCode', companyPostalCode.value)\r\n validateField('companyCity', companyCity.value)\r\n validateField('phone', phone.value)\r\n validateField('email', email.value)\r\n validateField('lastName', lastName.value)\r\n validateField('companyName', companyName.value)\r\n })\r\n\r\n const showFirstNameErrorMessage = computed(() => {\r\n return !nameValidator(firstName.value) && props.displayInputError\r\n })\r\n\r\n const showLastNameErrorMessage = computed(() => {\r\n return !nameValidator(lastName.value) && props.displayInputError\r\n })\r\n\r\n const showEmailErrorMessage = computed(() => {\r\n return !emailValidator(email.value) && props.displayInputError\r\n })\r\n\r\n const showPhoneErrorMessage = computed(() => {\r\n return (\r\n phone.value !== '' &&\r\n props.displayInputError &&\r\n !phoneValidator(phone.value)\r\n )\r\n })\r\n\r\n const showCvrErrorMessage = computed(() => {\r\n return !cvrValidator(cvr.value) && props.displayInputError\r\n })\r\n\r\n const showCompanyNameErrorMessage = computed(() => {\r\n return (\r\n !nonEmptyStringValidator(companyName.value) &&\r\n props.displayInputError\r\n )\r\n })\r\n\r\n const showCompanyAddressErrorMessage = computed(() => {\r\n validateField('companyAddress', companyAddress.value)\r\n validateField('companyPostalCode', companyPostalCode.value)\r\n validateField('companyCity', companyCity.value)\r\n return (\r\n !addressValidator(companyAddress.value, companyPostalCode.value, companyCity.value) && \r\n props.displayInputError\r\n )\r\n })\r\n\r\n const setTaxDeduction = (value) => {\r\n taxDeduction.value = value\r\n validateField('taxDeduction', value)\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const addressValidator = (address, postalCode, city) => {\r\n return address && postalCode && city\r\n }\r\n\r\n const onFileChange = (e) => {\r\n const files = e.target.files\r\n companyLogo.value = files\r\n validateField('companyLogo', files)\r\n }\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n companyName,\r\n firstName,\r\n lastName,\r\n email,\r\n phone,\r\n companyAddress,\r\n companyPostalCode,\r\n companyCity,\r\n companyWebsite,\r\n companyLogo,\r\n isAnonymous,\r\n taxDeduction,\r\n cvr,\r\n basket,\r\n basketTotalPrice,\r\n showFirstNameErrorMessage,\r\n showLastNameErrorMessage,\r\n showEmailErrorMessage,\r\n showPhoneErrorMessage,\r\n showCvrErrorMessage,\r\n showCompanyNameErrorMessage,\r\n showCompanyAddressErrorMessage,\r\n stepModel,\r\n donationFor,\r\n onFileChange,\r\n setTaxDeduction,\r\n validateField,\r\n addressValidator\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationStepVirksomhed.vue?vue&type=template&id=52a281ea\"\nimport script from \"./StafetDonationStepVirksomhed.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationStepVirksomhed.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport StafetDonationStepPrivat from '../StafetDonationStepPrivat/StafetDonationStepPrivat.vue'\r\nimport StafetDonationStepVirksomhed from '../StafetDonationStepVirksomhed/StafetDonationStepVirksomhed.vue'\r\nimport { useStore } from 'vuex'\r\nimport { computed, onBeforeMount, ref } from 'vue'\r\n\r\nexport default {\r\n name: 'StafetDonationStepTwo',\r\n components: {\r\n StafetDonationStepPrivat,\r\n StafetDonationStepVirksomhed\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const componentName = ref('')\r\n\r\n const userInputs = computed(() => {\r\n return store.state.donation.userInputs\r\n })\r\n\r\n onBeforeMount(() => {\r\n const donationType = userInputs.value.find(\r\n (item) => item.name === 'type'\r\n )\r\n\r\n if (donationType) {\r\n switch (donationType.value) {\r\n case 'Privat':\r\n componentName.value = 'StafetDonationStepPrivat'\r\n break\r\n case 'Virksomhed':\r\n componentName.value = 'StafetDonationStepVirksomhed'\r\n break\r\n default:\r\n if (props.previousStepCallback) {\r\n props.previousStepCallback()\r\n }\r\n }\r\n }\r\n })\r\n\r\n return {\r\n componentName\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationStepTwo.vue?vue&type=template&id=2568157d\"\nimport script from \"./StafetDonationStepTwo.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationStepTwo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default [\r\n {\r\n hidden: false,\r\n step: 1,\r\n name: 'StafetDonationStepOne',\r\n label: 'formStepLabel1',\r\n completed: false\r\n },\r\n {\r\n hidden: false,\r\n step: 2,\r\n name: 'StafetDonationStepTwo',\r\n label: 'formStepLabel2',\r\n completed: false\r\n },\r\n {\r\n hidden: true,\r\n step: 3,\r\n name: 'FormStepSubmitting',\r\n completed: false\r\n }\r\n]\r\n","import StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport StafetDonationStepOne from '../StafetDonationStepOne/StafetDonationStepOne.vue'\r\nimport StafetDonationStepTwo from '../StafetDonationStepTwo/StafetDonationStepTwo.vue'\r\nimport { useStore } from 'vuex'\r\nimport { computed, onMounted, ref } from 'vue'\r\nimport mapStafetHeaderSteps from 'foundation/js/stafet/mapStafetHeaderSteps'\r\nimport getCommonComputedFields from 'foundation/js/stafet/getCommonComputedFields'\r\nimport FormStepSubmitting from '../FormStepSubmitting/FormStepSubmitting.vue'\r\nimport stepsConfig from './config/stepsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport updateBasket from './methods/updateBasket'\r\n\r\nexport default {\r\n name: 'StafetDonationFlow',\r\n components: {\r\n StafetHeader,\r\n StafetDonationStepOne,\r\n StafetDonationStepTwo,\r\n FormStepSubmitting\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n holdList: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n holdId: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n deltagerId: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n minimumDonationAmount: {\r\n type: Number,\r\n required: false,\r\n default: 50\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections[\r\n 'SFLSupportWithDonationLabels'\r\n ]\r\n })\r\n\r\n // For testing purposes, making sure isFormUnavailable is truthy\r\n const isFormUnavailable = ref(props.formUnavailable ? props.formUnavailable : true)\r\n\r\n const headerSteps = computed(() => {\r\n return mapStafetHeaderSteps(\r\n steps.value.slice(0, steps.value.length - 1),\r\n currentStep.value,\r\n labels.value\r\n )\r\n })\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.donation.isSubmitting\r\n })\r\n\r\n onMounted(() => {\r\n store.dispatch('donation/stafetId', { stafetId: props.stafetId })\r\n store.dispatch('donation/steps', {\r\n steps: stepsConfig\r\n })\r\n\r\n store.dispatch('donation/donationFor', {\r\n donationFor:\r\n props.deltagerId !== ''\r\n ? 'participant'\r\n : props.holdId\r\n ? 'team'\r\n : 'none'\r\n })\r\n\r\n store.dispatch('donation/donationTeam', {\r\n team: props.holdId\r\n })\r\n store.dispatch('donation/donationParticipant', {\r\n participant: props.deltagerId\r\n })\r\n })\r\n\r\n const { userInputs, steps, currentStep, currentStepName } =\r\n getCommonComputedFields(store.state.donation)\r\n\r\n const handleStepCompleted = () => {\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = true\r\n\r\n store.dispatch('donation/steps', {\r\n steps: steps.value\r\n })\r\n\r\n const unCompletedSteps = steps.value.filter(\r\n (item) => !item.completed\r\n )\r\n\r\n if (unCompletedSteps.length > 0) {\r\n store.dispatch('donation/currentStep', {\r\n step: unCompletedSteps[0].step\r\n })\r\n }\r\n }\r\n \r\n \r\n const nextStepCallback = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.dependentField) {\r\n const dependentField = fields.find(\r\n (item) => item.name === field.dependentField\r\n );\r\n \r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value;\r\n }\r\n }\r\n fieldValidator(field);\r\n });\r\n \r\n const isStepValid = fields.every((field) => field.isValid);\r\n if (isStepValid) {\r\n displayInputError.value = false;\r\n handleStepCompleted();\r\n store.dispatch('donation/userInputs', { inputs: fields });\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION,\r\n fields\r\n );\r\n updateBasket(userInputs.value, labels.value, store);\r\n scrollTo(0, 0);\r\n } else {\r\n displayInputError.value = true;\r\n scrollToFirstError()\r\n }\r\n };\r\n \r\n\r\n const previousStepCallback = (fields) => {\r\n if (currentStep.value > 1) {\r\n store.dispatch('donation/currentStep', {\r\n step: currentStep.value - 1\r\n })\r\n \r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = false\r\n \r\n store.dispatch('donation/steps', {\r\n steps: steps.value\r\n })\r\n\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION,\r\n fields\r\n )\r\n store.dispatch('donation/userInputs', { inputs: fields })\r\n scrollTo(0, 0) \r\n }\r\n }\r\n\r\n const submitCallback = async () => {\r\n // it expects a object with ok: true or false\r\n const response = await store.dispatch('donation/donationSubmit')\r\n return response\r\n }\r\n\r\n return {\r\n isFormUnavailable,\r\n headerSteps,\r\n labels,\r\n currentStepName,\r\n displayInputError,\r\n isSubmitting,\r\n nextStepCallback,\r\n previousStepCallback,\r\n submitCallback\r\n }\r\n }\r\n}\r\n","export default function (userInputs, labels, store) {\r\n const basket = []\r\n let label = ''\r\n\r\n const donationFor = store.state.donation.donationFor\r\n\r\n const donationAmount = userInputs.find((item) => item.name === 'amount')\r\n\r\n switch (donationFor) {\r\n case 'team':\r\n label = labels.yourInformationTotalDonationHold\r\n break\r\n case 'participant':\r\n label = labels.yourInformationTotalDonationDeltager\r\n break\r\n case 'stafet':\r\n label = labels.yourInformationTotalDonationStafet\r\n break\r\n default:\r\n label = labels.yourInformationTotalDonationStafet\r\n break\r\n }\r\n\r\n basket.push({\r\n label: label,\r\n amount: '',\r\n price: `${donationAmount ? donationAmount.value : 0} kr.`,\r\n intPrice: donationAmount.value\r\n })\r\n\r\n store.dispatch('donation/basket', { basket: basket })\r\n}\r\n","import { render } from \"./StafetDonationFlow.vue?vue&type=template&id=5a8d7fa6\"\nimport script from \"./StafetDonationFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import { computed, onBeforeMount, ref } from 'vue'\r\nimport SupportSelector from '../SupportSelector/SupportSelector.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport _stafetCommonStepsProps from '../../foundation/js/configurations/_stafetCommonStepsProps'\r\nimport { useStore } from 'vuex'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDonationTaendLysStepOne',\r\n components: {\r\n SupportSelector,\r\n FormInputTextField,\r\n FormInputDropdown,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const donationAmount = ref(0)\r\n const amount = ref(props.lysposeMinimumAmount)\r\n const supportSelector = ref({})\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION\r\n )\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'donationAmount')) {\r\n donationAmount.value = getFieldValue(\r\n storedFields,\r\n 'donationAmount'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'amount')) {\r\n amount.value = getFieldValue(storedFields, 'amount')\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationFor')) {\r\n store.dispatch('donation/donationFor', {\r\n donationFor: getFieldValue(storedFields, 'donationFor')\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationTeam')) {\r\n store.dispatch('donation/donationTeam', {\r\n team: getFieldValue(\r\n storedFields,\r\n 'donationTeam'\r\n ).toString()\r\n })\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationParticipant')) {\r\n store.dispatch('donation/donationParticipant', {\r\n participant: getFieldValue(\r\n storedFields,\r\n 'donationParticipant'\r\n )\r\n })\r\n }\r\n }\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return [\r\n {\r\n name: 'donationAmount',\r\n value: parseInt(donationAmount.value),\r\n isValid: false,\r\n validator: (value) => {\r\n return value > 0\r\n }\r\n },\r\n {\r\n name: 'amount',\r\n value: parseInt(amount.value),\r\n isValid: false,\r\n validator: (value) => {\r\n return donationAmount.value > 0\r\n ? value >= props.lysposeMinimumAmount\r\n : true\r\n }\r\n },\r\n {\r\n name: 'donationFor',\r\n value: supportSelector.value.donationFor,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'donationTeam',\r\n value: supportSelector.value.donationTeam,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n },\r\n {\r\n name: 'donationParticipant',\r\n value: supportSelector.value.donationParticipant,\r\n isValid: supportSelector.value.isValid,\r\n validator: () => {\r\n return supportSelector.value.isValid\r\n }\r\n }\r\n ]\r\n })\r\n\r\n const updateSupportSelector = (data) => {\r\n supportSelector.value = data\r\n }\r\n\r\n const setDonationPerLightBag = (value) => {\r\n amount.value = value\r\n }\r\n\r\n const showDonationAmoutErrorMessage = computed(() => {\r\n return props.displayInputError && donationAmount.value <= 0\r\n })\r\n\r\n const showDonationPerLightBagErrorMessage = computed(() => {\r\n return (\r\n props.displayInputError &&\r\n amount.value < props.lysposeMinimumAmount\r\n )\r\n })\r\n\r\n return {\r\n donationAmount,\r\n amount,\r\n stepModel,\r\n updateSupportSelector,\r\n setDonationPerLightBag,\r\n showDonationAmoutErrorMessage,\r\n showDonationPerLightBagErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationTaendLysStepOne.vue?vue&type=template&id=42684492\"\nimport script from \"./StafetDonationTaendLysStepOne.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationTaendLysStepOne.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, onBeforeMount, ref } from 'vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport FormInputDropdown from '../FormInputDropdown/FormInputDropdown.vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputTextarea from '../FormInputTextarea/FormInputTextarea.vue'\r\nimport StafetLysPoserList from '../StafetLysPoserList/StafetLysPoserList.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport _stafetCommonStepsProps from '../../foundation/js/configurations/_stafetCommonStepsProps'\r\nimport { useStore } from 'vuex'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\n\r\nexport default {\r\n name: 'StafetDonationTaendLysStepTwo',\r\n components: {\r\n FormCheckbox,\r\n FormInputDropdown,\r\n FormInputTextField,\r\n FormInputTextarea,\r\n StafetLysPoserList,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const donationPerLightBag = ref(props.lysposeMinimumAmount)\r\n const isLysposerDedicated = ref(false)\r\n const addPersonalNote = ref(false)\r\n const lysposeSubmissionModels = ref([])\r\n const lightBagMeta = ref({})\r\n\r\n const donationAmount = computed(() => {\r\n const userInputs = store.state.donation.userInputs\r\n const amount = userInputs.find(\r\n (input) => input.name === 'donationAmount'\r\n )\r\n return amount ? amount.value : 0\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION\r\n )\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'lysposeSubmissionModels')) {\r\n lysposeSubmissionModels.value = getFieldValue(\r\n storedFields,\r\n 'lysposeSubmissionModels'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'isLysposerDedicated')) {\r\n isLysposerDedicated.value = getFieldValue(\r\n storedFields,\r\n 'isLysposerDedicated'\r\n )\r\n }\r\n\r\n if (getFieldValue(storedFields, 'addPersonalNote')) {\r\n addPersonalNote.value = getFieldValue(\r\n storedFields,\r\n 'addPersonalNote'\r\n )\r\n }\r\n }\r\n })\r\n\r\n const StafetFlowLightBagsMetaListLabels = {\r\n isLysposeDedicatedCheckboxLabel:\r\n props.labels.taendEtLysCustomizeLysposeBoolDedicatedLabel,\r\n personalNoteCheckboxLabel:\r\n props.labels.taendEtLysCustomizeLysposeBoolOwnNoteLabel,\r\n personalizeLightBagsTitle: props.labels.taendEtLysLysposeTitle,\r\n lightDedicatedToTextLabel:\r\n props.labels.taendEtLysLysposeDedicatedToLabel,\r\n lightDedicatedToErrorMessage:\r\n props.labels.taendEtLysLysposeDedicatedToErrorMessage,\r\n lightDedicatedToHelpTextLabel:\r\n props.labels.taendEtLysLysposeDedicatedToSubtext,\r\n personalNoteTextLabel:\r\n props.labels.taendEtLysLysposePersonalNoteLabel,\r\n personalNoteHelpTextLabel:\r\n props.labels.taendEtLysLysposePersonalNoteSubtext,\r\n personalNoteErrorMessage:\r\n props.labels.taendEtLysLysposePersonalNoteErrorMessage,\r\n dedicationTypeTextLabel:\r\n props.labels.taendEtLysLysposeDedicatedTypeLabel,\r\n dedicationTypePlaceholder:\r\n props.labels.taendEtLysLysposeDedicatedTypePlaceholder,\r\n dedicationTypeErrorMessage:\r\n props.labels.taendEtLysLysposeDedicatedTypeErrorMessage,\r\n inMemoryOf: props.labels.taendEtLysLysposeDedicatedTypeInMemoryOf,\r\n inSupportOf: props.labels.taendEtLysLysposeDedicatedTypeInSupportOf\r\n }\r\n\r\n const stepModel = computed(() => {\r\n const array = []\r\n\r\n if (donationAmount.value > 0) {\r\n array.push({\r\n name: 'lysposeSubmissionModels',\r\n value: lightBagMeta.value.donationItems,\r\n isValid: lightBagMeta.value.isValid,\r\n validator: () => {\r\n return lightBagMeta.value.isValid\r\n }\r\n })\r\n\r\n array.push({\r\n name: 'isLysposerDedicated',\r\n value: lightBagMeta.value.isLysposerDedicated,\r\n isValid: true,\r\n validator: () => isBoolean\r\n })\r\n\r\n array.push({\r\n name: 'addPersonalNote',\r\n value: lightBagMeta.value.addPersonalNote,\r\n isValid: true,\r\n validator: () => isBoolean\r\n })\r\n }\r\n\r\n return array\r\n })\r\n\r\n const updateLightBagMeta = (data) => {\r\n lightBagMeta.value = data\r\n }\r\n\r\n return {\r\n donationPerLightBag,\r\n isLysposerDedicated,\r\n addPersonalNote,\r\n lysposeSubmissionModels,\r\n donationAmount,\r\n lightBagMeta,\r\n stepModel,\r\n StafetFlowLightBagsMetaListLabels,\r\n updateLightBagMeta\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationTaendLysStepTwo.vue?vue&type=template&id=cc66a5e6\"\nimport script from \"./StafetDonationTaendLysStepTwo.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationTaendLysStepTwo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\n\r\nexport default [\r\n {\r\n name: 'firstName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'lastName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'email',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'isAnonymous',\r\n value: false,\r\n isValid: true,\r\n validator: isBoolean\r\n }\r\n]\r\n","import { useStore } from 'vuex'\r\nimport _stafetCommonStepsProps from '../../foundation/js/configurations/_stafetCommonStepsProps'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport StafetPayment from '../StafetPayment/StafetPayment.vue'\r\nimport { ref, computed, onBeforeMount } from 'vue'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetDonationTaendLysStepThree',\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n StafetActions,\r\n StafetPayment\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const store = useStore()\r\n const gtmActive = !!window?.dataLayer?.find(\r\n (element) => element['gtm.start']\r\n ) // check if gtm is active \r\n\r\n const firstName = ref(props.userData?.firstName ?? '')\r\n const lastName = ref(props.userData?.lastName ?? '')\r\n const email = ref(props.userData?.email ?? '')\r\n const isAnonymous = ref(props.userData?.isAnonymous ?? false)\r\n\r\n const basket = computed(() => {\r\n return store.state.donation.basket\r\n })\r\n\r\n const basketTotalPrice = computed(() => {\r\n return store.state.donation.basketTotalPrice\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION\r\n )\r\n\r\n if (storedFields) {\r\n updateLocalRefs([\r\n {\r\n name: 'firstName',\r\n value:\r\n getFieldValue(storedFields, 'firstName') ??\r\n firstName.value\r\n },\r\n {\r\n name: 'lastName',\r\n value:\r\n getFieldValue(storedFields, 'lastName') ??\r\n lastName.value\r\n },\r\n {\r\n name: 'email',\r\n value:\r\n getFieldValue(storedFields, 'email') ?? email.value\r\n },\r\n {\r\n name: 'isAnonymous',\r\n value:\r\n getFieldValue(storedFields, 'isAnonymous') ??\r\n isAnonymous.value\r\n }\r\n ])\r\n }\r\n\r\n if (!gtmActive) return\r\n const orderId = new URLSearchParams(document.location.search).get(\r\n 'orderId'\r\n )\r\n if (orderId)\r\n store.dispatch('main/getTrackingData', { orderId })\r\n })\r\n\r\n const updateLocalRefs = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.value === undefined || field.value === null) return\r\n fieldsConfig.find((item) => item.name === field.name).value =\r\n field.value\r\n switch (field.name) {\r\n case 'firstName':\r\n firstName.value = field.value\r\n return\r\n case 'lastName':\r\n lastName.value = field.value\r\n return\r\n case 'email':\r\n email.value = field.value\r\n return\r\n case 'isAnonymous':\r\n isAnonymous.value = field.value\r\n return\r\n default:\r\n return\r\n }\r\n })\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const showFirstNameErrorMessage = computed(() => {\r\n return !nameValidator(firstName.value) && props.displayInputError\r\n })\r\n\r\n const showLastNameErrorMessage = computed(() => {\r\n return !nameValidator(lastName.value) && props.displayInputError\r\n })\r\n\r\n const showEmailErrorMessage = computed(() => {\r\n return !emailValidator(email.value) && props.displayInputError\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n firstName,\r\n lastName,\r\n email,\r\n isAnonymous,\r\n basket,\r\n basketTotalPrice,\r\n stepModel,\r\n validateField,\r\n showFirstNameErrorMessage,\r\n showLastNameErrorMessage,\r\n showEmailErrorMessage\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetDonationTaendLysStepThree.vue?vue&type=template&id=7aa64a5a\"\nimport script from \"./StafetDonationTaendLysStepThree.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationTaendLysStepThree.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default [\r\n {\r\n hidden: false, // hidden - if true, the step will not be shown steps header\r\n step: 1, // order - manual number. The order of the array determins the steporder\r\n name: 'StafetDonationTaendLysStepOne', // stepname. Must correspond to a component declared under \"components\"\r\n label: 'formStepLabel1',\r\n completed: false // are all fields valid?\r\n },\r\n {\r\n hidden: false, // hidden - if true, the step will not be shown steps header\r\n step: 2, // order - manual number. The order of the array determins the steporder\r\n name: 'StafetDonationTaendLysStepTwo', // stepname. Must correspond to a component declared under \"components\"\r\n label: 'formStepLabel2',\r\n completed: false // are all fields valid?\r\n },\r\n {\r\n hidden: false, // hidden - if true, the step will not be shown steps header\r\n step: 3, // order - manual number. The order of the array determins the steporder\r\n name: 'StafetDonationTaendLysStepThree', // stepname. Must correspond to a component declared under \"components\"\r\n label: 'formStepLabel3',\r\n completed: false // are all fields valid?\r\n },\r\n {\r\n hidden: true, // hidden - if true, the step will not be shown steps header\r\n step: 4, // order - manual number. The order of the array determins the steporder\r\n name: 'FormStepSubmitting', // stepname. Must correspond to a component declared under \"components\"\r\n label: 'submitErrorTitle',\r\n completed: false // are all fields valid?\r\n }\r\n]\r\n","import { computed, onMounted, ref } from 'vue'\r\nimport StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport StafetDonationTaendLysStepOne from '../StafetDonationTaendLysStepOne/StafetDonationTaendLysStepOne.vue'\r\nimport StafetDonationTaendLysStepTwo from '../StafetDonationTaendLysStepTwo/StafetDonationTaendLysStepTwo.vue'\r\nimport StafetDonationTaendLysStepThree from '../StafetDonationTaendLysStepThree/StafetDonationTaendLysStepThree.vue'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport FormStepSubmitting from '../FormStepSubmitting/FormStepSubmitting.vue'\r\nimport { useStore } from 'vuex'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport mapStafetHeaderSteps from 'foundation/js/stafet/mapStafetHeaderSteps'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport stepsConfig from './config/stepsConfig'\r\nimport getCommonComputedFields from 'foundation/js/stafet/getCommonComputedFields'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport updateBasket from './methods/updateBasket'\r\n\r\nexport default {\r\n name: 'StafetDonationTaendLysFlow',\r\n components: {\r\n StafetHeader,\r\n StafetDonationTaendLysStepOne,\r\n StafetDonationTaendLysStepTwo,\r\n StafetDonationTaendLysStepThree,\r\n FormStepSubmitting\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n holdList: {\r\n type: Array,\r\n required: false,\r\n default: []\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n lysposeMinimumAmount: {\r\n type: Number,\r\n required: false,\r\n default: 50\r\n },\r\n holdId: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n deltagerId: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLSupportWithLysposeLabels']\r\n })\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.donation.isSubmitting\r\n })\r\n\r\n const headerSteps = computed(() => {\r\n return mapStafetHeaderSteps(\r\n steps.value,\r\n currentStep.value,\r\n labels.value\r\n )\r\n })\r\n\r\n onMounted(() => {\r\n store.dispatch('donation/stafetId', { stafetId: props.stafetId })\r\n store.dispatch('donation/steps', {\r\n steps: stepsConfig\r\n })\r\n\r\n store.dispatch('donation/donationFor', {\r\n donationFor:\r\n props.deltagerId !== ''\r\n ? 'participant'\r\n : props.holdId\r\n ? 'team'\r\n : 'none'\r\n })\r\n store.dispatch('donation/donationTeam', {\r\n team: props.holdId\r\n })\r\n store.dispatch('donation/donationParticipant', {\r\n participant: props.deltagerId\r\n })\r\n })\r\n\r\n const { userInputs, steps, currentStep, currentStepName } =\r\n getCommonComputedFields(store.state.donation)\r\n\r\n const handleStepCompleted = () => {\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = true\r\n\r\n store.dispatch('donation/steps', {\r\n steps: steps.value\r\n })\r\n\r\n const unCompletedSteps = steps.value.filter(\r\n (item) => !item.completed\r\n )\r\n\r\n if (unCompletedSteps.length > 0) {\r\n store.dispatch('donation/currentStep', {\r\n step: unCompletedSteps[0].step\r\n })\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n const nextStepCallback = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.dependentField) {\r\n const dependentField = fields.find(\r\n (item) => item.name === field.dependentField\r\n );\r\n \r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value\r\n }\r\n }\r\n fieldValidator(field)\r\n });\r\n \r\n const isStepValid = fields.every((field) => field.isValid)\r\n \r\n if (isStepValid) {\r\n displayInputError.value = false\r\n handleStepCompleted();\r\n store.dispatch('donation/userInputs', { inputs: fields })\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION,\r\n fields\r\n );\r\n updateBasket(userInputs.value, labels.value, store)\r\n scrollTo(0, 0); \r\n } else {\r\n displayInputError.value = true\r\n scrollToFirstError()\r\n }\r\n };\r\n \r\n \r\n\r\n const previousStepCallback = (fields) => {\r\n if (currentStep.value > 1) {\r\n store.dispatch('donation/currentStep', {\r\n step: currentStep.value - 1\r\n })\r\n\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = false\r\n\r\n store.dispatch('donation/steps', {\r\n steps: steps.value\r\n })\r\n\r\n store.dispatch('donation/userInputs', { inputs: fields })\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_DONATION,\r\n fields\r\n )\r\n scrollTo(0, 0) \r\n }\r\n }\r\n\r\n const submitCallback = async () => {\r\n // it expects a object with ok: true or false\r\n const response = await store.dispatch(\r\n 'donation/donationStotLysSubmit'\r\n )\r\n return response\r\n }\r\n\r\n return {\r\n headerSteps,\r\n labels,\r\n currentStepName,\r\n displayInputError,\r\n isSubmitting,\r\n nextStepCallback,\r\n previousStepCallback,\r\n submitCallback\r\n }\r\n }\r\n}\r\n","export default function (userInputs, labels, store) {\r\n const basket = []\r\n const donationAmount = userInputs.find(\r\n (item) => item.name === 'donationAmount'\r\n )\r\n const amount = userInputs.find((item) => item.name === 'amount')\r\n\r\n if (donationAmount && donationAmount.value && amount && amount.value) {\r\n basket.push({\r\n label: labels.yourInformationTotalTaendteLysLabel,\r\n amount: `${donationAmount.value} ${labels.taendEtLysUnitLabel} (á ${amount.value} kr.)`,\r\n price: `${donationAmount.value * amount.value} kr.`,\r\n intPrice: donationAmount.value * amount.value\r\n })\r\n }\r\n\r\n store.dispatch('donation/basket', { basket: basket })\r\n}\r\n","import { render } from \"./StafetDonationTaendLysFlow.vue?vue&type=template&id=e967e27e\"\nimport script from \"./StafetDonationTaendLysFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetDonationTaendLysFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\n\r\nexport default [\r\n {\r\n name: 'teamName',\r\n value: '',\r\n isValid: false,\r\n validator: nonEmptyStringValidator\r\n },\r\n {\r\n name: 'donationGoal',\r\n value: 0,\r\n isValid: false,\r\n validator: (value) => value > 0\r\n },\r\n {\r\n name: 'logo',\r\n value: null,\r\n isValid: false,\r\n validator: () => true\r\n },\r\n {\r\n name: 'description',\r\n value: '',\r\n isValid: false,\r\n validator: (value) => value.length <= 250\r\n },\r\n {\r\n name: 'slogan',\r\n value: '',\r\n isValid: false,\r\n validator: (value) => value.length <= 100\r\n }\r\n]\r\n","import { computed, onBeforeMount, ref } from 'vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputTextarea from '../FormInputTextarea/FormInputTextarea.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport nonEmptyStringValidator from 'foundation/js/inputValidators/nonEmptyStringValidator'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetOpretHoldStepOne',\r\n components: {\r\n FormInputTextField,\r\n FormInputTextarea,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const teamName = ref('')\r\n const donationGoal = ref(0)\r\n const logo = ref(null)\r\n const description = ref('')\r\n const slogan = ref('')\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_CREATE_A_TEAM\r\n )\r\n\r\n if (props.holdData) {\r\n if (props.holdData.teamName) {\r\n teamName.value = props.holdData.teamName\r\n validateField('teamName', teamName.value)\r\n }\r\n\r\n if (props.holdData.donationGoal) {\r\n donationGoal.value = props.holdData.donationGoal\r\n validateField('donationGoal', donationGoal.value)\r\n }\r\n\r\n if (props.holdData.description) {\r\n description.value = props.holdData.description\r\n validateField('description', description.value)\r\n }\r\n\r\n if (props.holdData.slogan) {\r\n slogan.value = props.holdData.slogan\r\n validateField('slogan', slogan.value)\r\n }\r\n }\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'teamName')) {\r\n teamName.value = getFieldValue(storedFields, 'teamName')\r\n validateField('teamName', teamName.value)\r\n }\r\n\r\n if (getFieldValue(storedFields, 'donationGoal')) {\r\n donationGoal.value = getFieldValue(\r\n storedFields,\r\n 'donationGoal'\r\n )\r\n validateField('donationGoal', donationGoal.value)\r\n }\r\n\r\n if (getFieldValue(storedFields, 'description')) {\r\n description.value = getFieldValue(\r\n storedFields,\r\n 'description'\r\n )\r\n validateField('description', description.value)\r\n }\r\n\r\n if (getFieldValue(storedFields, 'slogan')) {\r\n slogan.value = getFieldValue(storedFields, 'slogan')\r\n validateField('slogan', slogan.value)\r\n }\r\n }\r\n })\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n \r\n const onFileChange = (e) => {\r\n const files = e.target.files\r\n logo.value = files\r\n validateField('logo', files)\r\n }\r\n \r\n const showDescriptionErrorMessage = computed(() => {\r\n const field = fieldsConfig.find((field) => field.name === \"description\")\r\n return !field.validator(description.value) && props.displayInputError\r\n })\r\n\r\n const showTeamNameErrorMessage = computed(() => {\r\n return (\r\n !nonEmptyStringValidator(teamName.value) &&\r\n props.displayInputError\r\n )\r\n })\r\n\r\n const showDonationGoalErrorMessage = computed(() => {\r\n return donationGoal.value <= 0 && props.displayInputError\r\n })\r\n\r\n const showSloganErrorMessage = computed(() => {\r\n const field = fieldsConfig.find((field) => field.name === \"slogan\")\r\n return !field.validator(slogan.value) && props.displayInputError\r\n })\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n teamName,\r\n donationGoal,\r\n logo,\r\n description,\r\n slogan,\r\n showTeamNameErrorMessage,\r\n showDonationGoalErrorMessage,\r\n showDescriptionErrorMessage,\r\n showSloganErrorMessage,\r\n stepModel,\r\n validateField,\r\n onFileChange\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetOpretHoldStepOne.vue?vue&type=template&id=20e5d8e2\"\nimport script from \"./StafetOpretHoldStepOne.vue?vue&type=script&lang=js\"\nexport * from \"./StafetOpretHoldStepOne.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default [\r\n {\r\n hidden: false,\r\n step: 1,\r\n name: 'StafetOpretHoldStepOne',\r\n label: 'formStepLabel1',\r\n completed: false\r\n },\r\n {\r\n hidden: true, // hidden - if true, the step will not be shown steps header\r\n step: 2, // order - manual number. The order of the array determins the steporder\r\n name: 'FormStepSubmitting', // stepname. Must correspond to a component declared under \"components\"\r\n label: 'submitErrorTitle',\r\n completed: false // are all fields valid?\r\n }\r\n]\r\n","import { useStore } from 'vuex'\r\nimport { computed, ref, onMounted } from 'vue'\r\nimport StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport StafetOpretHoldStepOne from '../StafetOpretHoldStepOne/StafetOpretHoldStepOne.vue'\r\nimport FormStepSubmitting from '../FormStepSubmitting/FormStepSubmitting.vue'\r\nimport mapStafetHeaderSteps from 'foundation/js/stafet/mapStafetHeaderSteps'\r\nimport getCommonComputedFields from 'foundation/js/stafet/getCommonComputedFields'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport stepsConfig from './config/stepsConfig'\r\n\r\nexport default {\r\n name: 'StafetEditHoldFlow',\r\n components: {\r\n StafetHeader,\r\n StafetOpretHoldStepOne,\r\n FormStepSubmitting\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true,\r\n default: null\r\n },\r\n holdList: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n holdData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n const holdKode = props.holdData.holdKode\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLCreateHoldLabels']\r\n })\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.stafet.isSubmitting\r\n })\r\n\r\n const headerSteps = computed(() => {\r\n return mapStafetHeaderSteps(\r\n steps.value,\r\n currentStep.value,\r\n labels.value\r\n )\r\n })\r\n\r\n onMounted(() => {\r\n store.dispatch('stafet/stafetId', { stafetId: props.stafetId })\r\n store.dispatch('stafet/steps', {\r\n steps: stepsConfig\r\n })\r\n })\r\n\r\n const { userInputs, steps, currentStep, currentStepName } =\r\n getCommonComputedFields(store.state.stafet)\r\n\r\n const handleStepCompleted = () => {\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = true\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n\r\n const unCompletedSteps = steps.value.filter(\r\n (item) => !item.completed\r\n )\r\n\r\n if (unCompletedSteps.length > 0) {\r\n store.dispatch('stafet/currentStep', {\r\n step: unCompletedSteps[0].step\r\n })\r\n }\r\n }\r\n const nextStepCallback = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.dependentField) {\r\n const dependentField = fields.find(\r\n (item) => item.name === field.dependentField\r\n )\r\n\r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value\r\n }\r\n }\r\n fieldValidator(field)\r\n })\r\n\r\n const isStepValid = fields.every((field) => field.isValid)\r\n if (isStepValid) {\r\n displayInputError.value = false\r\n handleStepCompleted()\r\n store.dispatch('stafet/userInputs', { inputs: fields })\r\n\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_CREATE_A_TEAM,\r\n fields\r\n )\r\n scrollTo(0, 0) \r\n } else {\r\n displayInputError.value = true\r\n scrollToFirstError()\r\n }\r\n }\r\n\r\n const previousStepCallback = () => {\r\n if (currentStep.value > 1) {\r\n store.dispatch('stafet/currentStep', {\r\n step: currentStep.value - 1\r\n })\r\n\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = false\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n scrollTo(0, 0) \r\n }\r\n }\r\n\r\n const submitCallback = async () => {\r\n // it expects a object with ok: true or false\r\n const response = await store.dispatch('stafet/editTeamSubmit', { stafetKode: props.stafetId, holdKode })\r\n return response\r\n }\r\n\r\n return {\r\n displayInputError,\r\n labels,\r\n headerSteps,\r\n currentStepName,\r\n isSubmitting,\r\n nextStepCallback,\r\n previousStepCallback,\r\n submitCallback\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetEditHoldFlow.vue?vue&type=template&id=5ef93bd0\"\nimport script from \"./StafetEditHoldFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetEditHoldFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","import emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport isBoolean from 'foundation/js/inputValidators/isBoolean'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport phoneValidator from 'foundation/js/inputValidators/phoneValidator'\r\n\r\nexport default [\r\n {\r\n name: 'firstName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'lastName',\r\n value: '',\r\n isValid: false,\r\n validator: nameValidator\r\n },\r\n {\r\n name: 'email',\r\n value: '',\r\n isValid: false,\r\n validator: emailValidator\r\n },\r\n {\r\n name: 'phone',\r\n value: '',\r\n isValid: false,\r\n validator: (value) => value === '' || phoneValidator(value)\r\n },\r\n {\r\n name: 'consent',\r\n value: false,\r\n isValid: false,\r\n validator: (value) => value === true\r\n },\r\n {\r\n name: 'newsletter',\r\n value: false,\r\n isValid: false,\r\n validator: isBoolean\r\n }\r\n]\r\n","import _stafetCommonStepsProps from 'foundation/js/configurations/_stafetCommonStepsProps'\r\nimport emailValidator from 'foundation/js/inputValidators/emailValidator'\r\nimport nameValidator from 'foundation/js/inputValidators/nameValidator'\r\nimport phoneValidator from 'foundation/js/inputValidators/phoneValidator'\r\nimport { computed, onBeforeMount, ref } from 'vue'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\nimport StafetActions from '../StafetActions/StafetActions.vue'\r\nimport fieldsConfig from './config/fieldsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\nimport getItemFromStorage from 'foundation/js/sessionStorageWrapper/getItemFromStorage'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport getFieldValue from 'foundation/js/stafet/getFieldValue'\r\n\r\nexport default {\r\n name: 'StafetOpretHoldStepTwo',\r\n components: {\r\n FormInputTextField,\r\n FormCheckbox,\r\n StafetActions\r\n },\r\n props: _stafetCommonStepsProps,\r\n setup(props) {\r\n const firstName = ref('')\r\n const lastName = ref('')\r\n const email = ref('')\r\n const phone = ref('')\r\n const consent = ref(false)\r\n const newsletter = ref(false)\r\n const readOnly = ref({\r\n firstName: false,\r\n lastName: false,\r\n email: false,\r\n phone: false,\r\n consent: false,\r\n newsletter: false\r\n })\r\n\r\n onBeforeMount(() => {\r\n const storedFields = getItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_CREATE_A_TEAM\r\n )\r\n\r\n if (props.userData) {\r\n\r\n if (props.userData.firstName) {\r\n firstName.value = props.userData.firstName\r\n validateField('firstName', firstName.value)\r\n readOnly.value.firstName = true\r\n disableValidation('firstName')\r\n }\r\n\r\n if (props.userData.lastName) {\r\n lastName.value = props.userData.lastName\r\n validateField('lastName', lastName.value)\r\n readOnly.value.lastName = true\r\n disableValidation('lastName')\r\n }\r\n\r\n if (props.userData.email) {\r\n email.value = props.userData.email\r\n validateField('email', email.value)\r\n readOnly.value.email = true\r\n disableValidation('email')\r\n }\r\n\r\n if (props.userData.phoneNumber) {\r\n phone.value = props.userData.phoneNumber\r\n validateField('phone', phone.value)\r\n readOnly.value.phone = true\r\n disableValidation('phone')\r\n }\r\n \r\n if (props.userData.consentBool) {\r\n consent.value = props.userData.consentBool\r\n validateField('consent', consent.value)\r\n readOnly.value.consent = true\r\n disableValidation('consent')\r\n }\r\n \r\n if (props.userData.newsLetterBool) {\r\n newsletter.value = props.userData.newsLetterBool\r\n validateField('newsletter', newsletter.value)\r\n readOnly.value.newsletter = true\r\n disableValidation('newsletter')\r\n }\r\n }\r\n\r\n if (storedFields) {\r\n if (getFieldValue(storedFields, 'phone')) {\r\n phone.value = getFieldValue(storedFields, 'phone')\r\n validateField('phone', phone.value)\r\n }\r\n\r\n if (getFieldValue(storedFields, 'consent')) {\r\n consent.value = getFieldValue(storedFields, 'consent')\r\n validateField('consent', consent.value)\r\n }\r\n\r\n if (getFieldValue(storedFields, 'newsletter')) {\r\n newsletter.value = getFieldValue(storedFields, 'newsletter')\r\n validateField('newsletter', newsletter.value)\r\n }\r\n }\r\n })\r\n\r\n const disableValidation = (fieldName) => {\r\n const field = fieldsConfig.find(field => field.name === fieldName)\r\n field.validator = _ => true\r\n }\r\n\r\n const validateField = (fieldName, value) => {\r\n fieldsConfig.find((item) => item.name === fieldName).value = value\r\n const field = fieldsConfig.find((field) => field.name === fieldName)\r\n if (field) {\r\n field.value = value\r\n fieldValidator(field)\r\n }\r\n }\r\n\r\n const showFirstNameErrorMessage = computed(() => showError('firstName', firstName.value))\r\n const showLastNameErrorMessage = computed(() => showError('lastName', lastName.value))\r\n const showEmailErrorMessage = computed(() => showError('email', email.value))\r\n const showPhoneErrorMessage = computed(() => showError('phone', phone.value))\r\n const showConsentErrorMessage = computed(() => showError('consent', consent.value))\r\n const showError = (fieldName, value) => {\r\n const field = fieldsConfig.find(field => field.name === fieldName)\r\n return !field.validator(value) && props.displayInputError\r\n }\r\n\r\n const stepModel = computed(() => {\r\n return fieldsConfig\r\n })\r\n\r\n return {\r\n firstName,\r\n lastName,\r\n email,\r\n phone,\r\n consent,\r\n newsletter,\r\n readOnly,\r\n showFirstNameErrorMessage,\r\n showLastNameErrorMessage,\r\n showEmailErrorMessage,\r\n showPhoneErrorMessage,\r\n showConsentErrorMessage,\r\n stepModel,\r\n validateField\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetOpretHoldStepTwo.vue?vue&type=template&id=feb3be92\"\nimport script from \"./StafetOpretHoldStepTwo.vue?vue&type=script&lang=js\"\nexport * from \"./StafetOpretHoldStepTwo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default [\r\n {\r\n hidden: false,\r\n step: 1,\r\n name: 'StafetOpretHoldStepOne',\r\n label: 'formStepLabel1',\r\n completed: false\r\n },\r\n {\r\n hidden: false,\r\n step: 2,\r\n name: 'StafetOpretHoldStepTwo',\r\n label: 'formStepLabel2',\r\n completed: false\r\n },\r\n {\r\n hidden: true, // hidden - if true, the step will not be shown steps header\r\n step: 3, // order - manual number. The order of the array determins the steporder\r\n name: 'FormStepSubmitting', // stepname. Must correspond to a component declared under \"components\"\r\n label: 'submitErrorTitle',\r\n completed: false // are all fields valid?\r\n }\r\n]\r\n","import { useStore } from 'vuex'\r\nimport { computed, ref, onMounted} from 'vue'\r\nimport StafetHeader from '../StafetHeader/StafetHeader.vue'\r\nimport StafetOpretHoldStepOne from '../StafetOpretHoldStepOne/StafetOpretHoldStepOne.vue'\r\nimport StafetOpretHoldStepTwo from '../StafetOpretHoldStepTwo/StafetOpretHoldStepTwo.vue'\r\nimport FormStepSubmitting from '../FormStepSubmitting/FormStepSubmitting.vue'\r\nimport getCommonComputedFields from 'foundation/js/stafet/getCommonComputedFields'\r\nimport mapStafetHeaderSteps from 'foundation/js/stafet/mapStafetHeaderSteps'\r\nimport sessionStorageIdentifierEnum from 'foundation/js/sessionStorageWrapper/sessionStorageIdentifierEnum'\r\nimport updateItemFromStorage from 'foundation/js/sessionStorageWrapper/updateItemFromStorage'\r\nimport { scrollToFirstError } from '../../foundation/js/inputValidators/scrollToFirstError'\r\nimport stepsConfig from './config/stepsConfig'\r\nimport fieldValidator from 'foundation/js/stafet/fieldValidator'\r\n\r\nexport default {\r\n name: 'StafetOpretHoldFlow',\r\n components: {\r\n StafetHeader,\r\n StafetOpretHoldStepOne,\r\n StafetOpretHoldStepTwo,\r\n FormStepSubmitting\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n required: true,\r\n default: null\r\n },\r\n holdList: {\r\n type: Array,\r\n required: true,\r\n default: []\r\n },\r\n holdData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n userData: {\r\n type: Object,\r\n required: false,\r\n default: {}\r\n },\r\n loggedIn: {\r\n type: Boolean,\r\n required: true,\r\n default: false\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const displayInputError = ref(false)\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLCreateHoldLabels']\r\n })\r\n\r\n const isSubmitting = computed(() => {\r\n return store.state.stafet.isSubmitting\r\n })\r\n\r\n const headerSteps = computed(() => {\r\n return mapStafetHeaderSteps(\r\n steps.value,\r\n currentStep.value,\r\n labels.value\r\n )\r\n })\r\n\r\n onMounted(() => {\r\n store.dispatch('stafet/stafetId', { stafetId: props.stafetId })\r\n store.dispatch('stafet/steps', {\r\n steps: stepsConfig\r\n })\r\n })\r\n\r\n const { userInputs, steps, currentStep, currentStepName } =\r\n getCommonComputedFields(store.state.stafet)\r\n\r\n const handleStepCompleted = () => {\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = true\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n\r\n const unCompletedSteps = steps.value.filter(\r\n (item) => !item.completed\r\n )\r\n\r\n if (unCompletedSteps.length > 0) {\r\n store.dispatch('stafet/currentStep', {\r\n step: unCompletedSteps[0].step\r\n })\r\n }\r\n }\r\n\r\n \r\n const nextStepCallback = (fields) => {\r\n fields.forEach((field) => {\r\n if (field.dependentField) {\r\n const dependentField = fields.find(\r\n (item) => item.name === field.dependentField\r\n )\r\n\r\n if (dependentField) {\r\n field.dependentFieldValue = dependentField.value\r\n }\r\n }\r\n fieldValidator(field)\r\n })\r\n\r\n const isStepValid = fields.every((field) => field.isValid)\r\n if (isStepValid) {\r\n displayInputError.value = false\r\n handleStepCompleted()\r\n store.dispatch('stafet/userInputs', { inputs: fields })\r\n\r\n updateItemFromStorage(\r\n sessionStorageIdentifierEnum.STAFET_CREATE_A_TEAM,\r\n fields\r\n )\r\n scrollTo(0, 0) \r\n } else {\r\n displayInputError.value = true\r\n scrollToFirstError()\r\n }\r\n }\r\n\r\n const previousStepCallback = () => {\r\n if (currentStep.value > 1) {\r\n store.dispatch('stafet/currentStep', {\r\n step: currentStep.value - 1\r\n })\r\n\r\n steps.value.find(\r\n (item) => item.step === currentStep.value\r\n ).completed = false\r\n\r\n store.dispatch('stafet/steps', {\r\n steps: steps.value\r\n })\r\n scrollTo(0, 0) \r\n }\r\n }\r\n\r\n const submitCallback = async () => {\r\n // it expects a object with ok: true or false\r\n const response = await store.dispatch('stafet/createTeamSubmit')\r\n return response\r\n }\r\n\r\n return {\r\n displayInputError,\r\n labels,\r\n headerSteps,\r\n currentStepName,\r\n isSubmitting,\r\n nextStepCallback,\r\n previousStepCallback,\r\n submitCallback\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetOpretHoldFlow.vue?vue&type=template&id=1ec41234\"\nimport script from \"./StafetOpretHoldFlow.vue?vue&type=script&lang=js\"\nexport * from \"./StafetOpretHoldFlow.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { computed, ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport FormInputTextField from '../FormInputTextField/FormInputTextField.vue'\r\nimport FormInputPhoneField from '../FormInputPhoneField/FormInputPhoneField.vue'\r\nimport FormInputEmailField from '../FormInputEmailField/FormInputEmailField.vue'\r\nimport FormCheckbox from '../FormCheckbox/FormCheckbox.vue'\r\n\r\nexport default {\r\n name: 'StafetProfileForm',\r\n components: {\r\n FormInputTextField,\r\n FormInputPhoneField,\r\n FormInputEmailField,\r\n FormCheckbox\r\n },\r\n props: {\r\n stafetId: {\r\n type: String,\r\n default: null\r\n },\r\n userData: {\r\n type: Object,\r\n default: {}\r\n },\r\n editProfileLink: {\r\n type: String,\r\n default: null\r\n },\r\n removeProfileLink: {\r\n type: String,\r\n default: null\r\n },\r\n editPasswordLink: {\r\n type: String,\r\n default: null\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const mailSettingsBool = ref(props.userData.newsletter ?? false)\r\n const mailSettingsFighterNewsletterBool = ref(props.userData.fighterNewsletter ?? false)\r\n\r\n const labels = computed(() => {\r\n return store.state.labels.collections['SFLEditStafetLabels']\r\n })\r\n\r\n const setMailSettingBool = (value) => {\r\n mailSettingsBool.value = value\r\n }\r\n\r\n const setMailSettingFighterNewsletterBool = (value) => {\r\n mailSettingsFighterNewsletterBool.value = value\r\n }\r\n\r\n const saveChanges = () => {\r\n setTimeout(() => {\r\n store.dispatch('stafet/stafetProfileUpdatedSubmit', {\r\n body: { \r\n mailSettingsBool: mailSettingsBool.value,\r\n mailSettingsFighterNewsletterBool: mailSettingsFighterNewsletterBool.value, \r\n }\r\n })\r\n }, 300)\r\n }\r\n\r\n const openConfirmPageOverlay = function (e) {\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: () => {\r\n store.dispatch('stafet/submitUpdateStafetProfile', {\r\n userId: props.userData.userId,\r\n body: {\r\n sflNewsletter: mailSettingsBool.value,\r\n fighterNewsletter: mailSettingsFighterNewsletterBool.value\r\n }\r\n })\r\n }\r\n })\r\n\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'ConfirmChanges',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n const openDeletePageOverlay = function (e) {\r\n store.commit('main/set_page_overlay_content_data', {\r\n callback: () => {\r\n store.dispatch('stafet/submitDeleteStafetProfile', {\r\n userId: props.userData.userId\r\n })\r\n }\r\n })\r\n\r\n store.dispatch('main/openPageOverlay', {\r\n overlayContent: 'ConfirmDeleteProfile',\r\n returnTarget: e.currentTarget\r\n })\r\n }\r\n\r\n return {\r\n labels,\r\n mailSettingsBool,\r\n setMailSettingBool,\r\n mailSettingsFighterNewsletterBool,\r\n setMailSettingFighterNewsletterBool,\r\n saveChanges,\r\n openConfirmPageOverlay,\r\n openDeletePageOverlay\r\n }\r\n }\r\n}\r\n","import { render } from \"./StafetProfileForm.vue?vue&type=template&id=5eb67b62\"\nimport script from \"./StafetProfileForm.vue?vue&type=script&lang=js\"\nexport * from \"./StafetProfileForm.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref } from 'vue'\r\n\r\nexport default {\r\n name: 'StickySliderElement',\r\n setup() {\r\n const imgTopPosSticky = ref('40px')\r\n const imgTopPosStickyInt = ref(40)\r\n\r\n addEventListener('DOMContentLoaded', (event) => {\r\n const stickySliderElementImageContainer = document.querySelectorAll(\r\n '.kb-sticky-slider-element__content-container'\r\n )\r\n\r\n const getImageStickyTopPosition = () => {\r\n const stickySliderElement = document.querySelector(\r\n '.kb-js--sticky-slider-element'\r\n )\r\n\r\n if (stickySliderElement) {\r\n setImgTopPosSticky(stickySliderElement)\r\n }\r\n }\r\n const observer = new IntersectionObserver(handleIntersection, {\r\n rootMargin: `-${imgTopPosSticky.value}`\r\n })\r\n\r\n stickySliderElementImageContainer.forEach((stickyElm) => {\r\n observer.observe(stickyElm)\r\n })\r\n\r\n stickySliderElementImageContainer.forEach((stickyElm, index) => {\r\n if (index + 1 < stickySliderElementImageContainer.length) {\r\n const imageContainer = stickyElm.querySelector(\r\n '.kb-js--sticky-slider-image-container'\r\n )\r\n const image = imageContainer.querySelector(\r\n '.kb-js--sticky-slider-element'\r\n )\r\n const totalContainerHeight =\r\n imageContainer.getBoundingClientRect().height +\r\n image.getBoundingClientRect().height * 2\r\n stickyElm.style.height = `${imageContainer.getBoundingClientRect().height * 2}px`\r\n imageContainer.style.height = `${totalContainerHeight}px`\r\n }\r\n })\r\n\r\n const resizeObserver = new ResizeObserver(handleResize)\r\n\r\n stickySliderElementImageContainer.forEach((stickyElm) => {\r\n const containerRight = stickyElm.querySelector(\r\n '.kb-js--sticky-container-right'\r\n )\r\n const textContentArea = containerRight.children[0]\r\n resizeObserver.observe(\r\n textContentArea ? textContentArea : containerRight\r\n )\r\n })\r\n })\r\n\r\n const setImgTopPosSticky = (stickySliderElement) => {\r\n imgTopPosSticky.value =\r\n window.getComputedStyle(stickySliderElement).top\r\n imgTopPosStickyInt.value = parseFloat(\r\n imgTopPosSticky.value.replace('px', '')\r\n )\r\n }\r\n\r\n const handleIntersection = (entries) => {\r\n entries.map((entry) => {\r\n if (\r\n entry.isIntersecting &&\r\n imgTopPosStickyInt.value &&\r\n entry.intersectionRect.top <= imgTopPosStickyInt.value\r\n ) {\r\n if (!entry.target) return\r\n changeBackgroundColor(entry.target)\r\n changeImage(entry.target)\r\n } else if (\r\n !entry.isIntersecting &&\r\n entry.boundingClientRect.top < 0\r\n ) {\r\n const nextElement = getNextElement(entry.target)\r\n if (!nextElement) return\r\n changeBackgroundColor(nextElement)\r\n changeImage(nextElement)\r\n }\r\n })\r\n }\r\n\r\n const getNextElement = (currentElement) => {\r\n let currentIndex = 0\r\n const containers = document.querySelectorAll(\r\n '.kb-js--content-container'\r\n )\r\n Array.from(containers).map((item, index) => {\r\n if (item === currentElement) {\r\n currentIndex = index\r\n }\r\n })\r\n\r\n if (currentIndex < containers.length) {\r\n return containers[currentIndex + 1]\r\n }\r\n return currentElement\r\n }\r\n\r\n const changeBackgroundColor = (elm) => {\r\n const parentContainer = elm.closest('.kb-sticky-slider-element')\r\n const parentClasses = parentContainer.classList\r\n parentClasses.forEach((item) => {\r\n if (item.includes('kb-colortheme')) {\r\n parentContainer.classList.remove(item)\r\n }\r\n })\r\n\r\n if (elm.dataset.theme) {\r\n parentContainer.classList.add(elm.dataset.theme)\r\n }\r\n }\r\n\r\n const changeImage = (elm) => {\r\n const imageContainers = document.querySelectorAll(\r\n '.kb-js--sticky-slider-image-container'\r\n )\r\n const imageContainer = elm.querySelector(\r\n '.kb-js--sticky-slider-image-container'\r\n )\r\n imageContainers.forEach((container) =>\r\n container.classList.remove(\r\n 'kb-sticky-slider-element__left-container--shown'\r\n )\r\n )\r\n imageContainer.classList.add(\r\n 'kb-sticky-slider-element__left-container--shown'\r\n )\r\n }\r\n\r\n // resize observer to make sure tekst content doesn't overlab\r\n const handleResize = (entries) => {\r\n entries.forEach((entry) => {\r\n const contentWrapper = entry.target.closest(\r\n '.kb-js--content-container'\r\n )\r\n const textContentHeight = entry.contentRect.height\r\n const imgHeight = contentWrapper\r\n .querySelector('.kb-js--sticky-slider-element')\r\n .getBoundingClientRect().height\r\n if (contentWrapper && textContentHeight) {\r\n if (imgHeight > textContentHeight) {\r\n contentWrapper.style.height = `${imgHeight}px`\r\n } else {\r\n contentWrapper.style.height = `${textContentHeight}px`\r\n }\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './StickySliderElement.options'\r\n\r\nconst el = '.kb-component--sticky-slider-element'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelector(el)\r\n if (DOM) {\r\n const template = DOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(el)\r\n }\r\n}\r\n","import headerOptions from '../TheHeader/TheHeader.options'\r\n\r\nconst options = Object.assign({}, headerOptions, { name: 'SubbrandHeader' })\r\nexport default options\r\n","import { createApp } from 'vue'\r\nimport options from './SubbrandHeader.options'\r\n\r\nconst el = '.kb-component--subbrand-header'\r\nconst DOM = document.querySelector(el)\r\n\r\nexport default function(Store){\r\n if(DOM){\r\n const template = DOM.innerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(el)\r\n }\r\n}","\r\n\r\n\r\n","\r\n\r\n\r\n","import { computed } from 'vue'\r\n\r\nexport default {\r\n name: 'TeamListCard',\r\n props: {\r\n participantsText: {\r\n type: String,\r\n required: true\r\n },\r\n captainText: {\r\n type: String,\r\n required: true\r\n },\r\n captains: {\r\n type: Array,\r\n required: true\r\n },\r\n url: {\r\n type: String,\r\n required: true\r\n },\r\n imageUrl: {\r\n type: String,\r\n required: true\r\n },\r\n imageAlt: {\r\n type: String,\r\n required: true\r\n },\r\n name: {\r\n type: String,\r\n required: true\r\n },\r\n membersCount: {\r\n type: Number,\r\n required: true\r\n },\r\n donationGoals: {\r\n type: Number,\r\n required: true\r\n },\r\n donationGoalsText: {\r\n type: String,\r\n required: true\r\n },\r\n currencyText: {\r\n type: String,\r\n required: true\r\n },\r\n donationTotal: {\r\n type: Number,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const progress = computed(() => {\r\n // Cap progress at 100%\r\n const progressCap = 100\r\n const rawProgress =\r\n (props.donationTotal * progressCap) / props.donationGoals\r\n return Math.min(rawProgress, progressCap)\r\n })\r\n return {\r\n progress\r\n }\r\n }\r\n}\r\n","import { render } from \"./TeamListCard.vue?vue&type=template&id=1ec02339\"\nimport script from \"./TeamListCard.vue?vue&type=script&lang=js\"\nexport * from \"./TeamListCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed, onMounted, ref } from 'vue'\r\nimport { useStore } from 'vuex'\r\nimport TeamListCard from '../TeamListCard/TeamListCard.vue'\r\nimport SortDropdown from '../SortDropdown/SortDropdown.vue'\r\n\r\nexport default {\r\n name: 'TeamList',\r\n components: {\r\n TeamListCard,\r\n SortDropdown\r\n },\r\n props: {\r\n source: {\r\n type: String,\r\n required: true\r\n },\r\n stafetId: {\r\n type: String,\r\n required: true\r\n },\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n take: {\r\n type: Number,\r\n default: 18\r\n },\r\n hideNoResults: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n filterShown: {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const teamsShownAmount = ref(props.take)\r\n\r\n onMounted(() => {\r\n\r\n const urlTemplate = props.source === 'profil'\r\n ? process.env.GET_PROFILE_TEAMS_LIST\r\n : process.env.GET_STAFET_TEAM_LIST\r\n const url = urlTemplate\r\n .replace('[stafetId]', props.stafetId)\r\n .replace('[pageId]', store.state.main.page_id)\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: url\r\n })\r\n\r\n store.dispatch('search/performZeroSearch', {\r\n guid: props.guid\r\n })\r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n skip: 0,\r\n take: props.take\r\n })\r\n })\r\n\r\n const getLabel = (key, strings) => {\r\n let label = store.getters['labels/getLabel']({\r\n labelCollection: 'teamList',\r\n labelKey: key\r\n })\r\n\r\n if (strings) {\r\n strings.map((string, index) => {\r\n label = label.replace(`{${index}}`, string)\r\n })\r\n }\r\n return label\r\n }\r\n\r\n const sortOptions = {\r\n name: 'Sorter',\r\n options: [\r\n {\r\n name: getLabel('sortListAlphabetical'),\r\n handler: 'alphabetical'\r\n },\r\n {\r\n name: getLabel('sortListIndsamlet'),\r\n handler: 'highestCollected'\r\n },\r\n {\r\n name: getLabel('sortListSenestOprettet'),\r\n handler: 'latest'\r\n },\r\n ]\r\n }\r\n\r\n const sortingHandler = function (sorting) {\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n sorting\r\n })\r\n }\r\n\r\n const teams = computed(() => {\r\n const teams = store.state.search.results[props.guid] ?? []\r\n teamsShownAmount.value = teams.length\r\n return teams\r\n })\r\n\r\n const totalAmount = computed(() => {\r\n return store.state.search.scoped_total[props.guid] ?? 0\r\n })\r\n\r\n const showSpinner = computed(\r\n () => store.state.search.search_inprogress[props.guid]\r\n )\r\n\r\n const getMoreResults = function () {\r\n store.dispatch('search/performMoreSearch', {\r\n guid: props.guid\r\n })\r\n }\r\n\r\n return {\r\n sortOptions,\r\n sortingHandler,\r\n getLabel,\r\n teams,\r\n teamsShownAmount,\r\n totalAmount,\r\n getMoreResults,\r\n showSpinner\r\n }\r\n }\r\n}\r\n","import { render } from \"./TeamList.vue?vue&type=template&id=38209c6d\"\nimport script from \"./TeamList.vue?vue&type=script&lang=js\"\nexport * from \"./TeamList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { onUpdated, ref } from 'vue'\r\n\r\n// TinyMCE imports\r\nimport \"tinymce/tinymce\"\r\nimport \"tinymce/themes/silver\";\r\nimport \"tinymce/icons/default\";\r\nimport 'tinymce/models/dom/model'\r\nimport 'tinymce/skins/ui/oxide/skin.css';\r\n// TinyMCE plugin imports\r\nimport 'tinymce/plugins/emoticons';\r\nimport 'tinymce/plugins/emoticons/js/emojis';\r\nimport 'tinymce/plugins/autoresize';\r\nimport 'tinymce/plugins/lists';\r\nimport 'tinymce/plugins/autolink';\r\n\r\nimport Editor from '@tinymce/tinymce-vue'\r\n\r\nexport default {\r\n name: \"TextEditor\",\r\n components: {\r\n Editor\r\n },\r\n props: {\r\n initContent: {\r\n type: String,\r\n default: ''\r\n }\r\n },\r\n setup(props) {\r\n const content = ref(props.initContent)\r\n\r\n return {\r\n content\r\n }\r\n }\r\n}","\r\n\r\n\r\n","import { useStore } from 'vuex';\r\nimport GroupPost from '../GroupPost/GroupPost.vue';\r\nimport { computed, onMounted } from 'vue';\r\nimport getLabelFromStore from '../../foundation/js/getLabel'\r\n\r\nexport default {\r\n name: \"UserPostsList\",\r\n components: {\r\n GroupPost\r\n },\r\n props: {\r\n guid: {\r\n type: String,\r\n required: true\r\n },\r\n groupId: {\r\n type: String,\r\n required: true\r\n },\r\n skip: {\r\n type: Number,\r\n default: 0\r\n },\r\n take: {\r\n type: Number,\r\n default: 10\r\n },\r\n userData: {\r\n type: Object,\r\n default: null\r\n },\r\n type: {\r\n type: String,\r\n default: null\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore()\r\n const isLoggedIn = computed(() => store.state.main.user.user_authorized ?? false)\r\n const posts = computed(() => store.state.search.results[props.guid] ?? [])\r\n const totalNumberOfPosts = computed(() => store.state.search.scoped_total[props.guid] ?? 0)\r\n const showSpinner = computed(() => store.state.search.search_inprogress[props.guid])\r\n \r\n const getLabel = (key, strings) => {\r\n let label = getLabelFromStore({\r\n labelKey: key,\r\n labelCollection: 'UserPostsList'\r\n })\r\n\r\n if (strings) {\r\n strings.forEach((str, index) => {\r\n label = label.replace(`{${index}}`, str)\r\n })\r\n }\r\n\r\n return label\r\n }\r\n\r\n const getApiPath = () => {\r\n switch (props.type) {\r\n case 'saved': \r\n return process.env.GET_SAVED_POSTS_LIST\r\n default:\r\n return process.env.GET_USER_POSTS_LIST\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n const api = getApiPath()\r\n\r\n store.dispatch('search/initSearchScope', {\r\n guid: props.guid,\r\n firstPageSize: props.take,\r\n showMorePageSize: props.take,\r\n url: api\r\n }) \r\n\r\n store.dispatch('search/performSearch', {\r\n guid: props.guid,\r\n guery: '',\r\n skip: props.skip,\r\n take: props.take\r\n })\r\n })\r\n\r\n const handlePostClick = (e, post) => {\r\n window.location.href = post.url\r\n }\r\n\r\n const getMorePosts = () => {\r\n store.dispatch('search/performMoreSearch', { guid: props.guid })\r\n }\r\n\r\n return {\r\n isLoggedIn,\r\n posts,\r\n totalNumberOfPosts,\r\n showSpinner,\r\n getLabel,\r\n handlePostClick,\r\n getMorePosts\r\n }\r\n }\r\n}","import { render } from \"./UserPostsList.vue?vue&type=template&id=3ebd9b2e\"\nimport script from \"./UserPostsList.vue?vue&type=script&lang=js\"\nexport * from \"./UserPostsList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default {\r\n name: \"WebshopHeader\",\r\n setup() {\r\n const store = useStore();\r\n\r\n const initialItemsCount = computed(\r\n () => store.state.basket?.initialItemsCount,\r\n );\r\n\r\n const itemsCount = computed(\r\n () =>\r\n store.state.basket?.totals?.productsAmount ||\r\n initialItemsCount.value,\r\n );\r\n const itemsCountString = computed(() =>\r\n itemsCount.value > 99 ? \"99+\" : itemsCount.value.toString(),\r\n );\r\n const startBurgermenu = function (e) {\r\n console.log(\"burger icon clicket\");\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"BurgerMenu\",\r\n returnTarget: e.currentTarget,\r\n });\r\n };\r\n\r\n const startSearchoverlay = function (e) {\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"SearchOverlay\",\r\n returnTarget: e.currentTarget,\r\n });\r\n };\r\n\r\n const startMegaMenu = function (e) {\r\n store.dispatch(\"main/openPageOverlay\", {\r\n overlayContent: \"megaMenu\",\r\n returnTarget: e.currentTarget,\r\n });\r\n };\r\n\r\n return {\r\n itemsCount,\r\n itemsCountString,\r\n startBurgermenu,\r\n startSearchoverlay,\r\n startMegaMenu,\r\n };\r\n },\r\n};\r\n","import { createApp } from \"vue\";\r\nimport options from \"./WebshopHeader.options\";\r\nimport store from \"store\";\r\n\r\nconst el = \".kb-component--webshop-header\";\r\nconst DOM = document.querySelector(el);\r\n\r\nexport default function (store) {\r\n if (DOM && !DOM.hasAttribute(\"data-v-app\")) {\r\n const template = DOM.outerHTML;\r\n options.template = template;\r\n store.commit(\r\n \"basket/SET_INITIAL_BASKET_TOTALS_PRODUCTS_AMOUNT\",\r\n DOM.dataset.initialItemsCount,\r\n );\r\n const component = createApp(options).use(store);\r\n component.mount(DOM);\r\n }\r\n}\r\n","// generated import statements - any manual change made here will be overwritten automatically. \n\nimport FactBox from './components/FactBox/FactBox.init.js'\n\nimport SecondaryArticleSpots from './components/SecondaryArticleSpots/SecondaryArticleSpots.init.js'\n\nimport TooltipComponent from './components/TooltipComponent/TooltipComponent.init.js'\n\nimport PageIdInit from './components/PageIdInit/PageIdInit.init.js'\n\nimport Accordion from './components/Accordion/Accordion.init.js'\n\nimport ActionResponseBox from './components/ActionResponseBox/ActionResponseBox.init.js'\n\nimport ActiveGroups from './components/ActiveGroups/ActiveGroups.init.js'\n\nimport ActiveRoleListCard from './components/ActiveRoleListCard/ActiveRoleListCard.init.js'\n\nimport ActiveRolesList from './components/ActiveRolesList/ActiveRolesList.init.js'\n\nimport ActivityCard from './components/ActivityCard/ActivityCard.init.js'\n\nimport AdvancedRadio from './components/AdvancedRadio/AdvancedRadio.init.js'\n\nimport AmountSelector from './components/AmountSelector/AmountSelector.init.js'\n\nimport ArticleAnchors from './components/ArticleAnchors/ArticleAnchors.init.js'\n\nimport ArticleOverlay from './components/ArticleOverlay/ArticleOverlay.init.js'\n\nimport AttachmentsEditor from './components/AttachmentsEditor/AttachmentsEditor.init.js'\n\nimport AttachmentsViewer from './components/AttachmentsViewer/AttachmentsViewer.init.js'\n\nimport Basket from './components/Basket/Basket.init.js'\n\nimport BasketAside from './components/BasketAside/BasketAside.init.js'\n\nimport BasketCard from './components/BasketCard/BasketCard.init.js'\n\nimport BreadCrumb from './components/BreadCrumb/BreadCrumb.init.js'\n\nimport BurgerMenu from './components/BurgerMenu/BurgerMenu.init.js'\n\nimport BuySection from './components/BuySection/BuySection.init.js'\n\nimport CalendarOverlay from './components/CalendarOverlay/CalendarOverlay.init.js'\n\nimport CaseCard from './components/CaseCard/CaseCard.init.js'\n\nimport CaseCarousel from './components/CaseCarousel/CaseCarousel.init.js'\n\nimport CaseModule from './components/CaseModule/CaseModule.init.js'\n\nimport CategoryPicker from './components/CategoryPicker/CategoryPicker.init.js'\n\nimport ChangesSaved from './components/ChangesSaved/ChangesSaved.init.js'\n\nimport CheckoutContent from './components/CheckoutContent/CheckoutContent.init.js'\n\nimport CheckoutHeader from './components/CheckoutHeader/CheckoutHeader.init.js'\n\nimport CheckoutStepOne from './components/CheckoutStepOne/CheckoutStepOne.init.js'\n\nimport CheckoutStepThree from './components/CheckoutStepThree/CheckoutStepThree.init.js'\n\nimport CheckoutStepTwo from './components/CheckoutStepTwo/CheckoutStepTwo.init.js'\n\nimport ClosedGroupOverlay from './components/ClosedGroupOverlay/ClosedGroupOverlay.init.js'\n\nimport ColorPreview from './components/ColorPreview/ColorPreview.init.js'\n\nimport ConfirmChanges from './components/ConfirmChanges/ConfirmChanges.init.js'\n\nimport ConfirmDeleteOverlay from './components/ConfirmDeleteOverlay/ConfirmDeleteOverlay.init.js'\n\nimport ConfirmDeleteProfile from './components/ConfirmDeleteProfile/ConfirmDeleteProfile.init.js'\n\nimport ContactBanner from './components/ContactBanner/ContactBanner.init.js'\n\nimport ContentCarousel from './components/ContentCarousel/ContentCarousel.init.js'\n\nimport ContributionSelector from './components/ContributionSelector/ContributionSelector.init.js'\n\nimport CreateCancerForumProfile from './components/CreateCancerForumProfile/CreateCancerForumProfile.init.js'\n\nimport CreateEvent from './components/CreateEvent/CreateEvent.init.js'\n\nimport CreateFolderOverlay from './components/CreateFolderOverlay/CreateFolderOverlay.init.js'\n\nimport CreateFrivilligeProfile from './components/CreateFrivilligeProfile/CreateFrivilligeProfile.init.js'\n\nimport CreateFrivilligJob from './components/CreateFrivilligJob/CreateFrivilligJob.init.js'\n\nimport CreateGallery from './components/CreateGallery/CreateGallery.init.js'\n\nimport CreateNewFileOverlay from './components/CreateNewFileOverlay/CreateNewFileOverlay.init.js'\n\nimport CreatePost from './components/CreatePost/CreatePost.init.js'\n\nimport CTABox from './components/CTABox/CTABox.init.js'\n\nimport DeleteCancerProfileModal from './components/DeleteCancerProfileModal/DeleteCancerProfileModal.init.js'\n\nimport DeleteCommentOverlay from './components/DeleteCommentOverlay/DeleteCommentOverlay.init.js'\n\nimport DeleteEventModal from './components/DeleteEventModal/DeleteEventModal.init.js'\n\nimport DeleteFrivilligjobOverlay from './components/DeleteFrivilligjobOverlay/DeleteFrivilligjobOverlay.init.js'\n\nimport DeletePostOverlay from './components/DeletePostOverlay/DeletePostOverlay.init.js'\n\nimport DeleteRoleOverlay from './components/DeleteRoleOverlay/DeleteRoleOverlay.init.js'\n\nimport DeliveryAddress from './components/DeliveryAddress/DeliveryAddress.init.js'\n\nimport DeliveryCard from './components/DeliveryCard/DeliveryCard.init.js'\n\nimport Dictionary from './components/Dictionary/Dictionary.init.js'\n\nimport DictionaryList from './components/DictionaryList/DictionaryList.init.js'\n\nimport DictionaryWord from './components/DictionaryWord/DictionaryWord.init.js'\n\nimport DirectMessageNavigation from './components/DirectMessageNavigation/DirectMessageNavigation.init.js'\n\nimport DirectMessagesContent from './components/DirectMessagesContent/DirectMessagesContent.init.js'\n\nimport DirectMessageThread from './components/DirectMessageThread/DirectMessageThread.init.js'\n\nimport DocumentAndFolderList from './components/DocumentAndFolderList/DocumentAndFolderList.init.js'\n\nimport DonationAmount from './components/DonationAmount/DonationAmount.init.js'\n\nimport DonationCard from './components/DonationCard/DonationCard.init.js'\n\nimport DonationReceiptOverlay from './components/DonationReceiptOverlay/DonationReceiptOverlay.init.js'\n\nimport DropdownWithTags from './components/DropdownWithTags/DropdownWithTags.init.js'\n\nimport EditFrivilligProfile from './components/EditFrivilligProfile/EditFrivilligProfile.init.js'\n\nimport FeaturedGroups from './components/FeaturedGroups/FeaturedGroups.init.js'\n\nimport FeaturedPostSpotCard from './components/FeaturedPostSpotCard/FeaturedPostSpotCard.init.js'\n\nimport FeatureNavigationTeam from './components/FeatureNavigationTeam/FeatureNavigationTeam.init.js'\n\nimport FileListCard from './components/FileListCard/FileListCard.init.js'\n\nimport FilterOverlay from './components/FilterOverlay/FilterOverlay.init.js'\n\nimport FlowEditModal from './components/FlowEditModal/FlowEditModal.init.js'\n\nimport FlowHeader from './components/FlowHeader/FlowHeader.init.js'\n\nimport FormAddressField from './components/FormAddressField/FormAddressField.init.js'\n\nimport FormAddressFieldGroup from './components/FormAddressFieldGroup/FormAddressFieldGroup.init.js'\n\nimport FormCheckbox from './components/FormCheckbox/FormCheckbox.init.js'\n\nimport FormInputCprField from './components/FormInputCprField/FormInputCprField.init.js'\n\nimport FormInputCvrField from './components/FormInputCvrField/FormInputCvrField.init.js'\n\nimport FormInputDateField from './components/FormInputDateField/FormInputDateField.init.js'\n\nimport FormInputDropdown from './components/FormInputDropdown/FormInputDropdown.init.js'\n\nimport FormInputEmailField from './components/FormInputEmailField/FormInputEmailField.init.js'\n\nimport FormInputNameField from './components/FormInputNameField/FormInputNameField.init.js'\n\nimport FormInputPhoneField from './components/FormInputPhoneField/FormInputPhoneField.init.js'\n\nimport FormInputTextarea from './components/FormInputTextarea/FormInputTextarea.init.js'\n\nimport FormInputTextField from './components/FormInputTextField/FormInputTextField.init.js'\n\nimport FormRadioGroup from './components/FormRadioGroup/FormRadioGroup.init.js'\n\nimport FormStepSubmitting from './components/FormStepSubmitting/FormStepSubmitting.init.js'\n\nimport FormStepZero from './components/FormStepZero/FormStepZero.init.js'\n\nimport ForumEditProfile from './components/ForumEditProfile/ForumEditProfile.init.js'\n\nimport FrivilligeCheckoutContent from './components/FrivilligeCheckoutContent/FrivilligeCheckoutContent.init.js'\n\nimport FrivilligeCheckoutStepOne from './components/FrivilligeCheckoutStepOne/FrivilligeCheckoutStepOne.init.js'\n\nimport FrivilligeCheckoutStepTwo from './components/FrivilligeCheckoutStepTwo/FrivilligeCheckoutStepTwo.init.js'\n\nimport FrivilligePostsList from './components/FrivilligePostsList/FrivilligePostsList.init.js'\n\nimport FrivilligeShopWrongRoleModal from './components/FrivilligeShopWrongRoleModal/FrivilligeShopWrongRoleModal.init.js'\n\nimport FrivilligGroupHero from './components/FrivilligGroupHero/FrivilligGroupHero.init.js'\n\nimport FrivilligjobAside from './components/FrivilligjobAside/FrivilligjobAside.init.js'\n\nimport FrivilligjobCard from './components/FrivilligjobCard/FrivilligjobCard.init.js'\n\nimport FullscreenMedia from './components/FullscreenMedia/FullscreenMedia.init.js'\n\nimport FundraiseForm from './components/FundraiseForm/FundraiseForm.init.js'\n\nimport FundraisingAsideVue from './components/FundraisingAsideVue/FundraisingAsideVue.init.js'\n\nimport FundraisingCard from './components/FundraisingCard/FundraisingCard.init.js'\n\nimport FundraisingHero from './components/FundraisingHero/FundraisingHero.init.js'\n\nimport FVLConfirmDeleteProfile from './components/FVLConfirmDeleteProfile/FVLConfirmDeleteProfile.init.js'\n\nimport GalleryCard from './components/GalleryCard/GalleryCard.init.js'\n\nimport GeneralSearch from './components/GeneralSearch/GeneralSearch.init.js'\n\nimport GroupCard from './components/GroupCard/GroupCard.init.js'\n\nimport GroupDetails from './components/GroupDetails/GroupDetails.init.js'\n\nimport GroupPost from './components/GroupPost/GroupPost.init.js'\n\nimport GroupSearchResult from './components/GroupSearchResult/GroupSearchResult.init.js'\n\nimport GruppeadgangsanmodningList from './components/GruppeadgangsanmodningList/GruppeadgangsanmodningList.init.js'\n\nimport GtmTracker from './components/GtmTracker/GtmTracker.init.js'\n\nimport HeroGeneralSearch from './components/HeroGeneralSearch/HeroGeneralSearch.init.js'\n\nimport HeroSectionCancerforum from './components/HeroSectionCancerforum/HeroSectionCancerforum.init.js'\n\nimport HoldetsDeltagere from './components/HoldetsDeltagere/HoldetsDeltagere.init.js'\n\nimport HoldetsDonationer from './components/HoldetsDonationer/HoldetsDonationer.init.js'\n\nimport HoldetsLys from './components/HoldetsLys/HoldetsLys.init.js'\n\nimport HoldetsRoundCounterOverlay from './components/HoldetsRoundCounterOverlay/HoldetsRoundCounterOverlay.init.js'\n\nimport HoldOprettelseKvittering from './components/HoldOprettelseKvittering/HoldOprettelseKvittering.init.js'\n\nimport HoldRedigerKvittering from './components/HoldRedigerKvittering/HoldRedigerKvittering.init.js'\n\nimport ImageGallery from './components/ImageGallery/ImageGallery.init.js'\n\nimport IndependentHeader from './components/IndependentHeader/IndependentHeader.init.js'\n\nimport InfoCarousel from './components/InfoCarousel/InfoCarousel.init.js'\n\nimport LocationCard from './components/LocationCard/LocationCard.init.js'\n\nimport LoginOverlay from './components/LoginOverlay/LoginOverlay.init.js'\n\nimport LotteryForm from './components/LotteryForm/LotteryForm.init.js'\n\nimport MaterialCard from './components/MaterialCard/MaterialCard.init.js'\n\nimport MemberListOverlay from './components/MemberListOverlay/MemberListOverlay.init.js'\n\nimport MemberListOverlayFVL from './components/MemberListOverlayFVL/MemberListOverlayFVL.init.js'\n\nimport MemberOverlay from './components/MemberOverlay/MemberOverlay.init.js'\n\nimport MemberOverlayProfileCard from './components/MemberOverlayProfileCard/MemberOverlayProfileCard.init.js'\n\nimport MitIdLogout from './components/MitIdLogout/MitIdLogout.init.js'\n\nimport MoveFileOverlay from './components/MoveFileOverlay/MoveFileOverlay.init.js'\n\nimport NoSearchResults from './components/NoSearchResults/NoSearchResults.init.js'\n\nimport NotificationList from './components/NotificationList/NotificationList.init.js'\n\nimport OpretHoldOverlay from './components/OpretHoldOverlay/OpretHoldOverlay.init.js'\n\nimport OrdreOverview from './components/OrdreOverview/OrdreOverview.init.js'\n\nimport OverlayLinkInterceptor from './components/OverlayLinkInterceptor/OverlayLinkInterceptor.init.js'\n\nimport PageOverlay from './components/PageOverlay/PageOverlay.init.js'\n\nimport PersonalDonationStep2a from './components/PersonalDonationStep2a/PersonalDonationStep2a.init.js'\n\nimport PersonalDonationStep3 from './components/PersonalDonationStep3/PersonalDonationStep3.init.js'\n\nimport PersonalFundraising from './components/PersonalFundraising/PersonalFundraising.init.js'\n\nimport PickUpAddress from './components/PickUpAddress/PickUpAddress.init.js'\n\nimport PodcastSliderCard from './components/PodcastSliderCard/PodcastSliderCard.init.js'\n\nimport PostAside from './components/PostAside/PostAside.init.js'\n\nimport PostComment from './components/PostComment/PostComment.init.js'\n\nimport PostComments from './components/PostComments/PostComments.init.js'\n\nimport PostHeader from './components/PostHeader/PostHeader.init.js'\n\nimport PostHeaderAddComment from './components/PostHeaderAddComment/PostHeaderAddComment.init.js'\n\nimport PostsList from './components/PostsList/PostsList.init.js'\n\nimport PreFooter from './components/PreFooter/PreFooter.init.js'\n\nimport ProductCard from './components/ProductCard/ProductCard.init.js'\n\nimport ProductDetail from './components/ProductDetail/ProductDetail.init.js'\n\nimport ProductList from './components/ProductList/ProductList.init.js'\n\nimport ProductsCardsSlider from './components/ProductsCardsSlider/ProductsCardsSlider.init.js'\n\nimport ProfileDeleted from './components/ProfileDeleted/ProfileDeleted.init.js'\n\nimport ProfilePicture from './components/ProfilePicture/ProfilePicture.init.js'\n\nimport ProjectCard from './components/ProjectCard/ProjectCard.init.js'\n\nimport ProjectsList from './components/ProjectsList/ProjectsList.init.js'\n\nimport ReceiptContent from './components/ReceiptContent/ReceiptContent.init.js'\n\nimport RelayList from './components/RelayList/RelayList.init.js'\n\nimport ReportCard from './components/ReportCard/ReportCard.init.js'\n\nimport RequestRole from './components/RequestRole/RequestRole.init.js'\n\nimport RolesFormContent from './components/RolesFormContent/RolesFormContent.init.js'\n\nimport SearchAndCTA from './components/SearchAndCTA/SearchAndCTA.init.js'\n\nimport SearchFilteredTags from './components/SearchFilteredTags/SearchFilteredTags.init.js'\n\nimport SearchOverlay from './components/SearchOverlay/SearchOverlay.init.js'\n\nimport SessionStorageFormularTest from './components/SessionStorageFormularTest/SessionStorageFormularTest.init.js'\n\nimport SignUpButton from './components/SignUpButton/SignUpButton.init.js'\n\nimport SignUpForm from './components/SignUpForm/SignUpForm.init.js'\n\nimport SimpleCard from './components/SimpleCard/SimpleCard.init.js'\n\nimport SortDropdown from './components/SortDropdown/SortDropdown.init.js'\n\nimport SpotCard from './components/SpotCard/SpotCard.init.js'\n\nimport SpotCardGrid from './components/SpotCardGrid/SpotCardGrid.init.js'\n\nimport StafetActions from './components/StafetActions/StafetActions.init.js'\n\nimport StafetAddDeltager from './components/StafetAddDeltager/StafetAddDeltager.init.js'\n\nimport StafetAddMoreDeltagerFlow from './components/StafetAddMoreDeltagerFlow/StafetAddMoreDeltagerFlow.init.js'\n\nimport StafetDeltagPaaHoldFlow from './components/StafetDeltagPaaHoldFlow/StafetDeltagPaaHoldFlow.init.js'\n\nimport StafetDeltagPaaHoldStepFour from './components/StafetDeltagPaaHoldStepFour/StafetDeltagPaaHoldStepFour.init.js'\n\nimport StafetDeltagPaaHoldStepOne from './components/StafetDeltagPaaHoldStepOne/StafetDeltagPaaHoldStepOne.init.js'\n\nimport StafetDeltagPaaHoldStepThree from './components/StafetDeltagPaaHoldStepThree/StafetDeltagPaaHoldStepThree.init.js'\n\nimport StafetDeltagPaaHoldStepTwo from './components/StafetDeltagPaaHoldStepTwo/StafetDeltagPaaHoldStepTwo.init.js'\n\nimport StafetDeltagSomFighterFlow from './components/StafetDeltagSomFighterFlow/StafetDeltagSomFighterFlow.init.js'\n\nimport StafetDeltagSomFighterStepOne from './components/StafetDeltagSomFighterStepOne/StafetDeltagSomFighterStepOne.init.js'\n\nimport StafetDeltagSomFighterStepThree from './components/StafetDeltagSomFighterStepThree/StafetDeltagSomFighterStepThree.init.js'\n\nimport StafetDeltagSomFighterStepTwo from './components/StafetDeltagSomFighterStepTwo/StafetDeltagSomFighterStepTwo.init.js'\n\nimport StafetDonationFlow from './components/StafetDonationFlow/StafetDonationFlow.init.js'\n\nimport StafetDonationStepOne from './components/StafetDonationStepOne/StafetDonationStepOne.init.js'\n\nimport StafetDonationStepPrivat from './components/StafetDonationStepPrivat/StafetDonationStepPrivat.init.js'\n\nimport StafetDonationStepTwo from './components/StafetDonationStepTwo/StafetDonationStepTwo.init.js'\n\nimport StafetDonationStepVirksomhed from './components/StafetDonationStepVirksomhed/StafetDonationStepVirksomhed.init.js'\n\nimport StafetDonationTaendLysFlow from './components/StafetDonationTaendLysFlow/StafetDonationTaendLysFlow.init.js'\n\nimport StafetDonationTaendLysStepOne from './components/StafetDonationTaendLysStepOne/StafetDonationTaendLysStepOne.init.js'\n\nimport StafetDonationTaendLysStepThree from './components/StafetDonationTaendLysStepThree/StafetDonationTaendLysStepThree.init.js'\n\nimport StafetDonationTaendLysStepTwo from './components/StafetDonationTaendLysStepTwo/StafetDonationTaendLysStepTwo.init.js'\n\nimport StafetEditHoldFlow from './components/StafetEditHoldFlow/StafetEditHoldFlow.init.js'\n\nimport StafetHeader from './components/StafetHeader/StafetHeader.init.js'\n\nimport StafetLysPoserList from './components/StafetLysPoserList/StafetLysPoserList.init.js'\n\nimport StafetOpretHoldFlow from './components/StafetOpretHoldFlow/StafetOpretHoldFlow.init.js'\n\nimport StafetOpretHoldStepOne from './components/StafetOpretHoldStepOne/StafetOpretHoldStepOne.init.js'\n\nimport StafetOpretHoldStepTwo from './components/StafetOpretHoldStepTwo/StafetOpretHoldStepTwo.init.js'\n\nimport StafetPayment from './components/StafetPayment/StafetPayment.init.js'\n\nimport StafetProfileForm from './components/StafetProfileForm/StafetProfileForm.init.js'\n\nimport StafetRoundCounter from './components/StafetRoundCounter/StafetRoundCounter.init.js'\n\nimport StafetRoundCounterAccordion from './components/StafetRoundCounterAccordion/StafetRoundCounterAccordion.init.js'\n\nimport StickySliderElement from './components/StickySliderElement/StickySliderElement.init.js'\n\nimport SubbrandHeader from './components/SubbrandHeader/SubbrandHeader.init.js'\n\nimport SubNavigation from './components/SubNavigation/SubNavigation.init.js'\n\nimport SuccessPage from './components/SuccessPage/SuccessPage.init.js'\n\nimport SupportSelector from './components/SupportSelector/SupportSelector.init.js'\n\nimport TeamList from './components/TeamList/TeamList.init.js'\n\nimport TeamListCard from './components/TeamListCard/TeamListCard.init.js'\n\nimport TextEditor from './components/TextEditor/TextEditor.init.js'\n\nimport TheHeader from './components/TheHeader/TheHeader.init.js'\n\nimport ThemeCard from './components/ThemeCard/ThemeCard.init.js'\n\nimport ThemeSection from './components/ThemeSection/ThemeSection.init.js'\n\nimport TilmeldHoldKvittering from './components/TilmeldHoldKvittering/TilmeldHoldKvittering.init.js'\n\nimport TilmeldProfilKvittering from './components/TilmeldProfilKvittering/TilmeldProfilKvittering.init.js'\n\nimport UploadNewFileOverlay from './components/UploadNewFileOverlay/UploadNewFileOverlay.init.js'\n\nimport UserPostsList from './components/UserPostsList/UserPostsList.init.js'\n\nimport VideoComponent from './components/VideoComponent/VideoComponent.init.js'\n\nimport WebshopHeader from './components/WebshopHeader/WebshopHeader.init.js'\n\nimport WebshopPaymentSelector from './components/WebshopPaymentSelector/WebshopPaymentSelector.init.js'\n\n\nexport default function(Store){\n FactBox(Store)\n SecondaryArticleSpots(Store)\n TooltipComponent(Store)\n PageIdInit(Store)\n Accordion(Store)\n ActionResponseBox(Store)\n ActiveGroups(Store)\n ActiveRoleListCard(Store)\n ActiveRolesList(Store)\n ActivityCard(Store)\n AdvancedRadio(Store)\n AmountSelector(Store)\n ArticleAnchors(Store)\n ArticleOverlay(Store)\n AttachmentsEditor(Store)\n AttachmentsViewer(Store)\n Basket(Store)\n BasketAside(Store)\n BasketCard(Store)\n BreadCrumb(Store)\n BurgerMenu(Store)\n BuySection(Store)\n CalendarOverlay(Store)\n CaseCard(Store)\n CaseCarousel(Store)\n CaseModule(Store)\n CategoryPicker(Store)\n ChangesSaved(Store)\n CheckoutContent(Store)\n CheckoutHeader(Store)\n CheckoutStepOne(Store)\n CheckoutStepThree(Store)\n CheckoutStepTwo(Store)\n ClosedGroupOverlay(Store)\n ColorPreview(Store)\n ConfirmChanges(Store)\n ConfirmDeleteOverlay(Store)\n ConfirmDeleteProfile(Store)\n ContactBanner(Store)\n ContentCarousel(Store)\n ContributionSelector(Store)\n CreateCancerForumProfile(Store)\n CreateEvent(Store)\n CreateFolderOverlay(Store)\n CreateFrivilligeProfile(Store)\n CreateFrivilligJob(Store)\n CreateGallery(Store)\n CreateNewFileOverlay(Store)\n CreatePost(Store)\n CTABox(Store)\n DeleteCancerProfileModal(Store)\n DeleteCommentOverlay(Store)\n DeleteEventModal(Store)\n DeleteFrivilligjobOverlay(Store)\n DeletePostOverlay(Store)\n DeleteRoleOverlay(Store)\n DeliveryAddress(Store)\n DeliveryCard(Store)\n Dictionary(Store)\n DictionaryList(Store)\n DictionaryWord(Store)\n DirectMessageNavigation(Store)\n DirectMessagesContent(Store)\n DirectMessageThread(Store)\n DocumentAndFolderList(Store)\n DonationAmount(Store)\n DonationCard(Store)\n DonationReceiptOverlay(Store)\n DropdownWithTags(Store)\n EditFrivilligProfile(Store)\n FeaturedGroups(Store)\n FeaturedPostSpotCard(Store)\n FeatureNavigationTeam(Store)\n FileListCard(Store)\n FilterOverlay(Store)\n FlowEditModal(Store)\n FlowHeader(Store)\n FormAddressField(Store)\n FormAddressFieldGroup(Store)\n FormCheckbox(Store)\n FormInputCprField(Store)\n FormInputCvrField(Store)\n FormInputDateField(Store)\n FormInputDropdown(Store)\n FormInputEmailField(Store)\n FormInputNameField(Store)\n FormInputPhoneField(Store)\n FormInputTextarea(Store)\n FormInputTextField(Store)\n FormRadioGroup(Store)\n FormStepSubmitting(Store)\n FormStepZero(Store)\n ForumEditProfile(Store)\n FrivilligeCheckoutContent(Store)\n FrivilligeCheckoutStepOne(Store)\n FrivilligeCheckoutStepTwo(Store)\n FrivilligePostsList(Store)\n FrivilligeShopWrongRoleModal(Store)\n FrivilligGroupHero(Store)\n FrivilligjobAside(Store)\n FrivilligjobCard(Store)\n FullscreenMedia(Store)\n FundraiseForm(Store)\n FundraisingAsideVue(Store)\n FundraisingCard(Store)\n FundraisingHero(Store)\n FVLConfirmDeleteProfile(Store)\n GalleryCard(Store)\n GeneralSearch(Store)\n GroupCard(Store)\n GroupDetails(Store)\n GroupPost(Store)\n GroupSearchResult(Store)\n GruppeadgangsanmodningList(Store)\n GtmTracker(Store)\n HeroGeneralSearch(Store)\n HeroSectionCancerforum(Store)\n HoldetsDeltagere(Store)\n HoldetsDonationer(Store)\n HoldetsLys(Store)\n HoldetsRoundCounterOverlay(Store)\n HoldOprettelseKvittering(Store)\n HoldRedigerKvittering(Store)\n ImageGallery(Store)\n IndependentHeader(Store)\n InfoCarousel(Store)\n LocationCard(Store)\n LoginOverlay(Store)\n LotteryForm(Store)\n MaterialCard(Store)\n MemberListOverlay(Store)\n MemberListOverlayFVL(Store)\n MemberOverlay(Store)\n MemberOverlayProfileCard(Store)\n MitIdLogout(Store)\n MoveFileOverlay(Store)\n NoSearchResults(Store)\n NotificationList(Store)\n OpretHoldOverlay(Store)\n OrdreOverview(Store)\n OverlayLinkInterceptor(Store)\n PageOverlay(Store)\n PersonalDonationStep2a(Store)\n PersonalDonationStep3(Store)\n PersonalFundraising(Store)\n PickUpAddress(Store)\n PodcastSliderCard(Store)\n PostAside(Store)\n PostComment(Store)\n PostComments(Store)\n PostHeader(Store)\n PostHeaderAddComment(Store)\n PostsList(Store)\n PreFooter(Store)\n ProductCard(Store)\n ProductDetail(Store)\n ProductList(Store)\n ProductsCardsSlider(Store)\n ProfileDeleted(Store)\n ProfilePicture(Store)\n ProjectCard(Store)\n ProjectsList(Store)\n ReceiptContent(Store)\n RelayList(Store)\n ReportCard(Store)\n RequestRole(Store)\n RolesFormContent(Store)\n SearchAndCTA(Store)\n SearchFilteredTags(Store)\n SearchOverlay(Store)\n SessionStorageFormularTest(Store)\n SignUpButton(Store)\n SignUpForm(Store)\n SimpleCard(Store)\n SortDropdown(Store)\n SpotCard(Store)\n SpotCardGrid(Store)\n StafetActions(Store)\n StafetAddDeltager(Store)\n StafetAddMoreDeltagerFlow(Store)\n StafetDeltagPaaHoldFlow(Store)\n StafetDeltagPaaHoldStepFour(Store)\n StafetDeltagPaaHoldStepOne(Store)\n StafetDeltagPaaHoldStepThree(Store)\n StafetDeltagPaaHoldStepTwo(Store)\n StafetDeltagSomFighterFlow(Store)\n StafetDeltagSomFighterStepOne(Store)\n StafetDeltagSomFighterStepThree(Store)\n StafetDeltagSomFighterStepTwo(Store)\n StafetDonationFlow(Store)\n StafetDonationStepOne(Store)\n StafetDonationStepPrivat(Store)\n StafetDonationStepTwo(Store)\n StafetDonationStepVirksomhed(Store)\n StafetDonationTaendLysFlow(Store)\n StafetDonationTaendLysStepOne(Store)\n StafetDonationTaendLysStepThree(Store)\n StafetDonationTaendLysStepTwo(Store)\n StafetEditHoldFlow(Store)\n StafetHeader(Store)\n StafetLysPoserList(Store)\n StafetOpretHoldFlow(Store)\n StafetOpretHoldStepOne(Store)\n StafetOpretHoldStepTwo(Store)\n StafetPayment(Store)\n StafetProfileForm(Store)\n StafetRoundCounter(Store)\n StafetRoundCounterAccordion(Store)\n StickySliderElement(Store)\n SubbrandHeader(Store)\n SubNavigation(Store)\n SuccessPage(Store)\n SupportSelector(Store)\n TeamList(Store)\n TeamListCard(Store)\n TextEditor(Store)\n TheHeader(Store)\n ThemeCard(Store)\n ThemeSection(Store)\n TilmeldHoldKvittering(Store)\n TilmeldProfilKvittering(Store)\n UploadNewFileOverlay(Store)\n UserPostsList(Store)\n VideoComponent(Store)\n WebshopHeader(Store)\n WebshopPaymentSelector(Store)\n}","import store from 'store'\r\n\r\nconst el = '[data-content=CalendarOverlay]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CalendarOverlayDOM)=>{\r\n const groupId = CalendarOverlayDOM.dataset.groupId\r\n const skip = parseInt(CalendarOverlayDOM.dataset.skip) ?? 0\r\n const take = parseInt(CalendarOverlayDOM.dataset.take) ?? 10\r\n const createEventUrl = CalendarOverlayDOM.dataset.createEventUrl\r\n const allowedToEdit = CalendarOverlayDOM.dataset.allowedToEdit === \"true\" ? true : false\r\n\r\n store.commit('main/set_page_overlay_content_data', { groupId, skip, take, createEventUrl, allowedToEdit })\r\n })\r\n }\r\n}","// Loads labels from DOM elements data-json into a collection.\r\n// JSON must be structured as an object with props 'collectionName' and 'labels'.\r\nimport Store from 'store'\r\n\r\ndocument.querySelectorAll('[data-labels]').forEach((element) => {\r\n const data = JSON.parse(element.dataset.labels)\r\n\r\n if (Array.isArray(data)) {\r\n data.forEach((labels) => {\r\n Store.commit('labels/set_labelCollection', labels)\r\n })\r\n return\r\n }\r\n\r\n Store.commit('labels/set_labelCollection', data)\r\n})\r\n","import Store from 'store'\r\nimport componentsToInititalize from './component-index.generated'\r\nimport 'foundation/js/loadLabels'\r\nimport 'foundation/js/animatedButtonHandler'\r\nimport 'foundation/js/formFileUploads'\r\n\r\ncomponentsToInititalize(Store)\r\n","import { createApp } from 'vue'\r\nimport SecondaryArticleSpots from './SecondaryArticleSpots'\r\n\r\nconst el = '.kb-component--secondary-article-spots'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((SecondaryArticleSpotsDOM) => {\r\n const props = {\r\n contentJson: SecondaryArticleSpotsDOM.dataset.contentjson\r\n ? JSON.parse(SecondaryArticleSpotsDOM.dataset.contentjson)\r\n : [],\r\n link: SecondaryArticleSpotsDOM.dataset.link\r\n ? JSON.parse(SecondaryArticleSpotsDOM.dataset.link)\r\n : null,\r\n carouselId: SecondaryArticleSpotsDOM.id\r\n }\r\n\r\n const component = createApp(SecondaryArticleSpots, props).use(Store)\r\n component.mount(SecondaryArticleSpotsDOM)\r\n })\r\n }\r\n}\r\n","const el = '.kb-component--page-id-init'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (!DOM || DOM.length < 1) {\r\n console.warn(\r\n 'No page id init found. The page id from the store will therefore not be set'\r\n )\r\n return false\r\n }\r\n\r\n if (DOM.length > 1) {\r\n throw new Error('Found multiple page id inits')\r\n }\r\n\r\n Store.dispatch('main/setPageId', DOM[0].dataset.pageId)\r\n}\r\n","import {createApp} from 'vue'\r\nimport ActionResponseBox from './ActionResponseBox'\r\n\r\nconst el = '.kb-component--action-response-box'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ActionResponseBoxDOM)=>{\r\n const props = {\r\n actionResponseText: ActionResponseBoxDOM.dataset.actionResponseText,\r\n lifeTime: Number(ActionResponseBoxDOM.dataset.lifeTime),\r\n fadeDuration: Number(ActionResponseBoxDOM.dataset.fadeDuration)\r\n }\r\n const component = createApp(ActionResponseBox, props).use(Store)\r\n component.mount(ActionResponseBoxDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ActiveGroups from './ActiveGroups'\r\n\r\nconst el = '.kb-component--active-groups'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ActiveGroupsDOM) => {\r\n const props = {\r\n guid: ActiveGroupsDOM.dataset.guid,\r\n spotCard: ActiveGroupsDOM.dataset.spotCard ? JSON.parse(ActiveGroupsDOM.dataset.spotCard) : null,\r\n }\r\n const component = createApp(ActiveGroups, props).use(Store)\r\n component.mount(ActiveGroupsDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ActiveRoleListCard from './ActiveRoleListCard'\r\n\r\nconst el = '.kb-component--active-role-list-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ActiveRoleListCardDOM)=>{\r\n const roleCardData = ActiveRoleListCardDOM.dataset.roleCard \r\n ? JSON.parse(ActiveRoleListCardDOM.dataset.roleCard) \r\n : null\r\n const component = createApp(ActiveRoleListCard, {roleCardData}).use(Store)\r\n component.mount(ActiveRoleListCardDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ActiveRolesList from './ActiveRolesList'\r\n\r\nconst el = '.kb-component--active-roles-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ActiveRolesListDOM)=> {\r\n const rolesData = ActiveRolesListDOM.dataset.rolesData \r\n ? JSON.parse(ActiveRolesListDOM.dataset.rolesData) \r\n : null\r\n const component = createApp(ActiveRolesList, { rolesData }).use(Store)\r\n component.mount(ActiveRolesListDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport ActivityCard from './ActivityCard'\r\n\r\nconst el = '.kb-component--activity-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ActivityCardDOM) => {\r\n const component = createApp(ActivityCard).use(Store)\r\n component.mount(ActivityCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport AdvancedRadio from './AdvancedRadio'\r\n\r\nconst el = '.kb-component--advanced-radio'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((AdvancedRadioDOM) => {\r\n const props = {\r\n type: AdvancedRadioDOM.dataset.type,\r\n tooltipText: AdvancedRadioDOM.dataset.tooltiptext,\r\n errorMessageLabel: AdvancedRadioDOM.dataset.errormessagelabel,\r\n helpMessageLabel: AdvancedRadioDOM.dataset.helpmessagelabel,\r\n placeholder: AdvancedRadioDOM.dataset.placeholder,\r\n label: AdvancedRadioDOM.dataset.label,\r\n legend: AdvancedRadioDOM.dataset.legend,\r\n isRequired: !!(AdvancedRadioDOM.dataset.isrequired === 'true'),\r\n fieldName: AdvancedRadioDOM.dataset.fieldname,\r\n radioOptions: JSON.parse(AdvancedRadioDOM.dataset.radiooptions)\r\n }\r\n const component = createApp(AdvancedRadio, props).use(Store)\r\n component.mount(AdvancedRadioDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport AmountSelector from './AmountSelector'\r\n\r\nconst el = '.kb-component--amount-selector'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((AmountSelectorDOM) => {\r\n const component = createApp(AmountSelector).use(Store)\r\n component.mount(AmountSelectorDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport ArticleAnchors from './ArticleAnchors'\r\n\r\nconst el = '.kb-component--article-anchors'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ArticleAnchor) => {\r\n if (ArticleAnchor.hasAttribute('data-v-app')) return false\r\n const component = createApp(ArticleAnchors).use(Store)\r\n component.mount(ArticleAnchor)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport AttachmentsEditor from './AttachmentsEditor'\r\n\r\nconst el = '.kb-component--community-attachments-editor'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CommunityAttachmentsDOM)=>{\r\n const props = {\r\n acceptedFileTypes: CommunityAttachmentsDOM.dataset.acceptedFileTypes,\r\n files: JSON.parse(CommunityAttachmentsDOM.dataset.files),\r\n maxAttachments: parseInt(CommunityAttachmentsDOM.dataset.maxAttachments)\r\n }\r\n const component = createApp(AttachmentsEditor, props).use(Store)\r\n component.mount(CommunityAttachmentsDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport AttachmentsViewer from './AttachmentsViewer'\r\n\r\nconst el = '.kb-component--community-attachments-viewer'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CommunityAttachmentsViewerDOM)=>{\r\n const props = {\r\n files: JSON.parse(CommunityAttachmentsViewerDOM.dataset.files)\r\n }\r\n const component = createApp(AttachmentsViewer, props).use(Store)\r\n component.mount(CommunityAttachmentsViewerDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport Basket from './Basket'\r\n\r\nconst el = '.kb-component--basket'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((BasketDOM) => {\r\n const asideResults = BasketDOM.dataset.asideResults\r\n ? JSON.parse(BasketDOM.dataset.asideResults)\r\n : {}\r\n const component = createApp(Basket, { asideResults }).use(Store)\r\n component.mount(BasketDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport BasketAside from './BasketAside'\r\n\r\nconst el = '.kb-component--basket-aside'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((BasketAsideDOM) => {\r\n const component = createApp(BasketAside, { asideResults }).use(\r\n Store\r\n )\r\n component.mount(BasketAsideDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport BasketCard from './BasketCard'\r\n\r\nconst el = '.kb-component--basket-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((BasketCardDOM) => {\r\n const component = createApp(BasketCard).use(Store)\r\n component.mount(BasketCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport BuySection from './BuySection'\r\n\r\nconst el = '.kb-component--buy-section'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n \r\n if (DOM && DOM.length) {\r\n DOM.forEach((BuySectionDOM) => {\r\n const props = {\r\n variants: BuySectionDOM.dataset.variants??'',\r\n currentVariantSku: BuySectionDOM.dataset.currentVariantSku,\r\n pdf: BuySectionDOM.dataset.pdf??'',\r\n soldOutText: BuySectionDOM.dataset.soldOutText??'',\r\n basketPageUrl: BuySectionDOM.dataset.basketPageUrl??'',\r\n hasRequiredRights: BuySectionDOM.dataset.hasRequiredRights,\r\n rolePageUrl: BuySectionDOM.dataset.rolePageUrl ?? ''\r\n }\r\n const component = createApp(BuySection, props).use(Store)\r\n component.mount(BuySectionDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport CaseCard from './CaseCard'\r\n\r\nconst el = '.kb-component--case-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((CaseCardDOM) => {\r\n const component = createApp(CaseCard).use(Store)\r\n component.mount(CaseCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport CaseCarousel from './CaseCarousel'\r\n\r\nconst el = '.kb-component--case-carousel'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((CaseCarouselDOM) => {\r\n const props = {\r\n carouselId: CaseCarouselDOM.id,\r\n contentJson: CaseCarouselDOM.dataset.contentjson\r\n ? JSON.parse(CaseCarouselDOM.dataset.contentjson)\r\n : [],\r\n link: CaseCarouselDOM.dataset.link\r\n ? JSON.parse(CaseCarouselDOM.dataset.link)\r\n : null,\r\n type: CaseCarouselDOM.dataset.type\r\n }\r\n\r\n const component = createApp(CaseCarousel, props).use(Store)\r\n component.mount(CaseCarouselDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './CaseModule.options'\r\n\r\nconst el = '.kb-component--case-module'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((CaseModuleDOM) => {\r\n const template = CaseModuleDOM.innerHTML\r\n options.template = template\r\n const glideId = CaseModuleDOM.querySelector('.glide').id\r\n const component = createApp(options, { glideId }).use(Store)\r\n component.mount(CaseModuleDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport CategoryPicker from './CategoryPicker'\r\n\r\nconst el = '.kb-component--category-picker'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((CategoryPickerDOM) => {\r\n const categories = CategoryPickerDOM.dataset.categories\r\n ? JSON.parse(CategoryPickerDOM.dataset.categories)\r\n : []\r\n const component = createApp(CategoryPicker, { categories }).use(\r\n Store\r\n )\r\n component.mount(CategoryPickerDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport ChangesSaved from './ChangesSaved'\r\n\r\nconst el = '.kb-component--changes-saved'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ChangesSavedDOM)=>{\r\n const component = createApp(ChangesSaved).use(Store)\r\n component.mount(ChangesSavedDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport CheckoutContent from './CheckoutContent'\r\n\r\nconst el = '.kb-component--checkout-content'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((CheckoutContentDOM) => {\r\n const component = createApp(CheckoutContent).use(Store)\r\n component.mount(CheckoutContentDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './CheckoutStepOne.options'\r\n\r\nconst el = '.kb-component--checkout-step-one'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n\r\n if (DOM.length) {\r\n DOM.forEach((DOM) => {\r\n const component = createApp(options).use(Store)\r\n component.mount(DOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport CheckoutStepThree from './CheckoutStepThree'\r\n\r\nconst el = '.kb-component--checkout-step-three'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((CheckoutStepThreeDOM) => {\r\n const component = createApp(CheckoutStepThree).use(Store)\r\n component.mount(CheckoutStepThreeDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport CheckoutStepTwo from './CheckoutStepTwo'\r\n\r\nconst el = '.kb-component--checkout-step-two'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((CheckoutStepTwoDOM) => {\r\n const addressResults = CheckoutStepTwoDOM.dataset.addressResults\r\n ? JSON.parse(CheckoutStepTwoDOM.dataset.addressResults)\r\n : null\r\n const component = createApp(CheckoutStepTwo, {\r\n addressResults\r\n }).use(Store)\r\n component.mount(CheckoutStepTwoDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport store from 'store'\r\n\r\nconst el = '[data-content=ClosedGroupOverlay]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ClosedGroupOverlayDOM)=>{\r\n const groupId = ClosedGroupOverlayDOM.dataset.groupId\r\n store.commit('main/set_page_overlay_content_data', { groupId })\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ConfirmChanges from './ConfirmChanges'\r\n\r\nconst el = '.kb-component--confirm-changes'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ConfirmChangesDOM)=>{\r\n const component = createApp(ConfirmChanges).use(Store)\r\n component.mount(ConfirmChangesDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ConfirmDeleteOverlay from './ConfirmDeleteOverlay'\r\n\r\nconst el = '.kb-component--confirm-delete-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ConfirmDeleteOverlayDOM)=>{\r\n const component = createApp(ConfirmDeleteOverlay).use(Store)\r\n component.mount(ConfirmDeleteOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ConfirmDeleteProfile from './ConfirmDeleteProfile'\r\n\r\nconst el = '.kb-component--confirm-delete-profile'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ConfirmDeleteProfileDOM)=>{\r\n const component = createApp(ConfirmDeleteProfile).use(Store)\r\n component.mount(ConfirmDeleteProfileDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport options from './ContactBanner.options'\r\n\r\nconst el = '.kb-component--contact-banner'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ContactBanner) => {\r\n if (ContactBanner.hasAttribute('data-v-app')) return false\r\n const component = createApp(options).use(Store)\r\n component.mount(ContactBanner)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport ContentCarousel from './ContentCarousel'\r\n\r\nconst el = '.kb-component--content-carousel'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM) {\r\n DOM.forEach((CarouselDOM) => {\r\n if (CarouselDOM.hasAttribute('data-v-app')) return false\r\n const props = {\r\n carouselId: CarouselDOM.id,\r\n contentJson: CarouselDOM.dataset.contentjson\r\n ? JSON.parse(CarouselDOM.dataset.contentjson)\r\n : [],\r\n glideBehaviour: CarouselDOM.dataset.glideBehaviour,\r\n type: CarouselDOM.dataset.type,\r\n link: CarouselDOM.dataset.link\r\n ? JSON.parse(CarouselDOM.dataset.link)\r\n : null\r\n }\r\n\r\n const component = createApp(ContentCarousel, props).use(Store)\r\n component.mount(CarouselDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './ContributionSelector.options'\r\n\r\nconst el = '.kb-component--contribution-selector'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ContributionSelectorDOM) => {\r\n const template = ContributionSelectorDOM.outerHTML\r\n const data = JSON.parse(ContributionSelectorDOM.dataset.data)\r\n options.template = template\r\n const component = createApp(options, { data }).use(Store)\r\n component.mount(ContributionSelectorDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport CreateCancerForumProfile from './CreateCancerForumProfile'\r\n\r\nconst el = '.kb-component--create-cancer-forum-profile'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((CreateCancerForumProfileDOM) => {\r\n const component = createApp(CreateCancerForumProfile).use(Store)\r\n component.mount(CreateCancerForumProfileDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreateEvent from './CreateEvent'\r\nimport handleComponentProps from 'foundation/js/utils/handleComponentProps'\r\n\r\nconst el = '.kb-component--create-event'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreateEventDOM)=>{\r\n const props = handleComponentProps(CreateEvent, CreateEventDOM)\r\n const component = createApp(CreateEvent, props).use(Store)\r\n component.mount(CreateEventDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreateFolderOverlay from './CreateFolderOverlay'\r\n\r\nconst el = '.kb-component--create-folder-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreateFolderOverlayDOM)=>{\r\n const props = {\r\n groupId: CreateFolderOverlay.dataset.groupId ?? \"\",\r\n content: CreateFolderOverlay.dataset.content ? JSON.parse(CreateFolderOverlay.dataset.content) : null,\r\n }\r\n const component = createApp(CreateFolderOverlay, props).use(Store)\r\n component.mount(CreateFolderOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreateFrivilligeProfile from './CreateFrivilligeProfile'\r\nimport handleComponentProps from 'foundation/js/utils/handleComponentProps'\r\n\r\nconst el = '.kb-component--create-frivillige-profile'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreateFrivilligeProfileDOM)=>{\r\n const props = handleComponentProps(CreateFrivilligeProfile, CreateFrivilligeProfileDOM)\r\n const component = createApp(CreateFrivilligeProfile, props).use(Store)\r\n component.mount(CreateFrivilligeProfileDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreateFrivilligJob from './CreateFrivilligJob'\r\nimport handleComponentProps from 'foundation/js/utils/handleComponentProps'\r\n\r\nconst el = '.kb-component--create-frivillig-job'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreateFrivilligJobDOM)=>{\r\n const props = handleComponentProps(CreateFrivilligJob, CreateFrivilligJobDOM)\r\n const component = createApp(CreateFrivilligJob, {\r\n ...props,\r\n isEditContext: CreateFrivilligJobDOM.hasAttribute('is-edit-context')\r\n }).use(Store)\r\n component.mount(CreateFrivilligJobDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreateGallery from './CreateGallery'\r\n\r\nconst el = '.kb-component--create-gallery'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreateGalleryDOM)=>{\r\n const props = {\r\n groupName: CreateGalleryDOM.dataset.groupName ?? \"\",\r\n groupId: CreateGalleryDOM.dataset.groupId ?? \"\",\r\n content: CreateGalleryDOM.dataset.content ? JSON.parse(CreateGalleryDOM.dataset.content) : null,\r\n }\r\n const component = createApp(CreateGallery, props).use(Store)\r\n component.mount(CreateGalleryDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreateNewFileOverlay from './CreateNewFileOverlay'\r\n\r\nconst el = '.kb-component--create-new-file-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreateNewFileOverlayDOM)=>{\r\n const component = createApp(CreateNewFileOverlay).use(Store)\r\n component.mount(CreateNewFileOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport CreatePost from './CreatePost'\r\n\r\nconst el = '.kb-component--create-post'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((CreatePostDOM)=>{\r\n const props = {\r\n groupName: CreatePostDOM.dataset.groupName ?? \"\",\r\n groupDescription : CreatePostDOM.dataset.groupDescription ?? \"\",\r\n groupId: CreatePostDOM.dataset.groupId ?? \"\",\r\n postId: CreatePostDOM.dataset.postId ?? \"\",\r\n content: CreatePostDOM.dataset.content ? JSON.parse(CreatePostDOM.dataset.content) : null,\r\n }\r\n const component = createApp(CreatePost, props).use(Store)\r\n component.mount(CreatePostDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport store from 'store'\r\nimport DeleteCancerProfileModal from './DeleteCancerProfileModal'\r\nconst el = '.kb-component--delete-cancer-profile-modal'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DeleteCancerProfileModalDOM) => {\r\n const props = {\r\n continueUrl: DeleteCancerProfileModalDOM.dataset.continueUrl,\r\n continueUrlWithData: DeleteCancerProfileModalDOM.dataset.continueUrlWithData,\r\n }\r\n const component = createApp(DeleteCancerProfileModal, props).use(Store)\r\n component.mount(DeleteCancerProfileModalDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DeleteEventModal from './DeleteEventModal'\r\n\r\nconst el = '.kb-component--delete-event-modal'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((DeleteEventModalDOM)=>{\r\n const component = createApp(DeleteEventModal).use(Store)\r\n component.mount(DeleteEventModalDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DeleteFrivilligjobOverlay from './DeleteFrivilligjobOverlay'\r\n\r\nconst el = '.kb-component--delete-frivilligjob-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((DeleteFrivilligjobOverlayDOM)=>{\r\n const component = createApp(DeleteFrivilligjobOverlay).use(Store)\r\n component.mount(DeleteFrivilligjobOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DeleteRoleOverlay from './DeleteRoleOverlay'\r\n\r\nconst el = '.kb-component--delete-role-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((DeleteRoleOverlayDOM)=>{\r\n const component = createApp(DeleteRoleOverlay).use(Store)\r\n component.mount(DeleteRoleOverlayDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport DeliveryAddress from './DeliveryAddress'\r\n\r\nconst el = '.kb-component--delivery-address'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DeliveryAddressDOM) => {\r\n const component = createApp(DeliveryAddress).use(Store)\r\n component.mount(DeliveryAddressDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport DeliveryCard from './DeliveryCard'\r\n\r\nconst el = '.kb-component--delivery-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n\r\n if (DOM.length) {\r\n DOM.forEach((DeliveryCardDOM) => {\r\n const type = DeliveryCardDOM.dataset.type\r\n const svgIcon = DeliveryCardDOM.dataset.svgIcon\r\n const component = createApp(DeliveryCard, { type, svgIcon }).use(\r\n Store\r\n )\r\n component.mount(DeliveryCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport DictionaryList from './DictionaryList.vue'\r\n\r\nconst el = '.kb-component--dictionary-list'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DictionaryListDOM) => {\r\n if (DictionaryListDOM.hasAttribute('data-v-app')) return false\r\n const dictionary = Array.from(\r\n DictionaryListDOM.querySelectorAll('.kb-dictionary-list__group')\r\n ).map((group) => {\r\n return {\r\n letter: group.querySelector(\r\n '.kb-dictionary-list__group__letter'\r\n ).textContent,\r\n words: Array.from(\r\n group.querySelectorAll(\r\n '.kb-dictionary-list__group__word A'\r\n )\r\n ).map((link) => {\r\n return {\r\n word: link.textContent,\r\n href: link.getAttribute('href')\r\n }\r\n })\r\n }\r\n })\r\n const showFilter = DictionaryListDOM.dataset.showfilter\r\n const component = createApp(DictionaryList, {\r\n dictionary,\r\n showFilter\r\n }).use(Store)\r\n component.mount(DictionaryListDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport DirectMessageNavigation from './DirectMessageNavigation'\r\n\r\nconst el = '.kb-component--direct-message-navigation'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DirectMessageNavigationDOM) => {\r\n const externalData = JSON.parse(DirectMessageNavigationDOM.dataset.external)\r\n\r\n const props = {\r\n guid: DirectMessageNavigationDOM.dataset.guid,\r\n userData: externalData?.userData,\r\n chatId: externalData?.chatId\r\n }\r\n const component = createApp(DirectMessageNavigation, props).use(Store)\r\n component.mount(DirectMessageNavigationDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DirectMessagesContent from './DirectMessagesContent'\r\n\r\nconst el = '.kb-component--direct-messages-content'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DirectMessagesContentDOM) => {\r\n const exturnalData = JSON.parse(DirectMessagesContentDOM.dataset.external)\r\n\r\n const props = {\r\n guid: DirectMessagesContentDOM.dataset.guid,\r\n chatId: exturnalData?.chatId,\r\n userData: exturnalData?.userData,\r\n }\r\n const component = createApp(DirectMessagesContent, props).use(Store)\r\n component.mount(DirectMessagesContentDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DirectMessageThread from './DirectMessageThread'\r\n\r\nconst el = '.kb-component--direct-message-thread'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DirectMessageThreadDOM) => {\r\n const externalData = JSON.parse(DirectMessageThreadDOM.dataset.external)\r\n\r\n const props = {\r\n chatId: externalData?.chatId,\r\n userData: externalData?.userData\r\n }\r\n\r\n const component = createApp(DirectMessageThread, props).use(Store)\r\n component.mount(DirectMessageThreadDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DocumentAndFolderList from './DocumentAndFolderList'\r\n\r\nconst el = '.kb-component--document-and-folder-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((DocumentAndFolderListDOM)=>{\r\n const props = {\r\n guid: DocumentAndFolderListDOM.dataset.guid ?? '',\r\n gruppeKode: DocumentAndFolderListDOM.dataset.gruppeKode ?? '',\r\n cardButtonIcons: DocumentAndFolderListDOM.dataset.cardButtonIcons\r\n ? JSON.parse(DocumentAndFolderListDOM.dataset.cardButtonIcons)\r\n : {},\r\n fileTypeDropdownOptions: JSON.parse(DocumentAndFolderListDOM.dataset.fileTypeDropdownOptions)\r\n }\r\n\r\n const component = createApp(DocumentAndFolderList, props).use(Store)\r\n component.mount(DocumentAndFolderListDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport options from './DonationAmount.options'\r\n\r\nconst el = '.kb-component--donation-amount'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DonationAmountDOM) => {\r\n const template = DonationAmountDOM.outerHTML\r\n options.template = template\r\n const showCustomDonation = DonationAmountDOM.hasAttribute(\r\n 'show-custom-Donation'\r\n )\r\n const component = createApp(options, { showCustomDonation }).use(\r\n Store\r\n )\r\n component.mount(DonationAmountDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport DonationCard from './DonationCard'\r\n\r\nconst el = '.kb-component--donation-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((DonationCardDOM) => {\r\n const component = createApp(DonationCard).use(Store)\r\n component.mount(DonationCardDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport DonationReceiptOverlay from './DonationReceiptOverlay'\r\n\r\nconst el = '[data-content=DonationReceiptOverlay]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((DonationReceiptOverlayDOM)=>{\r\n const readMoreUrl = DonationReceiptOverlayDOM.dataset.readMoreUrl\r\n Store.commit('main/set_page_overlay_content_data',{ readMoreUrl })\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport DropdownWithTags from './DropdownWithTags'\r\n\r\nconst el = '.kb-component--dropdown-with-tags'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((DropdownWithTagsDOM)=>{\r\n const props = {\r\n tooltipText: DropdownWithTagsDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n DropdownWithTagsDOM.dataset.errormessagelabel,\r\n helpMessageLabel: \r\n DropdownWithTagsDOM.dataset.helpmessagelabel,\r\n placeholder: DropdownWithTagsDOM.dataset.placeholder,\r\n tagsTitle: DropdownWithTagsDOM.dataset.tagstitle,\r\n label: DropdownWithTagsDOM.dataset.label,\r\n legend: DropdownWithTagsDOM.dataset.legend,\r\n isRequired: !!(\r\n DropdownWithTagsDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: DropdownWithTagsDOM.dataset.fieldname,\r\n selectOptions: JSON.parse(\r\n DropdownWithTagsDOM.dataset.selectoptions\r\n )\r\n }\r\n\r\n const component = createApp(DropdownWithTags, props).use(Store)\r\n component.mount(DropdownWithTagsDOM)\r\n })\r\n }\r\n}","// should update all templates to use this setup\r\nimport {createApp} from 'vue'\r\nimport EditFrivilligProfile from './EditFrivilligProfile'\r\nimport handleComponentProps from 'foundation/js/utils/handleComponentProps'\r\n\r\nconst el = '.kb-component--edit-frivillig-profile'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((EditFrivilligProfileDOM) => {\r\n const notificationWhenCommentOnSavedPosts =\r\n EditFrivilligProfileDOM.hasAttribute('notification-when-comment-on-saved-posts')\r\n \r\n const notificationWhenDirectMessage =\r\n EditFrivilligProfileDOM.hasAttribute('notification-when-direct-message')\r\n const notificationWhenNewDocument =\r\n EditFrivilligProfileDOM.hasAttribute('notification-when-new-document')\r\n const notificationWhenPostsOnGroups =\r\n EditFrivilligProfileDOM.hasAttribute('notification-when-posts-on-group')\r\n const addressVisible =\r\n EditFrivilligProfileDOM.hasAttribute('address-visible')\r\n const phonenumberVisible =\r\n EditFrivilligProfileDOM.hasAttribute('phonenumber-visible')\r\n const emailVisible =\r\n EditFrivilligProfileDOM.hasAttribute('email-visible') \r\n const hasNewsletterSubscription =\r\n EditFrivilligProfileDOM.hasAttribute('subscribed-to-newsletter') \r\n const props = handleComponentProps(EditFrivilligProfile, EditFrivilligProfileDOM)\r\n \r\n const component = createApp(EditFrivilligProfile, {\r\n ...props,\r\n notificationWhenCommentOnSavedPosts,\r\n notificationWhenDirectMessage,\r\n notificationWhenNewDocument,\r\n notificationWhenPostsOnGroups,\r\n addressVisible,\r\n phonenumberVisible,\r\n emailVisible,\r\n hasNewsletterSubscription\r\n }).use(Store)\r\n component.mount(EditFrivilligProfileDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FeaturedGroups from './FeaturedGroups'\r\nimport handleComponentProps from 'foundation/js/utils/handleComponentProps'\r\n\r\nconst el = '.kb-component--featured-groups'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FeaturedGroupsDOM)=> {\r\n const props = handleComponentProps(FeaturedGroups, FeaturedGroupsDOM)\r\n const component = createApp(FeaturedGroups, props).use(Store)\r\n component.mount(FeaturedGroupsDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FeaturedPostSpotCard from './FeaturedPostSpotCard'\r\n\r\nconst el = '.kb-component--featured-post-spot-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FeaturedPostSpotCardDOM)=>{\r\n const spotCardData = FeaturedPostSpotCardDOM.dataset.spotCard \r\n ? JSON.parse(FeaturedPostSpotCardDOM.dataset.spotCard) \r\n : null\r\n const component = createApp(FeaturedPostSpotCard, {spotCardData}).use(Store)\r\n component.mount(FeaturedPostSpotCardDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport options from './FeatureNavigationTeam.options'\r\n\r\nconst el = '.kb-component--feature-navigation-team'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FeatureNavigationTeamDOM)=>{\r\n const template = FeatureNavigationTeamDOM.outerHTML\r\n options.template = template\r\n\r\n const teamId = FeatureNavigationTeamDOM.dataset.teamId\r\n const component = createApp(options, { teamId }).use(Store)\r\n component.mount(FeatureNavigationTeamDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FileListCard from './FileListCard'\r\n\r\nconst el = '.kb-component--file-list-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FileListCardDOM)=>{\r\n const cardData = FileListCardDOM.dataset.card \r\n ? JSON.parse(FileListCardDOM.dataset.card) \r\n : null\r\n const cardButtonIcons = FileListCardDOM.dataset.cardButtonIcons\r\n ? JSON.parse(FileListCardDOM.dataset.cardButtonIcons)\r\n : {}\r\n const component = createApp(FileListCard, {cardData, cardButtonIcons}).use(Store)\r\n component.mount(FileListCardDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport FlowEditModal from './FlowEditModal'\r\n\r\nconst el = '.kb-component--flow-edit-modal'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FlowEditModalDOM) => {\r\n const component = createApp(FlowEditModal).use(Store)\r\n component.mount(FlowEditModalDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport options from './FlowHeader.options'\r\n\r\nconst el = '.kb-component--flow-header'\r\n\r\nexport default function(Store){\r\n const FlowHeaderDOM = document.querySelector(el)\r\n if(FlowHeaderDOM){\r\n const template = FlowHeaderDOM.innerHTML\r\n options.template = template\r\n \r\n const isStafet = FlowHeaderDOM.hasAttribute('is-stafet')\r\n const isIndependent = FlowHeaderDOM.hasAttribute('is-independent')\r\n const component = createApp(options, {isIndependent, isStafet}).use(Store)\r\n component.mount(FlowHeaderDOM)\r\n\r\n }\r\n}\r\n\r\n","import { createApp } from 'vue'\r\nimport FormAddressField from './FormAddressField'\r\n\r\nconst el = '.kb-component--form-address-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormAddressFieldDOM) => {\r\n const component = createApp(FormAddressField).use(Store)\r\n component.mount(FormAddressFieldDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './FormAddressFieldGroup.options'\r\n\r\nconst el = '.kb-component--form-address-field-group'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FormAddressFieldGroupDOM) => {\r\n const template = FormAddressFieldGroupDOM.innerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(FormAddressFieldGroupDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormCheckbox from './FormCheckbox'\r\n\r\nconst el = '.kb-component--form-checkbox'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FormCheckboxDOM) => {\r\n const props = {\r\n type: FormCheckboxDOM.dataset.type,\r\n tooltipText: FormCheckboxDOM.dataset.tooltiptext,\r\n errorMessageLabel: FormCheckboxDOM.dataset.errormessagelabel,\r\n helpMessageLabel: FormCheckboxDOM.dataset.helpmessagelabel,\r\n placeholder: FormCheckboxDOM.dataset.placeholder,\r\n label: FormCheckboxDOM.dataset.label,\r\n isRequired: !!(FormCheckboxDOM.dataset.isrequired === 'true'),\r\n fieldName: FormCheckboxDOM.dataset.fieldname\r\n }\r\n const component = createApp(FormCheckbox, props).use(Store)\r\n component.mount(FormCheckboxDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputCprField from './FormInputCprField'\r\n\r\nconst el = '.kb-component--form-input-cpr-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FormInputCprFieldDOM) => {\r\n const props = {\r\n type: FormInputCprFieldDOM.dataset.type,\r\n tooltipText: FormInputCprFieldDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputCprFieldDOM.dataset.errormessagelabel,\r\n helpMessageLabel: FormInputCprFieldDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputCprFieldDOM.dataset.placeholder,\r\n label: FormInputCprFieldDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputCprFieldDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputCprFieldDOM.dataset.fieldname\r\n }\r\n const component = createApp(FormInputCprField, props).use(Store)\r\n component.mount(FormInputCprFieldDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputCvrField from './FormInputCvrField'\r\n\r\nconst el = '.kb-component--form-input-cvr-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FormInputCvrFieldDOM) => {\r\n const props = {\r\n type: FormInputCvrFieldDOM.dataset.type,\r\n tooltipText: FormInputCvrFieldDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputCvrFieldDOM.dataset.errormessagelabel,\r\n helpMessageLabel: FormInputCvrFieldDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputCvrFieldDOM.dataset.placeholder,\r\n label: FormInputCvrFieldDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputCvrFieldDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputCvrFieldDOM.dataset.fieldname\r\n }\r\n const component = createApp(FormInputCvrField, props).use(Store)\r\n component.mount(FormInputCvrFieldDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport FormInputDateField from './FormInputDateField'\r\n\r\nconst el = '.kb-component--form-input-date-field'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FormInputDateFieldDOM)=>{\r\n const component = createApp(FormInputDateField).use(Store)\r\n component.mount(FormInputDateFieldDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport FormInputDropdown from './FormInputDropdown'\r\n\r\nconst el = '.kb-component--form-input-dropdown'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormInputDropdownDOM) => {\r\n const props = {\r\n tooltipText: FormInputDropdownDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputDropdownDOM.dataset.errormessagelabel,\r\n helpMessageLabel: \r\n FormInputDropdownDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputDropdownDOM.dataset.placeholder,\r\n label: FormInputDropdownDOM.dataset.label,\r\n legend: FormInputDropdownDOM.dataset.legend,\r\n isRequired: !!(\r\n FormInputDropdownDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputDropdownDOM.dataset.fieldname,\r\n selectOptions: JSON.parse(\r\n FormInputDropdownDOM.dataset.selectoptions\r\n )\r\n }\r\n const component = createApp(FormInputDropdown, props).use(Store)\r\n component.mount(FormInputDropdownDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputEmailField from './FormInputEmailField'\r\n\r\nconst el = '.kb-component--form-input-email-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormInputEmailFieldDOM) => {\r\n const props = {\r\n tooltipText: FormInputEmailFieldDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputEmailFieldDOM.dataset.errormessagelabel,\r\n helpMessageLabel:\r\n FormInputEmailFieldDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputEmailFieldDOM.dataset.placeholder,\r\n label: FormInputEmailFieldDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputEmailFieldDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputEmailFieldDOM.dataset.fieldname\r\n }\r\n\r\n const component = createApp(FormInputEmailField, props).use(Store)\r\n component.mount(FormInputEmailFieldDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputNameField from './FormInputNameField'\r\n\r\nconst el = '.kb-component--form-input-name-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FormInputNameFieldDOM) => {\r\n const props = {\r\n type: FormInputNameFieldDOM.dataset.type,\r\n tooltipText: FormInputNameFieldDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputNameFieldDOM.dataset.errormessagelabel,\r\n helpMessageLabel:\r\n FormInputNameFieldDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputNameFieldDOM.dataset.placeholder,\r\n label: FormInputNameFieldDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputNameFieldDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputNameFieldDOM.dataset.fieldname\r\n }\r\n const component = createApp(FormInputNameField, props).use(Store)\r\n component.mount(FormInputNameFieldDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputPhoneField from './FormInputPhoneField'\r\n\r\nconst el = '.kb-component--form-input-phone-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormInputPhoneFieldDOM) => {\r\n const props = {\r\n tooltipText: FormInputPhoneFieldDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputPhoneFieldDOM.dataset.errormessagelabel,\r\n helpMessageLabel:\r\n FormInputPhoneFieldDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputPhoneFieldDOM.dataset.placeholder,\r\n label: FormInputPhoneFieldDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputPhoneFieldDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputPhoneFieldDOM.dataset.fieldname\r\n }\r\n\r\n const component = createApp(FormInputPhoneField, props).use(Store)\r\n component.mount(FormInputPhoneFieldDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputTextarea from './FormInputTextarea'\r\n\r\nconst el = '.kb-component--form-input-textarea'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormInputTextareaDOM) => {\r\n const props = {\r\n type: FormInputTextareaDOM.dataset.type,\r\n tooltipText: FormInputTextareaDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputTextareaDOM.dataset.errormessagelabel,\r\n helpMessageLabel:\r\n FormInputTextareaDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputTextareaDOM.dataset.placeholder,\r\n label: FormInputTextareaDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputTextareaDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputTextareaDOM.dataset.fieldname\r\n }\r\n\r\n const component = createApp(FormInputTextarea, props).use(Store)\r\n component.mount(FormInputTextareaDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormInputTextField from './FormInputTextField.vue'\r\n\r\nconst el = '.kb-component--form-input-text-field'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormInputTextFieldDOM) => {\r\n const props = {\r\n type: FormInputTextFieldDOM.dataset.type,\r\n tooltipText: FormInputTextFieldDOM.dataset.tooltiptext,\r\n errorMessageLabel:\r\n FormInputTextFieldDOM.dataset.errormessagelabel,\r\n helpMessageLabel:\r\n FormInputTextFieldDOM.dataset.helpmessagelabel,\r\n placeholder: FormInputTextFieldDOM.dataset.placeholder,\r\n label: FormInputTextFieldDOM.dataset.label,\r\n isRequired: !!(\r\n FormInputTextFieldDOM.dataset.isrequired === 'true'\r\n ),\r\n fieldName: FormInputTextFieldDOM.dataset.fieldname\r\n }\r\n const component = createApp(FormInputTextField, props).use(Store)\r\n component.mount(FormInputTextFieldDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormRadioGroup from './FormRadioGroup'\r\n\r\nconst el = '.kb-component--form-radio-group'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((FormRadioGroupDOM) => {\r\n const props = {\r\n type: FormRadioGroupDOM.dataset.type,\r\n tooltipText: FormRadioGroupDOM.dataset.tooltiptext,\r\n errorMessageLabel: FormRadioGroupDOM.dataset.errormessagelabel,\r\n helpMessageLabel: FormRadioGroupDOM.dataset.helpmessagelabel,\r\n placeholder: FormRadioGroupDOM.dataset.placeholder,\r\n label: FormRadioGroupDOM.dataset.label,\r\n legend: FormRadioGroupDOM.dataset.legend,\r\n isRequired: !!(FormRadioGroupDOM.dataset.isrequired === 'true'),\r\n fieldName: FormRadioGroupDOM.dataset.fieldname,\r\n radioOptions: JSON.parse(FormRadioGroupDOM.dataset.radiooptions),\r\n localValue: FormRadioGroupDOM.dataset.localValue,\r\n }\r\n const component = createApp(FormRadioGroup, props).use(Store)\r\n component.mount(FormRadioGroupDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport FormStepSubmitting from './FormStepSubmitting'\r\n\r\nconst el = '.kb-component--form-step-submitting'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FormStepSubmittingDOM) => {\r\n const component = createApp(FormStepSubmitting).use(Store)\r\n component.mount(FormStepSubmittingDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport FormStepZero from './FormStepZero'\r\n\r\nconst el = '.kb-component--form-step-zero'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FormStepZeroDOM)=>{\r\n const component = createApp(FormStepZero).use(Store)\r\n component.mount(FormStepZeroDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport store from 'store'\r\nimport ForumEditProfile from './ForumEditProfile'\r\n\r\nconst el = '.kb-component--forum-edit-profile'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ForumEditProfileDOM)=>{\r\n const props = {\r\n content: ForumEditProfileDOM.dataset.content ? JSON.parse(ForumEditProfileDOM.dataset.content) : {},\r\n continueUrl : ForumEditProfileDOM.dataset.continueUrl,\r\n continueUrlWithData: ForumEditProfileDOM.dataset.continueUrlWithData\r\n }\r\n store.commit('main/set_page_overlay_content_data', {\r\n userId: ForumEditProfileDOM.dataset.userId\r\n })\r\n const component = createApp(ForumEditProfile, props).use(Store)\r\n component.mount(ForumEditProfileDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FrivilligeCheckoutContent from './FrivilligeCheckoutContent'\r\n\r\nconst el = '.kb-component--frivillige-checkout-content'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FrivilligeCheckoutContentDOM) => {\r\n const externalData = FrivilligeCheckoutContentDOM.dataset.external \r\n ? JSON.parse(FrivilligeCheckoutContentDOM.dataset.external)\r\n : null\r\n const props = {\r\n userData: externalData?.userData ?? {},\r\n }\r\n const component = createApp(FrivilligeCheckoutContent, props).use(Store)\r\n component.mount(FrivilligeCheckoutContentDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FrivilligeCheckoutStepOne from './FrivilligeCheckoutStepOne'\r\n\r\nconst el = '.kb-component--frivillige-checkout-step-one'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FrivilligeCheckoutStepOneDOM) => {\r\n const props = {\r\n fields: FrivilligeCheckoutStepOneDOM.dataset.fields\r\n ? JSON.parse(FrivilligeCheckoutStepOneDOM.dataset.fields)\r\n : {}\r\n }\r\n const component = createApp(FrivilligeCheckoutStepOne, props).use(Store)\r\n component.mount(FrivilligeCheckoutStepOneDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FrivilligeCheckoutStepTwo from './FrivilligeCheckoutStepTwo'\r\n\r\nconst el = '.kb-component--frivillige-checkout-step-two'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FrivilligeCheckoutStepTwoDOM)=>{\r\n const component = createApp(FrivilligeCheckoutStepTwo).use(Store)\r\n component.mount(FrivilligeCheckoutStepTwoDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport FrivilligePostsList from './FrivilligePostsList'\r\n\r\nconst el = '.kb-component--frivillige-posts-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FrivilligePostsListDOM)=>{\r\n const props = {\r\n isMember: FrivilligePostsListDOM.hasAttribute('is-member'),\r\n isLoggedIn: FrivilligePostsListDOM.hasAttribute('is-logged-in'),\r\n guid: FrivilligePostsListDOM.dataset.guid,\r\n groupId: FrivilligePostsListDOM.dataset.groupId,\r\n featuredPostSpotCards: FrivilligePostsListDOM.dataset.featuredPostSpotCards \r\n ? JSON.parse(FrivilligePostsListDOM.dataset.featuredPostSpotCards) \r\n : null\r\n }\r\n const component = createApp(FrivilligePostsList, props).use(Store)\r\n component.mount(FrivilligePostsListDOM)\r\n })\r\n }\r\n\r\n}","import {createApp} from 'vue'\r\nimport FrivilligeShopWrongRoleModal from './FrivilligeShopWrongRoleModal'\r\n\r\nconst el = '.kb-component--frivillige-shop-wrong-role-modal'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FrivilligeShopWrongRoleModalDOM)=>{\r\n const component = createApp(FrivilligeShopWrongRoleModal).use(Store)\r\n component.mount(FrivilligeShopWrongRoleModalDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport options from './FrivilligGroupHero.options'\r\n\r\nconst el = '.kb-component--frivillig-group-hero'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FrivilligGroupHeroDOM)=>{\r\n options.template = FrivilligGroupHeroDOM.innerHtml\r\n const props = {\r\n gruppeKode: FrivilligGroupHeroDOM.dataset.gruppeKode,\r\n isLoggedIn: FrivilligGroupHeroDOM.dataset.isLoggedIn === 'true',\r\n loginUrl: FrivilligGroupHeroDOM.dataset.loginUrl,\r\n closedGroup: FrivilligGroupHeroDOM.dataset.gruppeIsClosed === 'true'\r\n }\r\n const component = createApp(options, props).use(Store)\r\n component.mount(FrivilligGroupHeroDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport options from './FrivilligjobAside.options'\r\n\r\nconst el = '.kb-component--frivilligjob-aside'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FrivilligjobAsideDOM)=>{ \r\n const template = FrivilligjobAsideDOM.innerHTML\r\n \r\n options.template = template\r\n const props = {\r\n jobId: FrivilligjobAsideDOM.dataset.jobId,\r\n redirectAfterDeleteUrl: FrivilligjobAsideDOM.dataset.deleteRedirectUrl,\r\n }\r\n\r\n const component = createApp(options, props).use(Store)\r\n component.mount(FrivilligjobAsideDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport FrivilligjobCard from './FrivilligjobCard'\r\n\r\nconst el = '.kb-component--frivilligjob-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FrivilligjobCardDOM)=>{\r\n const component = createApp(FrivilligjobCard).use(Store)\r\n component.mount(FrivilligjobCardDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport FundraiseForm from './FundraiseForm'\r\n\r\nconst el = '.kb-component--fundraise-form'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FundraiseFormDOM) => {\r\n const guid = FundraiseFormDOM.dataset.guid\r\n const cancelUrl = FundraiseFormDOM.dataset.cancelUrl\r\n const draft = FundraiseFormDOM.dataset.draft\r\n ? JSON.parse(FundraiseFormDOM.dataset.draft)\r\n : null\r\n const donationSettings = FundraiseFormDOM.dataset?.donationSettings\r\n if (donationSettings) {\r\n Store.commit(\r\n 'fundraising/set_donation_settings',\r\n JSON.parse(donationSettings)\r\n )\r\n }\r\n\r\n const isMindegave = FundraiseFormDOM.hasAttribute('is-mindegave')\r\n const showUnsavedChangesWarning = FundraiseFormDOM.hasAttribute('show-unsaved-changes-warning')\r\n const component = createApp(FundraiseForm, {\r\n fundraisingCampaignId: guid,\r\n cancelUrl,\r\n isMindegave,\r\n showUnsavedChangesWarning,\r\n draft\r\n }).use(Store)\r\n component.mount(FundraiseFormDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport FundraisingAsideVue from './FundraisingAsideVue'\r\nimport handleComponentProps from 'foundation/js/utils/handleComponentProps'\r\n\r\nconst el = '.kb-component--fundraising-aside-vue'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FundraisingAsideVueDOM)=>{\r\n const props = handleComponentProps(FundraisingAsideVue, FundraisingAsideVueDOM)\r\n const component = createApp(FundraisingAsideVue, props).use(Store)\r\n component.mount(FundraisingAsideVueDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport FundraisingCard from './FundraisingCard'\r\n\r\nconst el = '.kb-component--fundraising-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FundraisingCardDOM) => {\r\n const component = createApp(FundraisingCard).use(Store)\r\n component.mount(FundraisingCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './FundraisingHero.options'\r\n\r\nconst el = '.kb-component--fundraising-hero'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((FundraisingHeroDOM) => {\r\n const template = FundraisingHeroDOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(FundraisingHeroDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport FVLConfirmDeleteProfile from './FVLConfirmDeleteProfile'\r\n\r\nconst el = '.kb-component--fvl-confirm-delete-profile'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((FVLConfirmDeleteProfileDOM)=>{\r\n const component = createApp(FVLConfirmDeleteProfile).use(Store)\r\n component.mount(FVLConfirmDeleteProfileDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport GalleryCard from './GalleryCard'\r\n\r\nconst el = '.kb-component--gallery-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((GalleryCardDOM)=>{\r\n const props = {\r\n result: JSON.parse(GalleryCardDOM.dataset.result) ?? {}\r\n }\r\n const component = createApp(GalleryCard, props).use(Store)\r\n component.mount(GalleryCardDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport GroupCard from './GroupCard'\r\n\r\nconst el = '.kb-component--group-card'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((GroupCardDOM) => {\r\n const props = {\r\n content: GroupCardDOM.dataset.content ? JSON.parse(GroupCardDOM.dataset.content) : {}\r\n }\r\n const component = createApp(GroupCard, props).use(Store)\r\n component.mount(GroupCardDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport GroupDetails from './GroupDetails'\r\n\r\nconst el = '.kb-component--group-details'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((GroupDetailsDOM) => {\r\n const props = {\r\n id: GroupDetailsDOM.dataset.id,\r\n svgIcon: GroupDetailsDOM.dataset.svgIcon,\r\n colorTheme: GroupDetailsDOM.dataset.colorTheme,\r\n title: GroupDetailsDOM.dataset.title,\r\n type: GroupDetailsDOM.dataset.type,\r\n updates: GroupDetailsDOM.dataset.updates ? parseInt(GroupDetailsDOM.dataset.updates) : 0,\r\n numberOfMembers: GroupDetailsDOM.dataset.numberOfMembers ? parseInt(GroupDetailsDOM.dataset.numberOfMembers) : 0,\r\n numberOfPosts: GroupDetailsDOM.dataset.numberOfPosts ? parseInt(GroupDetailsDOM.dataset.numberOfPosts) : 0,\r\n link: GroupDetailsDOM.dataset.link\r\n }\r\n const component = createApp(GroupDetails, props).use(Store)\r\n component.mount(GroupDetailsDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport GroupPost from './GroupPost'\r\n\r\nconst el = '.kb-component--group-post'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((GroupPostDOM)=>{\r\n const props = {\r\n result: GroupPostDOM.dataset.result ? JSON.parse(GroupPostDOM.dataset.result) : {},\r\n comments: GroupPostDOM.dataset.comments ? JSON.parse(GroupPostDOM.dataset.comments) : null,\r\n isFrivilligContext: GroupPostDOM.dataset.isFrivilligContext,\r\n groupId: GroupPostDOM.dataset.groupId\r\n }\r\n const component = createApp(GroupPost, props).use(Store)\r\n component.mount(GroupPostDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport GroupSearchResult from './GroupSearchResult'\r\n\r\nconst el = '.kb-component--group-search-result'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((GroupSearchResultDOM)=>{\r\n const props = {\r\n source: GroupSearchResultDOM.dataset.source,\r\n hovedgruppekode: GroupSearchResultDOM.dataset.hovedgruppekode,\r\n guid: GroupSearchResultDOM.dataset.guid,\r\n spotCard: GroupSearchResultDOM.dataset.spotCard ? JSON.parse(GroupSearchResultDOM.dataset.spotCard) : null,\r\n skip: parseInt(GroupSearchResultDOM.dataset.skip) ?? 0,\r\n take: parseInt(GroupSearchResultDOM.dataset.take) ?? 10,\r\n disableInitialSearch: GroupSearchResultDOM.dataset.disableInitialSearch === 'true'\r\n }\r\n const component = createApp(GroupSearchResult, props).use(Store)\r\n component.mount(GroupSearchResultDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport GruppeadgangsanmodningList from './GruppeadgangsanmodningList'\r\n\r\nconst el = '.kb-component--gruppeadgangsanmodning-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((GruppeadgangsanmodningListDOM)=>{\r\n const props = {\r\n guid: GruppeadgangsanmodningListDOM.dataset.searchGuid,\r\n skip: parseInt(GruppeadgangsanmodningListDOM.dataset.skip) ?? 0,\r\n take: parseInt(GruppeadgangsanmodningListDOM.dataset.take) ?? 10\r\n }\r\n const component = createApp(GruppeadgangsanmodningList, props).use(Store)\r\n component.mount(GruppeadgangsanmodningListDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport GtmTracker from './GtmTracker'\r\n\r\nconst el = '.kb-component--gtm-tracker'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((GtmTrackerDOM) => {\r\n const trackJson = GtmTrackerDOM.dataset.trackJson\r\n const trackData = trackJson ? JSON.parse(trackJson) : null\r\n const component = createApp(GtmTracker, { trackData }).use(Store)\r\n component.mount(GtmTrackerDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport HeroSectionCancerforum from './HeroSectionCancerforum'\r\n\r\nconst el = '.kb-component--hero-section-cancerforum'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((HeroSectionCancerforumDOM)=>{\r\n const groupId = HeroSectionCancerforumDOM.dataset.groupId\r\n const isLoggedIn = HeroSectionCancerforumDOM.hasAttribute('is-logged-in')\r\n const isClosedGroup = HeroSectionCancerforumDOM.hasAttribute('is-closed-group')\r\n const isUserAwaitingAccess = HeroSectionCancerforumDOM.hasAttribute('is-awaiting-access')\r\n const loginUrl = HeroSectionCancerforumDOM.dataset.loginUrl\r\n\r\n const component = createApp(HeroSectionCancerforum, { groupId, isLoggedIn, isClosedGroup, isUserAwaitingAccess, loginUrl }).use(Store)\r\n component.mount(HeroSectionCancerforumDOM)\r\n })\r\n }\r\n}","import store from 'store'\r\n\r\nconst el = '[data-content=HoldetsDeltagere]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((HoldetsDeltagereDOM)=>{\r\n const teamId = HoldetsDeltagereDOM.dataset.teamid\r\n const addDeltagerFormUrl = HoldetsDeltagereDOM.dataset.addDeltagerFormUrl\r\n const donationFormUrl = HoldetsDeltagereDOM.dataset.donationFormUrl\r\n const lysposeFormUrl = HoldetsDeltagereDOM.dataset.lysposeFormUrl\r\n \r\n store.commit('main/set_page_overlay_content_data',{ teamId, addDeltagerFormUrl, donationFormUrl, lysposeFormUrl })\r\n })\r\n }\r\n}","import store from 'store'\r\n\r\nconst el = '[data-content=HoldetsDonationer]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((HoldetsDonationerDOM)=>{\r\n const teamId = HoldetsDonationerDOM.dataset.teamid\r\n const donationFormUrl = HoldetsDonationerDOM.dataset.donationFormUrl\r\n \r\n store.commit('main/set_page_overlay_content_data',{ teamId, donationFormUrl })\r\n })\r\n }\r\n}","import store from 'store'\r\n\r\nconst el = '[data-content=HoldetsLys]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((HoldetsLysDOM)=>{\r\n const teamId = HoldetsLysDOM.dataset.teamid\r\n const lysposeFormUrl = HoldetsLysDOM.dataset.lysposeFormUrl\r\n \r\n store.commit('main/set_page_overlay_content_data',{ teamId, lysposeFormUrl })\r\n })\r\n }\r\n}","import store from 'store'\r\n\r\nconst el = '[data-content=HoldetsRoundCounterOverlay]'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((HoldetsRoundCounterOverlayDOM) => {\r\n if (HoldetsRoundCounterOverlayDOM.dataset.teamid) {\r\n const teamId = HoldetsRoundCounterOverlayDOM.dataset.teamid\r\n const maxRegistrationCount = parseInt(HoldetsRoundCounterOverlayDOM.dataset.maxRegistrationCount)\r\n \r\n store.commit('main/set_page_overlay_content_data', { teamId, maxRegistrationCount })\r\n }\r\n })\r\n }\r\n}\r\n","import store from 'store'\r\n\r\nconst el = '[data-content=HoldOprettelseKvittering]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((HoldOprettelseKvitteringDOM)=>{\r\n if(HoldOprettelseKvitteringDOM.dataset.teamid){\r\n const teamId = HoldOprettelseKvitteringDOM.dataset.teamid\r\n store.commit('main/set_page_overlay_content_data',{ teamId })\r\n }\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ImageGallery from './ImageGallery'\r\n\r\nconst el = '.kb-component--image-gallery'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ImageGalleryDOM)=>{\r\n const imgs = JSON.parse(ImageGalleryDOM.dataset.imgs)\r\n const type = ImageGalleryDOM.dataset.type\r\n const component = createApp(ImageGallery, {imgs, type}).use(Store)\r\n component.mount(ImageGalleryDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport LocationCard from './LocationCard'\r\n\r\nconst el = '.kb-component--location-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((LocationCardDOM) => {\r\n const component = createApp(LocationCard).use(Store)\r\n component.mount(LocationCardDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport LoginOverlay from './LoginOverlay'\r\n\r\nconst el = '[data-content=LoginOverlay]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((LoginOverlayDOM)=>{\r\n const loginUrl = LoginOverlayDOM.dataset.loginUrl\r\n const createProfileUrl = LoginOverlayDOM.dataset.createProfileUrl\r\n\r\n Store.commit('main/set_page_overlay_content_data',{ loginUrl, createProfileUrl })\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport LotteryForm from './LotteryForm'\r\n\r\nconst el = '.kb-component--lottery-form'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((LotteryFormDOM)=>{\r\n const props = {\r\n lotteryRounds: JSON.parse(LotteryFormDOM.dataset.lotteryDropdownOptions)\r\n }\r\n const component = createApp(LotteryForm, props).use(Store)\r\n component.mount(LotteryFormDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport MaterialCard from './MaterialCard'\r\n\r\nconst el = '.kb-component--material-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((MaterialCardDOM) => {\r\n const component = createApp(MaterialCard).use(Store)\r\n component.mount(MaterialCardDOM)\r\n })\r\n }\r\n}\r\n","import store from 'store'\r\n\r\nconst el = '[data-content=MemberListOverlay]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((MemberListOverlayDOM)=>{\r\n const groupId = MemberListOverlayDOM.dataset.groupId\r\n store.commit('main/set_page_overlay_content_data', { groupId })\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport MemberListOverlayFVL from './MemberListOverlayFVL'\r\n\r\nconst el = '.kb-component--member-list-overlay-fvl'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((MemberListOverlayFVLDOM)=>{\r\n\r\n const component = createApp(MemberListOverlayFVL).use(Store)\r\n component.mount(MemberListOverlayFVLDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport MemberOverlay from './MemberOverlay'\r\n\r\nconst el = '.kb-component--member-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((MemberOverlayDOM)=>{\r\n const component = createApp(MemberOverlay).use(Store)\r\n component.mount(MemberOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport MemberOverlayProfileCard from './MemberOverlayProfileCard'\r\n\r\nconst el = '.kb-component--member-overlay-profile-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((MemberOverlayProfileCardDOM)=>{\r\n const component = createApp(MemberOverlayProfileCard).use(Store)\r\n component.mount(MemberOverlayProfileCardDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport options from './MitIdLogout.options'\r\n\r\nconst el = '.kb-component--mit-id-logout'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelector(el)\r\n\r\n if(DOM){\r\n const template = DOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(DOM)\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport MoveFileOverlay from './MoveFileOverlay'\r\n\r\nconst el = '.kb-component--move-file-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((MoveFileOverlayDOM)=>{\r\n const component = createApp(MoveFileOverlay).use(Store)\r\n component.mount(MoveFileOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport NoSearchResults from './NoSearchResults'\r\n\r\nconst el = '.kb-component--no-search-results'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((NoSearchResultsDOM)=>{\r\n const guids = NoSearchResultsDOM.dataset.guids \r\n ? JSON.parse(NoSearchResultsDOM.dataset.guids) \r\n : []\r\n\r\n const component = createApp(NoSearchResults, { guids }).use(Store)\r\n component.mount(NoSearchResultsDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport NotificationList from './NotificationList'\r\n\r\nconst el = '.kb-component--notification-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((NotificationListDOM) => {\r\n const props = {\r\n skip: parseInt(NotificationListDOM.dataset.skip) ?? 0,\r\n take: parseInt(NotificationListDOM.dataset.take) ?? 10\r\n }\r\n const component = createApp(NotificationList, props).use(Store)\r\n component.mount(NotificationListDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport OpretHoldOverlay from './OpretHoldOverlay'\r\n\r\nconst el = '[data-content=OpretHoldOverlay]'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((OpretHoldOverlayDOM)=>{\r\n const stafetkode = OpretHoldOverlayDOM.dataset.stafetkode\r\n const createHoldUrl = OpretHoldOverlayDOM.dataset.createHoldUrl\r\n\r\n Store.commit('stafet/set_stafet_id', stafetkode)\r\n Store.commit('main/set_page_overlay_content_data', {createHoldUrl})\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport OrdreOverview from './OrdreOverview'\r\n\r\nconst el = '.kb-component--ordre-overview'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((OrdreOverviewDOM) => {\r\n const props = {\r\n orders: JSON.parse(OrdreOverviewDOM.dataset.orders),\r\n }\r\n const component = createApp(OrdreOverview, props).use(Store)\r\n component.mount(OrdreOverviewDOM)\r\n })\r\n }\r\n}","import Accordion from '../Accordion/Accordion.init.js'\r\nimport Dictionary from '../Dictionary/Dictionary.init.js'\r\nimport DictionaryWord from '../DictionaryWord/DictionaryWord.init.js'\r\nimport FactBox from '../FactBox/FactBox.init.js'\r\nimport InfoCarousel from '../InfoCarousel/InfoCarousel.init.js'\r\nimport SubNavigation from '../SubNavigation/SubNavigation.init.js'\r\nimport TheHeader from '../TheHeader/TheHeader.init.js'\r\nimport VideoComponent from '../VideoComponent/VideoComponent.init.js'\r\n\r\nexport default function (Store) {\r\n Accordion(Store)\r\n Dictionary(Store)\r\n DictionaryWord(Store)\r\n FactBox(Store)\r\n InfoCarousel(Store)\r\n SubNavigation(Store)\r\n TheHeader(Store)\r\n VideoComponent(Store)\r\n}\r\n","import { createApp } from 'vue'\r\nimport PersonalDonationStep2a from './PersonalDonationStep2a'\r\n\r\nconst el = '.kb-component--personal-donation-step2-a'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((PersonalDonationStep2aDOM) => {\r\n const component = createApp(PersonalDonationStep2a).use(Store)\r\n component.mount(PersonalDonationStep2aDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport PersonalDonationStep3 from './PersonalDonationStep3'\r\n\r\nconst el = '.kb-component--fundraise-step3'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((PersonalDonationStep3DOM) => {\r\n const component = createApp(PersonalDonationStep3).use(Store)\r\n component.mount(PersonalDonationStep3DOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport PickUpAddress from './PickUpAddress'\r\n\r\nconst el = '.kb-component--pick-up-address'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((PickUpAddressDOM) => {\r\n const component = createApp(PickUpAddress).use(Store)\r\n component.mount(PickUpAddressDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport PodcastSliderCard from './PodcastSliderCard'\r\n\r\nconst el = '.kb-component--podcast-slider-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((PodcastSliderCardDom) => {\r\n const data = PodcastSliderCardDom.dataset.data\r\n ? JSON.parse(PodcastSliderCardDom.dataset.data)\r\n : null\r\n\r\n const component = createApp(PodcastSliderCard, { data }).use(Store)\r\n component.mount(PodcastSliderCardDom)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport options from './PostAside.options'\r\n\r\nconst el = '.kb-component--post-aside'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((PostAsideDOM)=>{\r\n const template = PostAsideDOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(PostAsideDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport PostComment from './PostComment'\r\n\r\nconst el = '.kb-component--post-comment'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((PostCommentDOM)=>{\r\n const props = {\r\n isFrivilligContext: PostCommentDOM.dataset.isFrivilligContext ?? false,\r\n canReply: PostCommentDOM.dataset.canReply ? JSON.parse(PostCommentDOM.dataset.canReply) : false,\r\n postId: PostCommentDOM.dataset.postId ?? '',\r\n groupId: PostCommentDOM.dataset.groupId ?? ''\r\n }\r\n const component = createApp(PostComment, props).use(Store)\r\n component.mount(PostCommentDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport store from 'store'\r\nimport options from './PostHeader.options'\r\n\r\nconst el = '.kb-component--post-header'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((PostHeaderDOM)=>{\r\n const isFrivilligContext =\r\n PostHeaderDOM.hasAttribute('is-frivillig-context')\r\n const props = {\r\n postId: PostHeaderDOM.dataset.postId,\r\n canEdit: PostHeaderDOM.dataset.canEdit ? JSON.parse(PostHeaderDOM.dataset.canEdit) : false,\r\n authorId: PostHeaderDOM.dataset.authorId\r\n }\r\n \r\n const template = PostHeaderDOM.outerHTML\r\n options.template = template\r\n const component = createApp(options,{\r\n ...props,\r\n isFrivilligContext\r\n }).use(Store)\r\n component.mount(PostHeaderDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport PostHeaderAddComment from './PostHeaderAddComment'\r\n\r\nconst el = '.kb-component--post-header-add-comment'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((PostHeaderAddCommentDOM) => {\r\n const props = {\r\n postId: PostHeaderAddCommentDOM.dataset.postId\r\n }\r\n \r\n const component = createApp(PostHeaderAddComment, props).use(Store)\r\n component.mount(PostHeaderAddCommentDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport PostsList from './PostsList'\r\n\r\nconst el = '.kb-component--posts-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((PostsListDOM)=>{\r\n const groupData = JSON.parse(PostsListDOM.dataset.group)\r\n \r\n const props = {\r\n guid: PostsListDOM.dataset.guid ?? '',\r\n numberOfMembers: groupData.numberOfMembers ?? 0,\r\n groupId: groupData.id ?? '',\r\n isClosedGroup: groupData.isClosedGroup,\r\n universId: PostsListDOM.dataset.universId ?? '',\r\n isLoggedIn: PostsListDOM.dataset.isLoggedIn === \"true\",\r\n loginUrl: PostsListDOM.dataset.loginUrl,\r\n hasMemberAccess: PostsListDOM.dataset.hasMemberAccess === \"true\",\r\n take: parseInt(PostsListDOM.dataset.take)\r\n }\r\n const component = createApp(PostsList, props).use(Store)\r\n component.mount(PostsListDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport ProductCard from './ProductCard'\r\n\r\nconst el = '.kb-component--product-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ProductCardDOM) => {\r\n const props = {\r\n data: ProductCardDOM.dataset.product ? JSON.parse(ProductCardDOM.dataset.product) : {},\r\n }\r\n const component = createApp(ProductCard, props).use(Store)\r\n component.mount(ProductCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './ProductDetail.options'\r\n\r\nconst el = '.kb-component--product-detail'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ProductDetailDOM) => {\r\n const template = ProductDetailDOM.outerHTML\r\n options.template = template\r\n const isSoldOut = ProductDetailDOM.hasAttribute('is-sold-out')\r\n const component = createApp(options, { isSoldOut }).use(Store)\r\n component.mount(ProductDetailDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport ProductsCardsSlider from './ProductsCardsSlider'\r\n\r\nconst el = '.kb-component--products-cards-slider'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM) {\r\n DOM.forEach((ProductsCardsSliderDOM) => {\r\n if (ProductsCardsSliderDOM.hasAttribute('data-v-app')) return false\r\n\r\n const props = {\r\n spotCardData: ProductsCardsSliderDOM.dataset.spotCardData\r\n ? JSON.parse(ProductsCardsSliderDOM.dataset.spotCardData)\r\n : null,\r\n spotCardIndex: ProductsCardsSliderDOM.dataset.spotCardIndex\r\n ? parseInt(ProductsCardsSliderDOM.dataset.spotCardIndex, 10)\r\n : null,\r\n sliderId: ProductsCardsSliderDOM.id,\r\n results: ProductsCardsSliderDOM.dataset.contentjson\r\n ? JSON.parse(ProductsCardsSliderDOM.dataset.contentjson)\r\n : [],\r\n glideBehaviour: ProductsCardsSliderDOM.dataset.glideBehaviour,\r\n type: ProductsCardsSliderDOM.dataset.type,\r\n link: ProductsCardsSliderDOM.dataset.link\r\n ? JSON.parse(ProductsCardsSliderDOM.dataset.link)\r\n : null\r\n }\r\n\r\n const component = createApp(ProductsCardsSlider, props).use(Store)\r\n component.mount(ProductsCardsSliderDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport ProfileDeleted from './ProfileDeleted'\r\n\r\nconst el = '.kb-component--profile-deleted'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ProfileDeletedDOM)=>{\r\n const component = createApp(ProfileDeleted).use(Store)\r\n component.mount(ProfileDeletedDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ProfilePicture from './ProfilePicture'\r\n\r\nconst el = '.kb-component--profile-picture'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ProfilePictureDOM)=>{\r\n const props = {\r\n userId: ProfilePictureDOM.dataset.userId ?? \"\",\r\n content: ProfilePictureDOM.dataset.content ? JSON.parse(ProfilePictureDOM.dataset.content) : null,\r\n type: ProfilePictureDOM.dataset.type ?? \"cancerforum\"\r\n }\r\n const component = createApp(ProfilePicture, props).use(Store)\r\n component.mount(ProfilePictureDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ProjectCard from './ProjectCard'\r\n\r\nconst el = '.kb-component--project-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ProjectCardDOM)=>{\r\n const result = JSON.parse(ProjectCardDOM.dataset.result)\r\n const component = createApp(ProjectCard, { result }).use(Store)\r\n component.mount(ProjectCardDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport ProjectsList from './ProjectsList'\r\n\r\nconst el = '.kb-component--projects-list'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ProjectsListDOM)=>{\r\n const props = {\r\n guid: ProjectsListDOM.dataset.guid,\r\n firstPageSize: parseInt(ProjectsListDOM.dataset.firstPageSize) ?? 20,\r\n showMorePageSize: parseInt(ProjectsListDOM.dataset.showMorePageSize) ?? 20,\r\n spotCardData: ProjectsListDOM.dataset.spotCard\r\n ? JSON.parse(ProjectsListDOM.dataset.spotCard)\r\n : null,\r\n hideNoResults: ProjectsListDOM.dataset.hideNoResults === 'true',\r\n hideTotalCount: ProjectsListDOM.dataset.hideTotalCount === 'true'\r\n }\r\n\r\n const component = createApp(ProjectsList, props).use(Store)\r\n component.mount(ProjectsListDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport ReceiptContent from './ReceiptContent'\r\n\r\nconst el = '.kb-component--receipt-content'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((ReceiptContentDOM) => {\r\n document.body.classList.add('kb-receipt-page')\r\n const receiptResults = ReceiptContentDOM.dataset.receiptResults\r\n ? JSON.parse(ReceiptContentDOM.dataset.receiptResults)\r\n : {}\r\n const component = createApp(ReceiptContent, { receiptResults }).use(\r\n Store\r\n )\r\n component.mount(ReceiptContentDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport RelayList from './RelayList'\r\n\r\nconst el = '.kb-component--relay-list'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((RelayListDOM) => {\r\n const props = {\r\n guid: RelayListDOM.dataset.guid,\r\n skip: parseInt(RelayListDOM.dataset.skip) ?? 0,\r\n take: parseInt(RelayListDOM.dataset.take) ?? 10,\r\n hideNoResults: RelayListDOM.hasAttribute('hide-no-results')\r\n }\r\n const component = createApp(RelayList, props).use(Store)\r\n component.mount(RelayListDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport ReportCard from './ReportCard'\r\n\r\nconst el = '.kb-component--report-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM && DOM.length){\r\n DOM.forEach((ReportCardDom)=>{\r\n const data = ReportCardDom.dataset.data \r\n ? JSON.parse(ReportCardDom.dataset.data)\r\n : null;\r\n\r\n const component = createApp(ReportCard,{data}).use(Store)\r\n component.mount(ReportCardDom)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport RequestRole from './RequestRole'\r\n\r\nconst el = '.kb-component--request-role'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((RequestRoleDOM)=>{\r\n \r\n const component = createApp(RequestRole).use(Store)\r\n component.mount(RequestRoleDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport RolesFormContent from './RolesFormContent'\r\n\r\nconst el = '.kb-component--roles-form-content'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((RolesFormContentDOM)=>{\r\n const component = createApp(RolesFormContent).use(Store)\r\n component.mount(RolesFormContentDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport options from './SearchAndCTA.options'\r\n\r\nconst el = '.kb-component--search-and-cta'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SearchAndCTADOM) => {\r\n const template = SearchAndCTADOM.outerHTML\r\n options.template = template\r\n const component = createApp(options, {\r\n guid: SearchAndCTADOM.dataset.guid\r\n }).use(Store)\r\n component.mount(SearchAndCTADOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SearchFilteredTags from './SearchFilteredTags'\r\n\r\nconst el = '.kb-component--search-filtered-tags'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SearchFilteredTagsDOM) => {\r\n const guids = SearchFilteredTagsDOM.dataset.guids\r\n ? JSON.parse(SearchFilteredTagsDOM.dataset.guids)\r\n : []\r\n const component = createApp(SearchFilteredTags, { guids }).use(\r\n Store\r\n )\r\n component.mount(SearchFilteredTagsDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './SessionStorageFormularTest.options'\r\n\r\nconst el = '.kb-component--session-storage-formular-test'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SessionStorageFormularTestDOM) => {\r\n const template = SessionStorageFormularTestDOM.outerHTML\r\n options.template = template\r\n const component = createApp(options).use(Store)\r\n component.mount(SessionStorageFormularTestDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport options from './SignUpButton.options'\r\n\r\nconst el = '.kb-component--sign-up-button'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SignUpButtonDOM) => {\r\n const eventId = SignUpButtonDOM.dataset.eventId\r\n const successButtonData = SignUpButtonDOM.dataset.successButtonData\r\n ? JSON.parse(SignUpButtonDOM.dataset.successButtonData)\r\n : null\r\n\r\n const template = SignUpButtonDOM.innerHTML\r\n options.template = template\r\n const component = createApp(options, {\r\n eventId,\r\n successButtonData\r\n }).use(Store)\r\n component.mount(SignUpButtonDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SignUpForm from './SignUpForm'\r\n\r\nconst el = '.kb-component--sign-up-form'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SignUpFormDOM) => {\r\n const component = createApp(SignUpForm).use(Store)\r\n component.mount(SignUpFormDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SimpleCard from './SimpleCard'\r\n\r\nconst el = '.kb-component--simple-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM && DOM.length) {\r\n DOM.forEach((SimpleCardDOM) => {\r\n const result = JSON.parse(SimpleCardDOM.dataset.result)\r\n const component = createApp(SimpleCard, { result }).use(Store)\r\n component.mount(SimpleCardDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SortDropdown from './SortDropdown'\r\n\r\nconst el = '.kb-component--sort-dropdown'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SortDropdownDOM) => {\r\n const config = JSON.parse(SortDropdownDOM.dataset.config)\r\n const component = createApp(SortDropdown, { config }).use(Store)\r\n component.mount(SortDropdownDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetActions from './StafetActions'\r\n\r\nconst el = '.kb-component--stafet-flow-actions'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetActionsDOM) => {\r\n const component = createApp(StafetActions).use(Store)\r\n component.mount(StafetActionsDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetAddDeltager from './StafetAddDeltager'\r\n\r\nconst el = '.kb-component--stafet-flow-add-participants'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetAddDeltagerDOM) => {\r\n const component = createApp(StafetAddDeltager).use(Store)\r\n component.mount(StafetAddDeltagerDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetAddMoreDeltagerFlow from './StafetAddMoreDeltagerFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-add-more-deltager-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetAddMoreDeltagerFlowDOM) => {\r\n const externalData = StafetAddMoreDeltagerFlowDOM.dataset.external\r\n ? JSON.parse(StafetAddMoreDeltagerFlowDOM.dataset.external)\r\n : null\r\n\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n holdkode: isObjectNotNullOrEmpty(externalData.holdkode)\r\n ? externalData.holdkode\r\n : null,\r\n userData: isObjectNotNullOrEmpty(externalData.userData)\r\n ? externalData.userData\r\n : null,\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData),\r\n adultPrice: externalData.adultPrice,\r\n childPrice: externalData.childPrice\r\n }\r\n\r\n const component = createApp(StafetAddMoreDeltagerFlow, props).use(\r\n Store\r\n )\r\n component.mount(StafetAddMoreDeltagerFlowDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDeltagPaaHoldFlow from './StafetDeltagPaaHoldFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-join-a-team-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDeltagPaaHoldFlowDOM) => {\r\n const externalData = StafetDeltagPaaHoldFlowDOM.dataset.external\r\n ? JSON.parse(StafetDeltagPaaHoldFlowDOM.dataset.external)\r\n : null\r\n\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n holdId: externalData.holdId ?? null,\r\n tshirtSizes: externalData.tshirtSizes ?? [],\r\n holdList: externalData.holdList ?? [],\r\n userData: isObjectNotNullOrEmpty(externalData.userData)\r\n ? externalData.userData\r\n : null,\r\n donationAmounts: externalData.amounts ?? [], // { amountLabel: string, amount: number }\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData),\r\n lysposeMinimumAmount: externalData.lysposeMinimumAmount ?? 50,\r\n adultPrice: externalData.adultPrice,\r\n childPrice: externalData.childPrice,\r\n lysposeQuantityOption1: externalData.lysposeQuantityOption1 ?? 1,\r\n lysposeQuantityOption2: externalData.lysposeQuantityOption2 ?? 5,\r\n lysposeQuantityOption3: externalData.lysposeQuantityOption3 ?? 10,\r\n redirectToEditProfile: externalData.redirectToEditProfile,\r\n editProfileLinkText: externalData.editProfileLinkText,\r\n }\r\n const component = createApp(StafetDeltagPaaHoldFlow, props).use(\r\n Store\r\n )\r\n component.mount(StafetDeltagPaaHoldFlowDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDeltagPaaHoldStepFour from './StafetDeltagPaaHoldStepFour'\r\n\r\nconst el = '.kb-component--stafet-join-a-team-step-four'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDeltagPaaHoldStepFourDOM) => {\r\n const component = createApp(StafetDeltagPaaHoldStepFour).use(Store)\r\n component.mount(StafetDeltagPaaHoldStepFourDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDeltagPaaHoldStepOne from './StafetDeltagPaaHoldStepOne'\r\n\r\nconst el = '.kb-component--stafet-join-a-team-step-one'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDeltagPaaHoldStepOneDOM) => {\r\n const component = createApp(StafetDeltagPaaHoldStepOne).use(Store)\r\n component.mount(StafetDeltagPaaHoldStepOneDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDeltagPaaHoldStepThree from './StafetDeltagPaaHoldStepThree'\r\n\r\nconst el = '.kb-component--stafet-join-a-team-step-three'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDeltagPaaHoldStepThreeDOM) => {\r\n const component = createApp(StafetDeltagPaaHoldStepThree).use(Store)\r\n component.mount(StafetDeltagPaaHoldStepThreeDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDeltagPaaHoldStepTwo from './StafetDeltagPaaHoldStepTwo'\r\n\r\nconst el = '.kb-component--stafet-join-a-team-step-two'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDeltagPaaHoldStepTwoDOM) => {\r\n const component = createApp(StafetDeltagPaaHoldStepTwo).use(Store)\r\n component.mount(StafetDeltagPaaHoldStepTwoDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDeltagSomFighterFlow from './StafetDeltagSomFighterFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-deltag-som-fighter-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDeltagSomFighterFlowDOM) => {\r\n const externalData = StafetDeltagSomFighterFlowDOM.dataset.external\r\n ? JSON.parse(StafetDeltagSomFighterFlowDOM.dataset.external)\r\n : null\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n tshirtSizes: externalData.tshirtSizes ?? [],\r\n holdList: externalData.holdList ?? [],\r\n userData: isObjectNotNullOrEmpty(externalData.userData)\r\n ? externalData.userData\r\n : null,\r\n donationAmounts: externalData.amounts ?? [],\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData),\r\n redirectToEditProfile:\r\n StafetDeltagSomFighterFlowDOM.dataset\r\n .redirectToEditProfile ?? '',\r\n adultPrice: externalData.adultPrice,\r\n childPrice: externalData.childPrice,\r\n redirectToEditProfile: externalData.redirectToEditProfile,\r\n editProfileLinkText: externalData.editProfileLinkText\r\n }\r\n\r\n const component = createApp(StafetDeltagSomFighterFlow, props).use(\r\n Store\r\n )\r\n\r\n component.mount(StafetDeltagSomFighterFlowDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport StafetDeltagSomFighterStepOne from './StafetDeltagSomFighterStepOne'\r\n\r\nconst el = '.kb-component--stafet-deltag-som-fighter-step-one'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetDeltagSomFighterStepOneDOM)=>{\r\n const component = createApp(StafetDeltagSomFighterStepOne).use(Store)\r\n component.mount(StafetDeltagSomFighterStepOneDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport StafetDeltagSomFighterStepThree from './StafetDeltagSomFighterStepThree'\r\n\r\nconst el = '.kb-component--stafet-deltag-som-fighter-step-three'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetDeltagSomFighterStepThreeDOM)=>{\r\n const component = createApp(StafetDeltagSomFighterStepThree).use(Store)\r\n component.mount(StafetDeltagSomFighterStepThreeDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport StafetDeltagSomFighterStepTwo from './StafetDeltagSomFighterStepTwo'\r\n\r\nconst el = '.kb-component--stafet-deltag-som-fighter-step-two'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetDeltagSomFighterStepTwoDOM)=>{\r\n const component = createApp(StafetDeltagSomFighterStepTwo).use(Store)\r\n component.mount(StafetDeltagSomFighterStepTwoDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport StafetDonationFlow from './StafetDonationFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-donation-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDonationFlowDOM) => {\r\n const externalData = StafetDonationFlowDOM.dataset.external\r\n ? JSON.parse(StafetDonationFlowDOM.dataset.external)\r\n : null\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n holdList: externalData.holdList ?? null,\r\n userData: externalData.userData ?? null,\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData),\r\n minimumDonationAmount: externalData.minimumDonationAmount ?? 1,\r\n holdId: externalData.holdId ?? '',\r\n deltagerId: externalData.deltagerId ?? ''\r\n }\r\n const component = createApp(StafetDonationFlow, props).use(Store)\r\n component.mount(StafetDonationFlowDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport StafetDonationStepOne from './StafetDonationStepOne'\r\n\r\nconst el = '.kb-component--stafet-donation-step-one'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetDonationStepOneDOM)=>{\r\n const component = createApp(StafetDonationStepOne).use(Store)\r\n component.mount(StafetDonationStepOneDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport StafetDonationStepPrivat from './StafetDonationStepPrivat'\r\n\r\nconst el = '.kb-component--stafet-donation-step-privat'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetDonationStepPrivatDOM)=>{\r\n const component = createApp(StafetDonationStepPrivat).use(Store)\r\n component.mount(StafetDonationStepPrivatDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport StafetDonationStepTwo from './StafetDonationStepTwo'\r\n\r\nconst el = '.kb-component--stafet-donation-step-two'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDonationStepTwoDOM) => {\r\n const component = createApp(StafetDonationStepTwo).use(Store)\r\n component.mount(StafetDonationStepTwoDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport StafetDonationStepVirksomhed from './StafetDonationStepVirksomhed'\r\n\r\nconst el = '.kb-component--stafet-donation-step-virksomhed'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetDonationStepVirksomhedDOM)=>{\r\n const component = createApp(StafetDonationStepVirksomhed).use(Store)\r\n component.mount(StafetDonationStepVirksomhedDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport StafetDonationTaendLysFlow from './StafetDonationTaendLysFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-donation-taend-lys-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDonationTaendLysFlowDOM) => {\r\n const externalData = StafetDonationTaendLysFlowDOM.dataset.external\r\n ? JSON.parse(StafetDonationTaendLysFlowDOM.dataset.external)\r\n : null\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData),\r\n holdList: externalData.holdList ?? null,\r\n userData: isObjectNotNullOrEmpty(externalData.userData)\r\n ? externalData.userData\r\n : null,\r\n lysposeMinimumAmount: externalData.lysposeMinimumAmount ?? 50,\r\n holdId: externalData.holdId ?? '',\r\n deltagerId: externalData.deltagerId ?? ''\r\n }\r\n const component = createApp(StafetDonationTaendLysFlow, props).use(\r\n Store\r\n )\r\n component.mount(StafetDonationTaendLysFlowDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDonationTaendLysStepOne from './StafetDonationTaendLysStepOne'\r\n\r\nconst el = '.kb-component--stafet-donation-taend-lys-step-one'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDonationTaendLysStepOneDOM) => {\r\n const component = createApp(StafetDonationTaendLysStepOne).use(\r\n Store\r\n )\r\n component.mount(StafetDonationTaendLysStepOneDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDonationTaendLysStepThree from './StafetDonationTaendLysStepThree'\r\n\r\nconst el = '.kb-component--stafet-donation-taend-lys-step-three'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDonationTaendLysStepThreeDOM) => {\r\n const component = createApp(StafetDonationTaendLysStepThree).use(\r\n Store\r\n )\r\n component.mount(StafetDonationTaendLysStepThreeDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetDonationTaendLysStepTwo from './StafetDonationTaendLysStepTwo'\r\n\r\nconst el = '.kb-component--stafet-donation-taend-lys-step-two'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetDonationTaendLysStepTwoDOM) => {\r\n const component = createApp(StafetDonationTaendLysStepTwo).use(\r\n Store\r\n )\r\n component.mount(StafetDonationTaendLysStepTwoDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetEditHoldFlow from './StafetEditHoldFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-edit-hold-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetEditHoldFlowDOM) => {\r\n const externalData = StafetEditHoldFlowDOM.dataset.external\r\n ? JSON.parse(StafetEditHoldFlowDOM.dataset.external)\r\n : null\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n holdList: externalData.holdnavne ?? [],\r\n holdData: externalData.holdData ?? {},\r\n userData: externalData.userData ?? {},\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData)\r\n }\r\n\r\n const component = createApp(StafetEditHoldFlow, props).use(Store)\r\n component.mount(StafetEditHoldFlowDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetHeader from './StafetHeader'\r\n\r\nconst el = '.kb-component--stafet-flow-title'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetHeaderDOM) => {\r\n const component = createApp(StafetHeader).use(Store)\r\n component.mount(StafetHeaderDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetFlowLightBagsMetaList from './StafetLysPoserList'\r\n\r\nconst el = '.kb-component--stafet-flow-light-bags-meta-list'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetFlowLightBagsMetaListDOM) => {\r\n const component = createApp(StafetFlowLightBagsMetaList).use(Store)\r\n component.mount(StafetFlowLightBagsMetaListDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetOpretHoldFlow from './StafetOpretHoldFlow'\r\nimport isObjectNotNullOrEmpty from 'foundation/js/isObjectNotNullOrEmpty'\r\n\r\nconst el = '.kb-component--stafet-opret-hold-flow'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetOpretHoldFlowDOM) => {\r\n const externalData = StafetOpretHoldFlowDOM.dataset.external\r\n ? JSON.parse(StafetOpretHoldFlowDOM.dataset.external)\r\n : null\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n holdList: externalData.holdnavne ?? [],\r\n holdData: externalData.holdData ?? {},\r\n userData: externalData.userData ?? {},\r\n loggedIn: isObjectNotNullOrEmpty(externalData.userData)\r\n }\r\n const component = createApp(StafetOpretHoldFlow, props).use(Store)\r\n component.mount(StafetOpretHoldFlowDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport StafetOpretHoldStepOne from './StafetOpretHoldStepOne'\r\n\r\nconst el = '.kb-component--stafet-opret-hold-step-one'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetOpretHoldStepOneDOM)=>{\r\n const component = createApp(StafetOpretHoldStepOne).use(Store)\r\n component.mount(StafetOpretHoldStepOneDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport StafetOpretHoldStepTwo from './StafetOpretHoldStepTwo'\r\n\r\nconst el = '.kb-component--stafet-opret-hold-step-two'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetOpretHoldStepTwoDOM)=>{\r\n const component = createApp(StafetOpretHoldStepTwo).use(Store)\r\n component.mount(StafetOpretHoldStepTwoDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport StafetPayment from './StafetPayment'\r\n\r\nconst el = '.kb-component--stafet-flow-payment'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetPaymentDOM) => {\r\n const component = createApp(StafetPayment).use(Store)\r\n component.mount(StafetPaymentDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport StafetProfileForm from './StafetProfileForm'\r\n\r\nconst el = '.kb-component--stafet-profile-form'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((StafetProfileFormDOM) => {\r\n const externalData = StafetProfileFormDOM.dataset.external\r\n ? JSON.parse(StafetProfileFormDOM.dataset.external)\r\n : null\r\n const props = {\r\n stafetId: externalData.stafetId ?? null,\r\n userData: externalData.userData ?? {},\r\n editProfileLink:\r\n StafetProfileFormDOM.dataset.editProfileLink ?? null,\r\n removeProfileLink:\r\n StafetProfileFormDOM.dataset.removeProfileLink ?? null,\r\n editPasswordLink:\r\n StafetProfileFormDOM.dataset.editPasswordLink ?? null\r\n }\r\n const component = createApp(StafetProfileForm, props).use(Store)\r\n component.mount(StafetProfileFormDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport StafetRoundCounter from './StafetRoundCounter'\r\n\r\nconst el = '.kb-component--stafet-round-counter'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetRoundCounterDOM)=>{\r\n\r\n const rute = StafetRoundCounterDOM.dataset.data\r\n ? JSON.parse(StafetRoundCounterDOM.dataset.data)\r\n : null\r\n \r\n const maxRegistrationCount = StafetRoundCounterDOM.dataset.maxRegistrationCount\r\n\r\n const component = createApp(StafetRoundCounter, {rute, maxRegistrationCount}).use(Store)\r\n component.mount(StafetRoundCounterDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport StafetRoundCounterAccordion from './StafetRoundCounterAccordion'\r\n\r\nconst el = '.kb-component--stafet-round-counter-accordion'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((StafetRoundCounterAccordionDOM)=>{\r\n\r\n const participantData = StafetRoundCounterAccordionDOM.dataset.data\r\n ? JSON.parse(StafetRoundCounterAccordionDOM.dataset.data)\r\n : null\r\n \r\n const maxRegistrationCount = StafetRoundCounterAccordionDOM.dataset.maxRegistrationCount\r\n\r\n const component = createApp(StafetRoundCounterAccordion, {participantData, maxRegistrationCount}).use(Store)\r\n component.mount(StafetRoundCounterAccordionDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport SuccessPage from './SuccessPage'\r\n\r\nconst el = '.kb-component--success-page'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SuccessPageDOM) => {\r\n const component = createApp(SuccessPage).use(Store)\r\n component.mount(SuccessPageDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport SupportSelector from './SupportSelector'\r\n\r\nconst el = '.kb-component--support-selector'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((SupportSelectorDOM) => {\r\n const props = {\r\n stafetId: SupportSelectorDOM.dataset.stafetId,\r\n labels: SupportSelectorDOM.dataset.labels\r\n ? JSON.parse(SupportSelectorDOM.dataset.labels)\r\n : {}\r\n }\r\n const component = createApp(SupportSelector, props).use(Store)\r\n component.mount(SupportSelectorDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport TeamList from './TeamList'\r\n\r\nconst el = '.kb-component--team-list'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((TeamListDOM) => {\r\n const props = {\r\n source: TeamListDOM.dataset.source,\r\n stafetId: TeamListDOM.dataset.stafetId,\r\n take: TeamListDOM.dataset.take\r\n ? parseInt(TeamListDOM.dataset.take)\r\n : 18,\r\n guid: TeamListDOM.dataset.guid,\r\n filterShown: TeamListDOM.dataset.filterShown\r\n ? TeamListDOM.dataset.filterShown === 'true'\r\n : true\r\n }\r\n const component = createApp(TeamList, props).use(Store)\r\n component.mount(TeamListDOM)\r\n })\r\n }\r\n}\r\n","import { createApp } from 'vue'\r\nimport TeamListCard from './TeamListCard'\r\n\r\nconst el = '.kb-component--team-list-card'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((TeamListCardDOM) => {\r\n const props = {\r\n captains: TeamListCardDOM.dataset.captains\r\n ? JSON.parse(TeamListCardDOM.dataset.captains)\r\n : [],\r\n imageUrl: TeamListCardDOM.dataset.imageUrl,\r\n imageAlt: TeamListCardDOM.dataset.imageAlt,\r\n url: TeamListCardDOM.dataset.url,\r\n name: TeamListCardDOM.dataset.name,\r\n membersCount: TeamListCardDOM.dataset.membersCount,\r\n donationGoals: TeamListCardDOM.dataset.donationGoals,\r\n donationTotal: TeamListCardDOM.dataset.donationTotal\r\n }\r\n const component = createApp(TeamListCard, props).use(Store)\r\n component.mount(TeamListCardDOM)\r\n })\r\n }\r\n}\r\n","import {createApp} from 'vue'\r\nimport options from './TextEditor.options'\r\n\r\nconst el = '.kb-component--text-editor'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((TextEditorDOM)=>{\r\n const props = {\r\n initContent: TextEditorDOM.dataset.content\r\n }\r\n const template = TextEditorDOM.outerHTML\r\n options.template = template\r\n const component = createApp(options, props).use(Store)\r\n component.mount(TextEditorDOM)\r\n })\r\n }\r\n}\r\n\r\n","import {createApp} from 'vue'\r\nimport ThemeCard from './ThemeCard'\r\n\r\nconst el = '.kb-component--theme-card'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((ThemeCardDOM)=>{\r\n const props = {\r\n content: ThemeCardDOM.dataset.content ? JSON.parse(ThemeCardDOM.dataset.content) : {}\r\n }\r\n const component = createApp(ThemeCard, props).use(Store)\r\n component.mount(ThemeCardDOM)\r\n })\r\n }\r\n}","import store from 'store'\r\n\r\nconst el = '[data-content=TilmeldHoldKvittering]'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((TilmeldHoldKvitteringDOM) => {\r\n const loginUrl = TilmeldHoldKvitteringDOM.dataset.loginurl\r\n const createProfileUrl = TilmeldHoldKvitteringDOM.dataset.createprofileurl\r\n const hasProfile = TilmeldHoldKvitteringDOM.dataset.hasprofile === \"True\"\r\n store.commit('main/set_page_overlay_content_data', { loginUrl, createProfileUrl, hasProfile })\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport TilmeldProfilKvittering from './TilmeldProfilKvittering'\r\n\r\nconst el = '.kb-component--tilmeld-profil-kvittering'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((TilmeldProfilKvitteringDOM)=>{\r\n const component = createApp(TilmeldProfilKvittering).use(Store)\r\n component.mount(TilmeldProfilKvitteringDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport UploadNewFileOverlay from './UploadNewFileOverlay'\r\n\r\nconst el = '.kb-component--upload-new-file-overlay'\r\n\r\nexport default function(Store){\r\n const DOM = document.querySelectorAll(el)\r\n if(DOM.length){\r\n DOM.forEach((UploadNewFileOverlayDOM)=>{\r\n const component = createApp(UploadNewFileOverlay).use(Store)\r\n component.mount(UploadNewFileOverlayDOM)\r\n })\r\n }\r\n}","import {createApp} from 'vue'\r\nimport UserPostsList from './UserPostsList'\r\n\r\nconst el = '.kb-component--user-posts-list'\r\n\r\nexport default function(Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if( DOM.length) {\r\n DOM.forEach((UserPostsListDOM) => {\r\n const exturnalData = UserPostsListDOM.dataset.exturnal ? JSON.parse(UserPostsListDOM.dataset.exturnal) : null\r\n const props = {\r\n guid: UserPostsListDOM.dataset.guid,\r\n groupId: UserPostsListDOM.dataset.groupId,\r\n skip: parseInt(UserPostsListDOM.dataset.skip) ?? 0,\r\n take: parseInt(UserPostsListDOM.dataset.take) ?? 10,\r\n userData: exturnalData?.userData ?? null,\r\n type: UserPostsListDOM.dataset.type?? null,\r\n }\r\n const component = createApp(UserPostsList, props).use(Store)\r\n component.mount(UserPostsListDOM)\r\n })\r\n }\r\n}","import { createApp } from 'vue'\r\nimport WebshopPaymentSelector from './WebshopPaymentSelector'\r\n\r\nconst el = '.kb-component--webshop-payment-selector'\r\n\r\nexport default function (Store) {\r\n const DOM = document.querySelectorAll(el)\r\n if (DOM.length) {\r\n DOM.forEach((WebshopPaymentSelectorDOM) => {\r\n const component = createApp(WebshopPaymentSelector).use(Store)\r\n component.mount(WebshopPaymentSelectorDOM)\r\n })\r\n }\r\n}\r\n"],"names":["DOM","document","querySelector","isMobile","Math","min","window","screen","width","height","navigator","userAgent","indexOf","retracted","console","log","documentElement","scrollTop","addEventListener","classList","contains","remove","add","querySelectorAll","forEach","uploadField","ariaLive","e","selectedFile","target","files","fileName","name","fileSize","size","toFixed","fileNameAndSize","concat","textContent","fileRemoveBtn","length","removeBtn","createElement","innerText","createRemoveBtn","appendChild","value","createEventListnerForRemoveBtn","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","url","options","String","__esModule","default","test","slice","hash","needQuotes","replace","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","_typeof","Symbol","iterator","obj","constructor","prototype","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","_extends","assign","arguments","source","hasOwnProperty","call","DOMIterator","ctx","iframes","exclude","iframesTimeout","filteredCtx","NodeList","isPrototypeOf","Array","isArray","isDescendant","filter","contexts","ifr","successFn","errorFn","doc","ifrWin","contentWindow","Error","bl","src","getAttribute","trim","location","href","_this","called","tout","listener","clearTimeout","isIframeBlank","removeEventListener","getIframeContents","setTimeout","readyState","observeIframeLoad","done","_this2","eachCalled","forEachIframe","waitForIframes","handled","each","_this3","end","open","checkEnd","matches","onIframeReady","con","whatToShow","createNodeIterator","contents","node","prevNode","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_FOLLOWING","itr","previousNode","nextNode","currIfr","ifrDict","val","compareNodeIframe","eCb","fCb","_this4","createInstanceOnIframe","forEachNode","eachCb","filterCb","doneCb","_this5","createIterator","elements","_getIteratorNode","getIteratorNode","checkIframeFilter","ifrNode","handleOpenIframes","_this6","getContexts","ready","iterateThroughNodes","element","selector","selectors","fn","matchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","webkitMatchesSelector","match","every","sel","Mark$1","Mark","ie","ua","msg","level","opt","debug","str","wildcards","setupWildcardsRegExp","escapeStr","keys","synonyms","createSynonymsRegExp","ignoreJoiners","ignorePunctuation","setupIgnoreJoinersRegExp","diacritics","createDiacriticsRegExp","createMergedBlanksRegExp","createJoinersRegExp","createWildcardsRegExp","createAccuracyRegExp","syn","sens","caseSensitive","joinerPlaceholder","index","k1","k2","RegExp","processSynomyms","charAt","spaces","indx","original","nextChar","joiner","split","dct","ch","acc","accuracy","ls","limiters","lsJoin","limiter","sv","stack","kw","separateWordSearch","kwSplitted","sort","a","b","Number","parseFloat","array","noMatch","last","start","_callNoMatchOnInvalid","callNoMatchOnInvalidRanges","valid","range","parseInt","isNumeric","originalLength","string","max","offset","substring","cb","nodes","NodeFilter","SHOW_TEXT","matchesExclude","parentNode","FILTER_REJECT","FILTER_ACCEPT","el","hEl","startNode","splitText","ret","repl","setAttribute","className","replaceChild","dict","n","sibl","s","startStr","substr","endStr","wrapRangeInTextNode","j","previousSibling","regex","ignoreGroups","endCb","matchIdx","getTextNodes","exec","pos","lastIndex","_this7","wrapRangeInMappedTextNode","ranges","_this8","counter","_checkWhitespaceRange","checkWhitespaceRanges","parent","docFrag","createDocumentFragment","firstChild","removeChild","normalizeTextNode","normalize","nodeType","nextSibling","nodeValue","regexp","_this9","totalMatches","acrossElements","_this10","_getSeparatedKeywords","getSeparatedKeywords","kwArr","keywords","kwArrLen","handler","createRegExp","term","rawRanges","_this11","checkRanges","wrapRangeFromIndex","_this12","SHOW_ELEMENT","unwrapMatches","matchesSel","set","_opt","get","mark","markRegExp","markRanges","unmark","factory","tinymce","IconManager","icons","global$1","util","Tools","resolve","isType$1","type","x","t","o","v","_a","typeOf","isSimpleType","eq$2","isString","isObject","isNull","isBoolean","isUndefined","isNonNullable","isNullable","isFunction","isNumber","noop","constant","identity","tripleEquals","curry","initialArgs","restArgs","all","apply","not","f","never","always","Optional","tag","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","mapper","bind","binder","exists","predicate","forall","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","from","getOrNull","getOrUndefined","worker","toArray","nativeSlice","nativeIndexOf","nativePush","contains$2","xs","rawIndexOf","ts","pred","len","range$1","num","r","map$1","each$2","partition","pass","fail","filter$2","foldr","eachr","foldl","find$1","until","findUntil","findIndex","flatten","bind$2","mapToObject","get$d","head","last$2","findMap","arr","each$1","tupleMap","tuple","mapToArray","values","has$1","Global","Function","resolve$2","p","scope","parts","path","getPrototypeOf","actual","unsafe","sandHTMLElement","dom","nodeName","toLowerCase","isType","isComment","isHTMLElement","isElement","isText","isDocument","isDocumentFragment","isTag","rawSet","error","set$2","setAll$1","attrs","get$b","getOpt","remove$7","removeAttribute","clone$2","attributes","attr","fromDom$1","SugarElement","fromHtml","html","div","innerHTML","hasChildNodes","childNodes","fromTag","fromText","text","createTextNode","fromDom","fromPoint","docElm","y","elementFromPoint","is$2","elem","bypassSelector","childElementCount","one","base","eq$1","e1","e2","contains$1","d1","d2","is$1","owner","ownerDocument","documentOrOwner","dos","parentElement","parents","isRoot","stop","rawParent","prevSibling","children$2","child$2","cs","before$3","marker","insertBefore","after$5","append$1","prepend","firstChild$1","wrap","wrapper","after$4","append","empty","rogue","remove$6","unwrap","children","clone$1","isDeep","cloneNode","shallow","deep","shallowAs","nu","validSectionList","detail","rowspan","colspan","rowdetail","cells","section","elementnew","isNew","isLocked","rowcells","isShadowRoot","host","getRootNode","getShadowHost","inBody","getShadowRoot","body","fbc","fab","getBody$1","descendants$1","result","ancestors$3","ancestors$4","children$1","descendants","all$1","ClosestOrAncestor","is","ancestor","ancestor$2","closest$2","ancestor$1","child","child$1","descendant","closest$1","lhs","rhs","comparator","left","cat","someIf","checkRange","idx","startsWith","prefix","endsWith","suffix","blank","isNotEmpty","isSupported","style","getPropertyValue","internalSet","property","setProperty","set$1","setAll","css","get$a","getComputedStyle","getUnsafeProperty","getRaw$2","raw","remove$5","removeProperty","internalRemove","getAttrValue","cell","fallback","getSpan","hasColspan","cellOrCol","getCssValue","minWidth","minHeight","firstLayer","filterFirstLayer","tags","elm","lookup","cells$1","columns$1","columnGroups","columnGroup","table","rows$1","fromRowsOrColGroups","elems","getSection","row","column","getParentSection","group","parentName","isValidSection","fromTable$1","rows","cached","args","unknown$2","nu$2","major","minor","Version","detect","versionRegexes","agent","cleanedAgent","regexes","firstMatch","find","unknown","detect$4","candidates","candidate","search","normalVersionRegex","checkContains","uastring","browsers","brand","oses","PlatformInfo","edge","chromium","opera","firefox","safari","nu$1","info","current","version","isBrowser","isEdge","isChromium","isIE","isOpera","isFirefox","isSafari","Browser","windows","android","linux","macos","solaris","freebsd","chromeos","isOS","isWindows","isiOS","isAndroid","isMacOS","isLinux","isSolaris","isFreeBSD","isChromeOS","OperatingSystem","mediaMatch","query","matchMedia","platform","userAgentDataOpt","browser","userAgentData","brands","uaBrand","lcBrand","detectBrowser$1","detectBrowser","os","detectOs","deviceType","isiPad","isiPhone","isTouch","isTablet","isPhone","iOSwebview","isDesktop","isWebView","DeviceType","PlatformDetection","detect$2","Dimension","getOffset","aggregate","properties","isNaN","h","getOuter","cumulativeInclusions","getProp","px","toFloat","toNumber","api$2","offsetWidth","get$9","getOuter$2","getInner","boxSizing","getBoundingClientRect","upper","lower","calcContentBoxSize","getCalculatedWidth","addCells","gridRow","existingCells","before","after","newCells","setCells","addCell","mutateCell","getCell","getCellElement","cellLength","extractGridDetails","grid","cols","clone","cloneRow","cloneCell","LOCKED_COL_ATTR","getLockedColumnsFromTable","lockedColStr","lockedCols","getLockedColumnsFromGrid","locked","lockedArr","_val","copy","sort$1","filterItems","warehouse","generate$1","access","lockedColumns","rowData","maxRows","maxColumns","rowCount","colgroupRows","currentRow","rowCell","hasNonNullableKey","extended","occupiedColumnPosition","occupiedRowPosition","columnPosition","newpos","columns","colgroups","columnsGroup","columnIndex","colIndex","columnext","generateColumns","colgroup$1","colgroup","grid$1","Warehouse","filtered","w","isValidCell","rowsArr","col","decide","getBlock","isValid","getFallback","inBlock","c","onDirection","isLtr","isRtl","getDirection","api$1","offsetHeight","get$8","getOuter$1","top","translate","SugarPosition","firstDefinedOrZero","absolute","win","defaultView","offsetLeft","offsetTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","viewport","box","boxPosition","rowInfo","colInfo","rtlEdge","ltrEdge","getLeftEdge","getRightEdge","getTop$1","getTopEdge","getBottomEdge","findPositions","getInnerEdge","getOuterEdge","lines","cellOption","lastLine","delta","positions","optElements","detect$1","step","amount","units","unsupportedLength","fixed","relative","pattern","decimalDigits","exponentPart","input","unsignedDecimalLiteral","rPercentageBasedSizeRegex","rPixelBasedSizeRegex","isCol$2","isRow$2","getPercentSize","outerGetter","innerGetter","relativeParent","setPixelWidth","setPercentageWidth","setHeight","getTotalHeight","getRuntime","getHeightValue","getter","setter","number","newSize","total","floor","convert","normalizePixelSize","getRaw$1","prop","getRawWidth$1","getPercentageWidth","getPixelWidth$1","getHeight","get$7","setGenericWidth","unit","getPercentTableWidth","percentageBasedSizeRegex","isCol$1","getRawW","getRawH","getDimension","cellOpt","backups","rest","reverse","aa","next","extras","abs","deduce","getWidthFrom","getWidth","columnCells","justCols","colFilter","supportsColWidths","isValidColumn","getDeduced","deduced","d","getPixelWidths","tableSize","minCellWidth","getHeightFrom","rowCells","widthLookup","percentageSize","getFloatWidth","pixelWidth","getWidths","cellWidth","getPercentageWidths","getCellDelta","singleColumnWidth","_delta","setElementWidth","adjustTableWidth","currentWidth","isRelative","label","pixelSize","newWidth","TableSize","zero","noneSize","chooseSize","makeCell","seenSelected","rowIndex","td","api","getOption","NodeValue","get$6","getEnd","elementsWithCursorPosition","isCursorPosition","isContentEditableFalse","first","descend","res","descendant$1","last$1","descendantRtl","transferableAttributes","createCell","createCol","createColgroup","createRow$1","replace$1","replica","cloneChildren","copy$2","pasteReplace","cellOperations","mutate","formatsToClone","cloneCss","prev","sourceDom","targetDom","cssText","copy$1","formats","lastNode","oldCell","newCell","firstText","formatSelector","clonedFormat","cloneFormats","validAttributes","attributeName","attribute","cloneAppropriateAttributes","colGap","gap","paste$1","option","editor","defaultWidth","getPixelForcedWidth","parentBlock","getParent","selection","getStart","isBlock","getBody","getTableCloneElements","getTableHeaderType","getTableColumnResizingBehaviour","isPreserveTableColumnResizing","isResizeTableColumnResizing","getTableSizingMode","isTablePercentagesForced","isTablePixelsForced","isTableResponsiveForced","hasTableResizeBars","shouldStyleWithCss","shouldMergeContentOnPaste","getTableDefaultAttributes","defaultAttributes","isSet","determineDefaultTableAttributes","tableUseColumnGroup","closest","isEditable$1","assumeEditable","isContentEditable","editable","getRaw","contentEditable","getIsRoot","removeDataStyle","removeStyleAttribute","getSelectionStart","getPixelWidth","getPixelHeight","getRawValue","getStyle","getAttrib","getRawWidth","getRawHeight","isInEditableContext$1","inSelection","bounds","leftEdge","rightEdge","topEdge","bottomEdge","finishCol","startCol","finishRow","startRow","isWithin","getAnyBox","startCell","finishCell","startCoords","finishCoords","sc","fc","detailA","detailB","intercepts$1","finish","inside","parentCell","innerCell","c1","c2","intercepts","getWarehouse","nestedIntercepts","firstTable","lastTable","optStartCell","optLastCell","lastCell","TagBoundaries","DomUniverse","up","down","styles","copyTo","destination","as","insert","afterAll","appendAll","create","comparePosition","other","isSpecial","getLanguage","getText","setText","isBoundary","isEmptyTag","isNonEditable","eq","unsafeOne","universe","look","tail","commonElement","universe$3","sharedOne","sharedOne$1","_universe","lookupTable","container","identify","rootTable","boxes","startTable","finishTable","ancestorCells","ps1","ps2","prune","ind","pruned1","pruned2","shared","firstpath","secondpath","ancestors$1","ancestors","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve$1","sels","getEdges","firstSelectedSelector","lastSelectedSelector","shiftSelection","deltaRow","deltaColumn","getLast","moveBy$1","moveBy","identified","expandTo","retrieve","retrieveBox","edges","sectionSelector","firstAncestor","lastAncestor","fA","lA","isRect","detailIsWithin","isRectangular","getBox$1","getBox","unmergable","selectedCells","hasSpan","span","mergable","ephemera","strSelected","strFirstSelected","strLastSelected","attributeSelector","selected","selectedSelector","firstSelected","lastSelected","forMenu","getSelectionFromSelector","initCell","cellName","getSelectionCellOrCaption","getSelectionCell","getCellsFromSelection","model","getSelectedCells","registerEvents","actions","on","multiCellContext","preventDefault","isSelected","replicaHouse","replicaStats","house","totalColumns","minRow","minCol","maxRow","maxCol","allCells","endRow","endCol","statsStruct","findSelectedStats","unselectedCells","stats","totalRows","fillInGaps","widthDelta","colWidths","allColsWidth","selectedColsWidth","getTableWidthDelta","emptyRows","clean","extract$1","extractSelected","replicaElements","format","getDoc","offscreenDiv","position","overflow","opacity","root","getContentContainer","getTextContent","serializer","serialize","serializeElements","getCellsFromFakeSelection","paste","isTable","generators","targets","clipboard","pasteCells","focus","point","scan$1","direction","toEnd","freefallRtl$2","freefallRtl$1","universe$2","halve","main","parse","accepted","unitRaw","check","isUnit","getGenericWidth","surround","sizes","startIndex","endIndex","results","clampDeltaHelper","minCellSize","diff","clampNegativeDelta","clampDelta","resizeTable","calcRelativeDeltas","ratio","newThis","calcLeftEdgeDeltas","clampedDelta","calcFixedDeltas","resizer","clampTableDelta","calcMiddleDeltas","_prev","calcRightEdgeDeltas","calcRedestributedWidths","totalWidth","pixelDelta","newSizes","preserveTable","isLastColumn","maxDelta","_index","_minCellSize","_totalWidth","_pixelDelta","_isRelative","getGridSize","isHeaderCell","isHeaderCells","getRowHeaderType","isHeaderRow","getRowType","findCommonCellType","subType","headerCells","transformCell","substitution","transformRow","fixedCell","mutate$1","sectionCells","TableSection","setIfNot","ignore","insert$1","render$1","newRows","syncRows","gridSection","tr","syncColGroup","colGroup","renderSection","sectionName","newSection","generateSection","sectionElems","renderOrRemoveSection","removeSection","headSection","bodySection","footSection","columnGroupsSection","findDiff","comp","toDetails","seen","details","getRow","isColRow","getColumn","subgrid","updateSeen","rowdetailnew","toGrid","colgroupCols","rowDetail","toDetailList","findInWarehouse","extractCells","cell$1","lc","run","operation","extract","adjustment","postAction","genWrappers","behaviours","tableSection","fromWarehouse","cursor","out","newElements","tableSizing","sizing","resizing","resize","onPasteByEditor","onCells","onUnlockedCells","allUnlocked","isUnlockedTableCell","unmerge","currentCell","isToReplace","value$1","applyHelper","constHelper","outputHelper","output","inner","_onError","onValue","isValue","isError","Result","mapError","toOptional","onError","_onValue","fromOption","optional","err","measureWidth","gridA","gridB","rowDelta","colDelta","measureHeight","generateElements","generator","rowFill","exampleRow","colFill","newChildren","tailor","fillCols","fillRows","gridWidth","isLastColLocked","modifiedCols","newLockedColumns","isSpanning","matching","getLockedColumnsWithinBounds","startAddress","colNum","insertCols","prevCell","substitute","splitCols","fittedNewGrid","secondDelta","fittedOldGrid","insertRows","uniqueCells","sub","splitRows","oldCols","oldRows","newLocked","secondDiff","fittedGridB","newChild","insertRowAt","example","ex","insertColumnAt","withinSpan","getElementFor","isDuplicatedCell","notInStartRow","notInStartColumn","determineScope","applyScope","newScope","isInHeader","getScope","hasRowspan","replaceIn","replacer","genScope","shouldReplace","isTarget","mapCells","getColumnCells","replaceColumns","indexes","rowHeaders","shouldReplaceCell","targetColumn","_colIndex","columnReplacePredicate","scopeGenerator","columnScopeGenerator","replaceCells","targetCells","Adt","cases","constructors","adt","acase","count","keys$1","argLength","foldArgs","branches","branchKeys","reqKey","params","ColumnContext","only","middle","right","recalculateAndApply","widths","groups","recalculateWidthForColumns","measures","recalculateWidthForCells","recalculate","adjustWidth","clampedStep","deltas","context","neighbours","determine","newWidths","dx","adjustHeight","heights","getPixelHeights","newHeights","dy","newRowSizes","matchRowHeight","removeHeight","uniqueColumns","currentDetail","isCol","isColgroup","isRow$1","elementToData","getScopeAttribute","Generators","toData","nuCell","recent","getOrInit","makeNew","replaceOrInit","merge","stringAttributes","baseScope","scopes","getScopeProperty","blockList","universe$1","tagName","isBlock$1","isList","isList$1","isBr","markCell","rightSiblingIsBlock","rightSibling","isEmptyTag$1","advancedBr","markContent","isEditable","outcome","bundle","cursorElement","_b","findEditableCursorPosition","elementFromGrid","uniqueRows","makeRowsSection","initialGrid","rowIndexes","newGrid","targetRow","getRowCells","columnHeaders","_cell","_rowIndex","rowReplacerPredicate","rowScopeGenerator","replaceRows","opMakeRowsHeader","opMakeRowsBody","opMakeRowsFooter","gridifyRows","pasteDetails","fromPastedRows","wh","_table","_info","adjustWidthTo","adjustAndRedistributeWidths","resizeBehaviour","tablePixelWidth","adjustAndRedistributeWidths$1","firstColumnIsLocked","_warehouse","lastColumnIsLocked","getColumnsWidth","uniqueCols","insertColumnsExtractor","pasteColumnsExtractor","headerCellGenerator","bodyCellGenerator","insertRowsBefore","targetIndex","insertRowsAfter","newG","insertColumnsBefore","extractDetail","insertColumnsAfter","eraseColumns","_comparator","_genWrappers","deleteColumnsAt","maxColIndex","eraseRows","deleteRowsAt","maxRowIndex","makeColumnsHeader","columnIndexes","unmakeColumnsHeader","makeRowsHeader","makeRowsBody","makeRowsFooter","makeCellsHeader","unmakeCellsHeader","mergeCells","merge$2","onMergable","mergeable","unmergeCells","onUnmergable","gridify","validStartAddress","currentStartAddress","gridColLength","adjustedRowAddress","possibleColAddresses","getValidStartAddress","gridBRows","lockedColumnsWithinBounds","rowRemainder","colRemainder","colRequired","rowRequired","measure","fittedGrid","newLockedColumnsWithinBounds","lockedColumnObj","skippedCol","gridBColIndex","newCellElm","mergeTables","merge$1","pasteColsBefore","mergedGrid","pasteColsAfter","pasteRowsBefore","pasteRowsAfter","getColumnsType","lastSelectedCell","minColRange","maxColRange","selectedColumnCells","getCellsType","getRowsType","minRowRange","maxRowRange","rowTypes","hasHeader","hasFooter","hasBody","findCommonRowType","fireNewRow","dispatch","fireNewCell","fireTableModified","styleModified","structure","structureModified","styleAndStructureModified","get$5","TableActions","resizeHandler","cellSelectionHandler","isTableBody","colMutationOp","getTableSectionType","rowType","execute","guard","effect","noEvents","refresh","firstCell","clearSelectedCells","rng","createRng","selectNode","setRng","des","setStart","setEnd","setSelectionFromAction","deleteRow","deleteColumn","getTableRowType","getTableCellType","getTableColType","constrainSpan","currentColspan","isColInRange","adt$5","invalid","pixels","percent","validateFor","rawAmount","Size","redistribute$1","newType","floats","newWidthType","redistributeEmpty","newTotalWidth","scale","pc","redistributeToPx","_pc","redistributeToPercent","redistributeValues","sum","add$3","scan","remainder","floored","roundDown","round","validate","redistribute","optWidth","optHeight","widthUnit","oldWidths","getRawWidths","nuWidths","redistributeToColumns","redistributeToW","newHeight","totalHeight","oldHeights","getRawHeights","redistributeToH","isPercentSizing","isPixelSizing","isNoneSizing","cleanupLegacyAttributes","convertToPercentSizeWidth","convertToPixelSizeWidth","getPixelTableWidth","convertToNoneSizeWidth","rowElements","DefaultRenderOptions","border","colGroups","createRows","createRow","placeCaretInCell","select","collapse","colHeaders","defaultStyles","determineDefaultTableStyles","getTableDefaultStyles","undoManager","headerType","renderOpts","rowHeadersGoInThead","createGroupRow","actualRowHeaders","thead","theadRows","tbody","tbodyRows","render","get$4","insertContent","addVisual","isPercentage","fireEvents","tableElm","selectFirstCellInTable","global","tableTypeBase","tableTypeRow","tableTypeColumn","setData","items","fakeClipboardItem","FakeClipboardItem","write","getData","read","getType","clearData","clear","setRows","rowsOpt","clearRows","getRows","setColumns","columnsOpt","clearColumns","getColumns","getSelectionStartCellOrCaption","registerCommands","getTableFromCell","performActionOnSelection","action","getSelectionStartCell","postExecute","_data","actOnSelection","copyRowSelection","slicedGrid","filteredGrid","slicedDetails","clonedCell","copyRows","copyColSelection","fakeColGroups","colsToCopy","copiedCols","clonedCol","fakeColgroup","generateColGroup","fakeRows","cellsToCopy","copiedCells","fakeTR","generateRows","copyCols","pasteOnSelection","clonedRows","pasteRows","actOnType","getAction","_ui","get$c","no_events","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutCol","mceTableCutRow","mceTableCopyCol","mceTableCopyRow","mceTablePasteColBefore","mceTablePasteColAfter","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","cellOrCaption","isEmpty","setContent","setCursorLocation","nodeChanged","mceTableCellToggleClass","clazz","allHaveClass","formatter","formatterAction","mceTableToggleClass","toggle","mceTableToggleCaption","caption","appendAt","mceTableSizingMode","setSizingMode","mceTableCellType","mceTableColType","mceTableRowType","func","addCommand","checkInput","headerRows","headerColumns","insertTable","getFormatName","validArgs","onTrue","onFalse","internalFilter","objAcc","filter$1","has","formatName","adt$4","Situ","cata","subject","onBefore","onOn","onAfter","situ","Response","kill","createRange","selectNodeContents","selectNodeContentsUsing","relativeToNative","startSitu","finishSitu","setStartBefore","setStartAfter","setEndBefore","setEndAfter","setFinish","exactToNative","soffset","foffset","toRect","rect","bottom","adt$3","ltr","rtl","fromRange","startContainer","startOffset","endContainer","endOffset","diagnose","domRange","exact","getRanges","collapsed","rev","doDiagnose","asLtrRange","SimRange","Situs","convertToRange","makeSitus","selectRange","cellSel","traverse","mode","backtrack","_direction","transition","sidestep","advance","sibling","successors","go","rules","succ","rule","fb","hone","isLeaf","seekLeft$1","seekRight$1","before$1","after$1","after$2","adt$2","success","failedUp","failedDown","isRow","BeforeAfter","verify","bridge","beforeOffset","afterOffset","failure","afterCell","beforeCell","beforeBounds","getRect","afterBounds","isOverlapping","_sharedRow","onSuccess","onFailedUp","onFailedDown","gatherer","cand","gather","handleParent","findBr","br","adjacent","inParent","indexInParent","moveDown","caret","moveUp","xDelta","yDelta","toCaret","getElemBox","getBoxAt","getRangedRect","getPartialBox","getEntireBox","adt$1","retry","inOutsideBlock","isOutside","downMovement","adjuster","guessBox","lowerCaret","move","adjustTil","movement","numRetries","isAtTable","adjustForTable","situsFromPoint","guess","newCaret","moved","adjusted","getInnerHeight","checkScroll","scrollBy","Retries","tryUp","higherCaret","tryDown","getJumpSize","findSpot","getSelection","handleBr","tgt","tryBr","brNeighbour","fromSitus","analysis","_message","tryCursor","situs","tryAgain","tryAt","simulate","initial","anchor","inSameTable","spot","handle$1","navigate","precheck","firstUpCheck","seekLeft","lastOffset","lastDownCheck","seekRight","Cell","doRevoke","revoke","singleton","findCell","isInEditableContext","isKey","keycode","isUp","isDown","isNavigation","isBackward","isForward","SimSelection","exactFromRange","simRange","getWin","_finishSitu","_soffset","_finish","_foffset","beforeSpecial","name$1","getNativeSelection","doSetNativeRange","removeAllRanges","addRange","doSetRange","setRangeFromRelative","setBaseAndExtent","extend","setLegacyRtlRange","setExact","preprocessExact","setRelative","preprocessRelative","readRange","rangeCount","firstRng","getRangeAt","lastRng","doGetExact","anchorNode","focusNode","makeRange","same","anchorOffset","focusOffset","setToElement","selectNodeContents$1","get$2","getExact","getAtPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","availableSearch","WindowBridge","rects","getClientRects","getFirstRect$1","getFirstRect","exactAdt","clearSelection","collapseSelection","toStart","setSelection","setRelativeSelection","selectContents","innerHeight","getScrollY","_DOC","get$3","by","rc","isEditableNode","isEditableSelection","add$1","add$2","multiple","single","fromRawEvent$1","rawEvent","event","shadowRoot","composed","composedPath","getOriginalEventTarget","stopPropagation","prevent","fa","mkEvent","clientX","clientY","unbind","useCapture","wrapped","handle","bind$1","fromRawEvent","hasInternalTarget","TableCellSelectionHandler","cellSelection","annotations","onSelection","onClear","removeSelectionAttributes","addSelectionAttribute","clearBeforeUpdate","SelectionAnnotation","cellsDom","otherCellsDom","upOrLeftCells","upGrid","upDetails","slicedCells","getUpOrLeftCells","downOrRightCells","downGrid","downDetails","getDownOrRightCells","getOtherCells","otherCells","cellArr","fireTableSelectionChange","fireTableSelectionClear","_e","mouseHandlers","handlers","clearstate","applySelection","singleCell","isNonEditableCell","isCellClosestContentEditable","mousedown","mouseover","mouseup","MouseSelection","mouse","keyHandlers","clearToNavigate","keydown","realEvent","which","shiftKey","update$1","attempts","navigation","newSels","update","_","keyup","sync","keyboard","external$1","external","handleResponse","response","hasShiftKey","ns","isLeftMouse","button","doubleTap","lastTarget","lastTimeStamp","touchEnd","lT","lTS","timeStamp","getDoubleTap","buttons","wrappedEvent","getRng","hide","show","addTempAttr","onSingle","onMultiple","Event","fields","trigger","create$1","typeDefs","registry","handleExact","required","unsupported","unsuppMessage","exactly","handleUnsupported","validateStrArr","everything","sorted","checkDupes","req","reqMessage","invalidKeys","incorrect","invalidTypeMessage","baseWith","DragMode","DragSink","DragApi","Movement","noDragState","events","onEvent","reset","NoDrag","inDragState","previous","old","compare","InDrag","dragState","off","isOn","namespace","dashNamespace","resolve$1","MouseDrag","sink","dragApi","settings","blocker","layerClass","destroy","Blocker","mdown","forceDrop","mup","drop","mmove","mout","delayDrop","mutation","resizeBar","resizeRowBar","resizeColBar","wire","drawBar","origin","cpOption","cp","bar","refreshGrid","warhouse","isResizable","rowPositions","resizableRowBars","resizableRows","tableWidth","rowBar","refreshRow","_pos","barIndex","colPositions","resizableColBars","resizableCols","resizableColumns","tableHeight","colBar","refreshCol","bars","resizeBarDragging","BarManager","drag","delegate","Mutation","BarMutation","active","throttledDrop","timer","cancel","throttle","runIfActive","isActive","setup","transform","hoverTable","getResizer","_dataRow","_dataCol","currentCol","getDelta","dir","startAdjust","isColBar","view","tbl","hideBars","showBars","barResizerPrefix","TableResizeHandler","selectionRng","tableResize","resizeWire","startW","startRawW","startH","startRawH","lazySizing","lazyResizingBehaviour","afterCornerResize","removeLeading","removeFromStart","getCornerLocation","isRightEdgeResize","isNorthEdgeResize","getPixelTableHeight","convertToPixelSizeHeight","getNumColumns","isPercentage$1","percentW","isPixel","computedWidth","syncTableCellPixels","getNumRows","rawWire","inline","chrome","ResizeWire","padding","margin","createContainer","objectResizing","hasTableObjectResizing","sz","hdirection","vdirection","manager","beforeResize","afterResize","startDrag","_event","refreshBars","TableResize","isReadOnly","rawTable","fireObjectResizeStart","fireObjectResized","targetElm","addClass","isCornerResize","setupTable","registerOption","register","processor","lookupOnSelection","addQueryValueHandler","registerQueryCommands","getAutoLinkPattern","getDefaultLinkTarget","getDefaultLinkProtocol","allowUnsafeLinkTarget","isZwsp","char","isBracketOrSpace","findChar","parseCurrentLine","voidElements","schema","getVoidElements","autoLinkPattern","getNode","textSeeker","getContentEditable","tempNode","tempOffset","freefallRtl","getRoot","endSpot","backwards","lastTextNode","startSpot","newRng","hasProtocol","convertToLink","bookmark","getBookmark","command","ui","isDefaultPrevented","execCommand","defaultLinkTarget","setAttrib","moveToBookmark","handleSpacebar","handleBracket","keyCode","handleEnter","getMinHeight","getMaxHeight","getAutoResizeOverflowPadding","getAutoResizeBottomMargin","toggleScrolling","state","overflowY","parseCssValueToInt","computed","oldSize","getExtraMarginBottom","plugins","fullscreen","isFullscreen","docEle","resizeBottomMargin","getElement","resizeHeight","marginTop","marginBottom","contentHeight","chromeHeight","getContainer","getContentAreaContainer","maxHeight","setStyles","deltaSize","setStyle","fireResizeEditor","scrollTo","hasFocus","setContentEvent","shouldScrollIntoView","scrollIntoView","register$1","overflowPadding","paddingLeft","paddingRight","Resource","grinning","fitzpatrick_scale","category","grimacing","grin","joy","rofl","partying","smiley","smile","sweat_smile","laughing","innocent","wink","blush","slightly_smiling_face","upside_down_face","relaxed","yum","relieved","heart_eyes","smiling_face_with_three_hearts","kissing_heart","kissing","kissing_smiling_eyes","kissing_closed_eyes","stuck_out_tongue_winking_eye","zany","raised_eyebrow","monocle","stuck_out_tongue_closed_eyes","stuck_out_tongue","money_mouth_face","nerd_face","sunglasses","star_struck","clown_face","cowboy_hat_face","hugs","smirk","no_mouth","neutral_face","expressionless","unamused","roll_eyes","thinking","lying_face","hand_over_mouth","shushing","symbols_over_mouth","exploding_head","flushed","disappointed","worried","angry","rage","pensive","confused","slightly_frowning_face","frowning_face","persevere","confounded","tired_face","weary","pleading","triumph","open_mouth","scream","fearful","cold_sweat","hushed","frowning","anguished","cry","disappointed_relieved","drooling_face","sleepy","sweat","hot","cold","sob","dizzy_face","astonished","zipper_mouth_face","nauseated_face","sneezing_face","vomiting","mask","face_with_thermometer","face_with_head_bandage","woozy","sleeping","zzz","poop","smiling_imp","imp","japanese_ogre","japanese_goblin","skull","ghost","alien","robot","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","palms_up","raised_hands","clap","wave","call_me_hand","facepunch","fist","fist_left","fist_right","ok_hand","raised_hand","raised_back_of_hand","open_hands","muscle","pray","foot","leg","handshake","point_up","point_up_2","point_down","point_left","point_right","fu","raised_hand_with_fingers_splayed","love_you","metal","crossed_fingers","vulcan_salute","writing_hand","selfie","nail_care","lips","tooth","tongue","ear","nose","eye","eyes","brain","bust_in_silhouette","busts_in_silhouette","speaking_head","baby","boy","girl","adult","man","woman","blonde_woman","blonde_man","bearded_person","older_adult","older_man","older_woman","man_with_gua_pi_mao","woman_with_headscarf","woman_with_turban","man_with_turban","policewoman","policeman","construction_worker_woman","construction_worker_man","guardswoman","guardsman","female_detective","male_detective","woman_health_worker","man_health_worker","woman_farmer","man_farmer","woman_cook","man_cook","woman_student","man_student","woman_singer","man_singer","woman_teacher","man_teacher","woman_factory_worker","man_factory_worker","woman_technologist","man_technologist","woman_office_worker","man_office_worker","woman_mechanic","man_mechanic","woman_scientist","man_scientist","woman_artist","man_artist","woman_firefighter","man_firefighter","woman_pilot","man_pilot","woman_astronaut","man_astronaut","woman_judge","man_judge","woman_superhero","man_superhero","woman_supervillain","man_supervillain","mrs_claus","santa","sorceress","wizard","woman_elf","man_elf","woman_vampire","man_vampire","woman_zombie","man_zombie","woman_genie","man_genie","mermaid","merman","woman_fairy","man_fairy","angel","pregnant_woman","breastfeeding","princess","prince","bride_with_veil","man_in_tuxedo","running_woman","running_man","walking_woman","walking_man","dancer","man_dancing","dancing_women","dancing_men","couple","two_men_holding_hands","two_women_holding_hands","bowing_woman","bowing_man","man_facepalming","woman_facepalming","woman_shrugging","man_shrugging","tipping_hand_woman","tipping_hand_man","no_good_woman","no_good_man","ok_woman","ok_man","raising_hand_woman","raising_hand_man","pouting_woman","pouting_man","frowning_woman","frowning_man","haircut_woman","haircut_man","massage_woman","massage_man","woman_in_steamy_room","man_in_steamy_room","couple_with_heart_woman_man","couple_with_heart_woman_woman","couple_with_heart_man_man","couplekiss_man_woman","couplekiss_woman_woman","couplekiss_man_man","family_man_woman_boy","family_man_woman_girl","family_man_woman_girl_boy","family_man_woman_boy_boy","family_man_woman_girl_girl","family_woman_woman_boy","family_woman_woman_girl","family_woman_woman_girl_boy","family_woman_woman_boy_boy","family_woman_woman_girl_girl","family_man_man_boy","family_man_man_girl","family_man_man_girl_boy","family_man_man_boy_boy","family_man_man_girl_girl","family_woman_boy","family_woman_girl","family_woman_girl_boy","family_woman_boy_boy","family_woman_girl_girl","family_man_boy","family_man_girl","family_man_girl_boy","family_man_boy_boy","family_man_girl_girl","yarn","thread","coat","labcoat","womans_clothes","tshirt","jeans","necktie","dress","bikini","kimono","lipstick","kiss","footprints","flat_shoe","high_heel","sandal","boot","mans_shoe","athletic_shoe","hiking_boot","socks","gloves","scarf","womans_hat","tophat","billed_hat","rescue_worker_helmet","mortar_board","crown","school_satchel","luggage","pouch","purse","handbag","briefcase","eyeglasses","dark_sunglasses","goggles","ring","closed_umbrella","dog","hamster","rabbit","fox_face","bear","panda_face","koala","tiger","lion","cow","pig","pig_nose","frog","squid","octopus","shrimp","monkey_face","gorilla","see_no_evil","hear_no_evil","speak_no_evil","monkey","chicken","penguin","bird","baby_chick","hatching_chick","hatched_chick","duck","eagle","owl","bat","wolf","boar","horse","unicorn","honeybee","bug","butterfly","snail","beetle","ant","grasshopper","spider","scorpion","crab","snake","lizard","sauropod","turtle","tropical_fish","fish","blowfish","dolphin","shark","whale","whale2","crocodile","leopard","zebra","tiger2","water_buffalo","ox","cow2","deer","dromedary_camel","camel","giraffe","elephant","rhinoceros","goat","ram","sheep","racehorse","pig2","rat","mouse2","rooster","turkey","dove","dog2","poodle","cat2","rabbit2","chipmunk","hedgehog","raccoon","llama","hippopotamus","kangaroo","badger","swan","peacock","parrot","lobster","mosquito","paw_prints","dragon","dragon_face","cactus","christmas_tree","evergreen_tree","deciduous_tree","palm_tree","seedling","herb","shamrock","four_leaf_clover","bamboo","tanabata_tree","leaves","fallen_leaf","maple_leaf","ear_of_rice","hibiscus","sunflower","rose","wilted_flower","tulip","blossom","cherry_blossom","bouquet","mushroom","chestnut","jack_o_lantern","shell","spider_web","earth_americas","earth_africa","earth_asia","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","new_moon","waxing_crescent_moon","first_quarter_moon","waxing_gibbous_moon","new_moon_with_face","full_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","sun_with_face","crescent_moon","star","star2","dizzy","sparkles","comet","sunny","sun_behind_small_cloud","partly_sunny","sun_behind_large_cloud","sun_behind_rain_cloud","cloud","cloud_with_rain","cloud_with_lightning_and_rain","cloud_with_lightning","zap","fire","boom","snowflake","cloud_with_snow","snowman","snowman_with_snow","wind_face","dash","tornado","fog","open_umbrella","umbrella","droplet","sweat_drops","ocean","green_apple","apple","pear","tangerine","lemon","banana","watermelon","grapes","strawberry","melon","cherries","peach","pineapple","coconut","kiwi_fruit","mango","avocado","broccoli","tomato","eggplant","cucumber","carrot","hot_pepper","potato","corn","leafy_greens","sweet_potato","peanuts","honey_pot","croissant","bread","baguette_bread","bagel","pretzel","cheese","egg","bacon","steak","pancakes","poultry_leg","meat_on_bone","bone","fried_shrimp","fried_egg","hamburger","fries","stuffed_flatbread","hotdog","pizza","sandwich","canned_food","spaghetti","taco","burrito","green_salad","shallow_pan_of_food","ramen","stew","fish_cake","fortune_cookie","sushi","bento","rice_ball","rice","rice_cracker","oden","dango","shaved_ice","ice_cream","icecream","pie","cake","cupcake","moon_cake","birthday","custard","candy","lollipop","chocolate_bar","popcorn","dumpling","doughnut","cookie","milk_glass","beer","beers","clinking_glasses","wine_glass","tumbler_glass","cocktail","tropical_drink","champagne","sake","tea","cup_with_straw","coffee","baby_bottle","salt","spoon","fork_and_knife","plate_with_cutlery","bowl_with_spoon","takeout_box","chopsticks","soccer","basketball","football","baseball","softball","tennis","volleyball","rugby_football","flying_disc","golf","golfing_woman","golfing_man","ping_pong","badminton","goal_net","ice_hockey","field_hockey","lacrosse","cricket","ski","skier","snowboarder","person_fencing","women_wrestling","men_wrestling","woman_cartwheeling","man_cartwheeling","woman_playing_handball","man_playing_handball","ice_skate","curling_stone","skateboard","sled","bow_and_arrow","fishing_pole_and_fish","boxing_glove","martial_arts_uniform","rowing_woman","rowing_man","climbing_woman","climbing_man","swimming_woman","swimming_man","woman_playing_water_polo","man_playing_water_polo","woman_in_lotus_position","man_in_lotus_position","surfing_woman","surfing_man","bath","basketball_woman","basketball_man","weight_lifting_woman","weight_lifting_man","biking_woman","biking_man","mountain_biking_woman","mountain_biking_man","horse_racing","business_suit_levitating","trophy","running_shirt_with_sash","medal_sports","medal_military","reminder_ribbon","rosette","ticket","tickets","performing_arts","art","circus_tent","woman_juggling","man_juggling","microphone","headphones","musical_score","musical_keyboard","drum","saxophone","trumpet","guitar","violin","clapper","video_game","space_invader","dart","game_die","chess_pawn","slot_machine","jigsaw","bowling","red_car","taxi","blue_car","bus","trolleybus","racing_car","police_car","ambulance","fire_engine","minibus","truck","articulated_lorry","tractor","kick_scooter","motorcycle","bike","motor_scooter","rotating_light","oncoming_police_car","oncoming_bus","oncoming_automobile","oncoming_taxi","aerial_tramway","mountain_cableway","suspension_railway","railway_car","train","monorail","bullettrain_side","bullettrain_front","light_rail","mountain_railway","steam_locomotive","train2","metro","tram","station","flying_saucer","helicopter","small_airplane","airplane","flight_departure","flight_arrival","sailboat","motor_boat","speedboat","ferry","passenger_ship","rocket","artificial_satellite","seat","canoe","construction","fuelpump","busstop","vertical_traffic_light","traffic_light","checkered_flag","ship","ferris_wheel","roller_coaster","carousel_horse","building_construction","foggy","tokyo_tower","fountain","rice_scene","mountain","mountain_snow","mount_fuji","volcano","japan","camping","tent","national_park","motorway","railway_track","sunrise","sunrise_over_mountains","desert","beach_umbrella","desert_island","city_sunrise","city_sunset","cityscape","night_with_stars","bridge_at_night","milky_way","stars","sparkler","fireworks","rainbow","houses","european_castle","japanese_castle","stadium","statue_of_liberty","house_with_garden","derelict_house","office","department_store","post_office","european_post_office","hospital","bank","hotel","convenience_store","school","love_hotel","wedding","classical_building","church","mosque","synagogue","kaaba","shinto_shrine","watch","iphone","calling","computer","desktop_computer","printer","computer_mouse","trackball","joystick","clamp","minidisc","floppy_disk","cd","dvd","vhs","camera","camera_flash","video_camera","movie_camera","film_projector","film_strip","telephone_receiver","phone","pager","fax","tv","radio","studio_microphone","level_slider","control_knobs","compass","stopwatch","timer_clock","alarm_clock","mantelpiece_clock","hourglass_flowing_sand","hourglass","satellite","battery","electric_plug","bulb","flashlight","candle","fire_extinguisher","wastebasket","oil_drum","money_with_wings","dollar","yen","euro","pound","moneybag","credit_card","gem","balance_scale","toolbox","wrench","hammer","hammer_and_pick","hammer_and_wrench","pick","nut_and_bolt","gear","brick","chains","magnet","gun","bomb","firecracker","hocho","dagger","crossed_swords","shield","smoking","skull_and_crossbones","coffin","funeral_urn","amphora","crystal_ball","prayer_beads","nazar_amulet","barber","alembic","telescope","microscope","hole","pill","syringe","dna","microbe","petri_dish","test_tube","thermometer","broom","basket","toilet_paper","toilet","shower","bathtub","soap","sponge","lotion_bottle","old_key","couch_and_lamp","sleeping_bed","bed","door","bellhop_bell","teddy_bear","framed_picture","world_map","parasol_on_ground","moyai","shopping","shopping_cart","balloon","flags","ribbon","gift","confetti_ball","tada","dolls","wind_chime","crossed_flags","izakaya_lantern","red_envelope","email","envelope_with_arrow","incoming_envelope","love_letter","postbox","mailbox_closed","mailbox","mailbox_with_mail","mailbox_with_no_mail","package","postal_horn","inbox_tray","outbox_tray","scroll","page_with_curl","bookmark_tabs","receipt","bar_chart","chart_with_upwards_trend","chart_with_downwards_trend","page_facing_up","date","calendar","spiral_calendar","card_index","card_file_box","ballot_box","file_cabinet","spiral_notepad","file_folder","open_file_folder","card_index_dividers","newspaper_roll","newspaper","notebook","closed_book","green_book","blue_book","orange_book","notebook_with_decorative_cover","ledger","books","open_book","safety_pin","link","paperclip","paperclips","scissors","triangular_ruler","straight_ruler","abacus","pushpin","round_pushpin","triangular_flag_on_post","white_flag","black_flag","rainbow_flag","closed_lock_with_key","lock","unlock","lock_with_ink_pen","pen","fountain_pen","black_nib","memo","pencil2","crayon","paintbrush","mag","mag_right","heart","orange_heart","yellow_heart","green_heart","blue_heart","purple_heart","black_heart","broken_heart","heavy_heart_exclamation","two_hearts","revolving_hearts","heartbeat","heartpulse","sparkling_heart","cupid","gift_heart","heart_decoration","peace_symbol","latin_cross","star_and_crescent","om","wheel_of_dharma","star_of_david","six_pointed_star","menorah","yin_yang","orthodox_cross","place_of_worship","ophiuchus","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","atom_symbol","u7a7a","u5272","radioactive","biohazard","mobile_phone_off","vibration_mode","u6709","u7121","u7533","u55b6","u6708","eight_pointed_black_star","vs","accept","white_flower","ideograph_advantage","secret","congratulations","u5408","u6e80","u7981","ab","cl","o2","sos","no_entry","name_badge","no_entry_sign","stop_sign","anger","hotsprings","no_pedestrians","do_not_litter","no_bicycles","underage","no_mobile_phones","exclamation","grey_exclamation","question","grey_question","bangbang","interrobang","low_brightness","high_brightness","trident","fleur_de_lis","part_alternation_mark","warning","children_crossing","beginner","recycle","u6307","chart","sparkle","eight_spoked_asterisk","negative_squared_cross_mark","white_check_mark","diamond_shape_with_a_dot_inside","cyclone","loop","globe_with_meridians","m","atm","sa","passport_control","customs","baggage_claim","left_luggage","wheelchair","no_smoking","wc","parking","potable_water","mens","womens","baby_symbol","restroom","put_litter_in_its_place","cinema","signal_strength","koko","ng","ok","cool","new","free","two","three","four","five","six","seven","eight","nine","keycap_ten","asterisk","eject_button","arrow_forward","pause_button","next_track_button","stop_button","record_button","play_or_pause_button","previous_track_button","fast_forward","rewind","twisted_rightwards_arrows","repeat","repeat_one","arrow_backward","arrow_up_small","arrow_down_small","arrow_double_up","arrow_double_down","arrow_right","arrow_left","arrow_up","arrow_down","arrow_upper_right","arrow_lower_right","arrow_lower_left","arrow_upper_left","arrow_up_down","left_right_arrow","arrows_counterclockwise","arrow_right_hook","leftwards_arrow_with_hook","arrow_heading_up","arrow_heading_down","information_source","abc","abcd","capital_abcd","symbols","musical_note","notes","wavy_dash","curly_loop","heavy_check_mark","arrows_clockwise","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","heavy_multiplication_x","infinity","heavy_dollar_sign","currency_exchange","copyright","registered","tm","back","soon","ballot_box_with_check","radio_button","white_circle","black_circle","red_circle","large_blue_circle","small_orange_diamond","small_blue_diamond","large_orange_diamond","large_blue_diamond","small_red_triangle","black_small_square","white_small_square","black_large_square","white_large_square","small_red_triangle_down","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_square_button","white_square_button","speaker","sound","loud_sound","mute","mega","loudspeaker","bell","no_bell","black_joker","mahjong","spades","clubs","hearts","diamonds","flower_playing_cards","thought_balloon","right_anger_bubble","speech_balloon","left_speech_bubble","clock1","clock2","clock3","clock4","clock5","clock6","clock7","clock8","clock9","clock10","clock11","clock12","clock130","clock230","clock330","clock430","clock530","clock630","clock730","clock830","clock930","clock1030","clock1130","clock1230","afghanistan","aland_islands","albania","algeria","american_samoa","andorra","angola","anguilla","antarctica","antigua_barbuda","argentina","armenia","aruba","australia","austria","azerbaijan","bahamas","bahrain","bangladesh","barbados","belarus","belgium","belize","benin","bermuda","bhutan","bolivia","caribbean_netherlands","bosnia_herzegovina","botswana","brazil","british_indian_ocean_territory","british_virgin_islands","brunei","bulgaria","burkina_faso","burundi","cape_verde","cambodia","cameroon","canada","canary_islands","cayman_islands","central_african_republic","chad","chile","cn","christmas_island","cocos_islands","colombia","comoros","congo_brazzaville","congo_kinshasa","cook_islands","costa_rica","croatia","cuba","curacao","cyprus","czech_republic","denmark","djibouti","dominica","dominican_republic","ecuador","egypt","el_salvador","equatorial_guinea","eritrea","estonia","ethiopia","eu","falkland_islands","faroe_islands","fiji","finland","fr","french_guiana","french_polynesia","french_southern_territories","gabon","gambia","georgia","de","ghana","gibraltar","greece","greenland","grenada","guadeloupe","guam","guatemala","guernsey","guinea","guinea_bissau","guyana","haiti","honduras","hong_kong","hungary","iceland","india","indonesia","iran","iraq","ireland","isle_of_man","israel","it","cote_divoire","jamaica","jp","jersey","jordan","kazakhstan","kenya","kiribati","kosovo","kuwait","kyrgyzstan","laos","latvia","lebanon","lesotho","liberia","libya","liechtenstein","lithuania","luxembourg","macau","macedonia","madagascar","malawi","malaysia","maldives","mali","malta","marshall_islands","martinique","mauritania","mauritius","mayotte","mexico","micronesia","moldova","monaco","mongolia","montenegro","montserrat","morocco","mozambique","myanmar","namibia","nauru","nepal","netherlands","new_caledonia","new_zealand","nicaragua","niger","nigeria","niue","norfolk_island","northern_mariana_islands","north_korea","norway","oman","pakistan","palau","palestinian_territories","panama","papua_new_guinea","paraguay","peru","philippines","pitcairn_islands","poland","portugal","puerto_rico","qatar","reunion","romania","ru","rwanda","st_barthelemy","st_helena","st_kitts_nevis","st_lucia","st_pierre_miquelon","st_vincent_grenadines","samoa","san_marino","sao_tome_principe","saudi_arabia","senegal","serbia","seychelles","sierra_leone","singapore","sint_maarten","slovakia","slovenia","solomon_islands","somalia","south_africa","south_georgia_south_sandwich_islands","kr","south_sudan","es","sri_lanka","sudan","suriname","swaziland","sweden","switzerland","syria","taiwan","tajikistan","tanzania","thailand","timor_leste","togo","tokelau","tonga","trinidad_tobago","tunisia","turkmenistan","turks_caicos_islands","tuvalu","uganda","ukraine","united_arab_emirates","uk","england","scotland","wales","us","us_virgin_islands","uruguay","uzbekistan","vanuatu","vatican_city","venezuela","vietnam","wallis_futuna","western_sahara","yemen","zambia","zimbabwe","united_nations","pirate_flag","merger","objects","curObject","getEmojiDatabase","getEmojiDatabaseUrl","getEmojiDatabaseId","getAppendedEmoji","getEmojiImageUrl","ALL_CATEGORY","categoryNameMap","people","animals_and_nature","food_and_drink","activity","travel_and_places","user","translateCategory","categories","getUserDefinedEmoji","userDefinedEmoticons","emojiMatches","emoji","lowerCasePattern","title","emojisFrom","maxResults","reachedLimit","icon","patternName","database","initialState","listAll","currentTab","updateFilter","dialogApi","dialogData","listCategory","searchField","resultsField","getInitialState","tabs","listCategories","initialData","onTabChange","newTabName","onChange","onAction","actionData","insertEmoticon","close","primary","windowManager","hasLoaded","block","waitForLoad","then","redial","unblock","catch","_err","onSetupEditable","setEnabled","pluginUrl","register$2","databaseUrl","databaseId","emojiImagesUrl","getEmoji","lib","load","emojis","userEmojis","cats","entry","processEmojis","Promise","reject","interval","setInterval","clearInterval","initDatabase","addButton","tooltip","onSetup","addMenuItem","addAutocompleter","minChars","fetch","autocompleteApi","init","parser","addAttributeFilter","getAllEmojis","global$7","get$1","unique","isDuplicated","lift2","oa","ob","isElement$1","lastChild","ancestor$3","global$6","global$5","global$4","global$3","global$2","matchNodeName","matchNodeNames","isTextNode$1","isListNode","isOlUlNode","isOlNode","isListItemNode","isDlItemNode","isTableCellNode","isTextBlock","getTextBlockElements","blockElements","isVoid","isEmpty$2","keepBookmarks","isChildOfBody","isChildOf","shouldIndentOnTab","getForcedRootBlock","getForcedRootBlockAttrs","createTextBlock","contentNode","getBlockElements","fragment","createFragment","blockName","blockAttrs","textBlock","hasContentNode","DOM$2","isDescriptionDetail","isDescriptionTerm","outdentDlItem","dl","li","bookmarks","newBlock","tmpRng","extractContents","insertAfter","targetNode","removeAndKeepBookmarks","splitList","indentDlItem","getNormalizedPoint","normalizeRange","outRng","cloneRange","rangeStart","rangeEnd","listNames","listSelector","getParentList","selectionStart","getClosestListHost","getSelectedListItems","selectedBlocks","getSelectedBlocks","elms","listItemsElms","findParentListItemsNodes","getClosestEditingHost","parentTableCell","getParents","parentBlocks","isNotForcedRootBlock","listName","isValidChild","findLastParentListNode","parentLists","getUniqueListRoots","lists","listRoots","isCustomList","inList","isWithinNonEditable","isWithinNonEditableList","parentList","setNodeChangeHandler","nodeChangeHandler","initialNode","fromElements","fireListEvent","hasFirstChildList","isEntryList","isEntryComment","isIndented","depth","cloneItemContent","joinSegment","createSegment","listType","segment","writeShallow","cast","newCast","createItem","itemAttributes","appendItem","listAttributes","normalizeSegment","isEntryFragment","composeList","entries","firstCommentEntryOpt","segments","parentListType","createSegments","joinSegments","populateSegments","writeDeep","firstCommentEntry","fistCast","normalizeEntries","dirty","closestSiblingEntry","_value","cleanListProperties","matchingEntry","cloneListProperties","parseSingleItem","itemSelection","selectionState","currentItemEntry","isInPreviousLi","createEntry","childListEntries","parseList","parseItem","parsedSiblings","liChild","isFragment","listIndentation","indentation","entrySets","sourceList","parseLists","selectedListItems","getItemSelection","entrySet","indentEntry","indentSelectedEntries","composedLists","wasType","groupBy","normalizedEntries","contentDocument","indentedComposer","listItemAttrs","outdentedComposer","composeEntries","composedList","selectionIndentation","selectedLists","firstList","subsequentLists","getSelectedLists","getParentLists","isListInsideAnLiWithFirstAndLastNotListElement","l","getSelectedListRoots","dlItems","getSelectedDlItems","isHandled","dlIndentation","handleIndentation","selectionIsWithinNonEditableList","indentListSelection","outdentListSelection","flattenListSelection","DOM$1","createBookmark","setupEndPoint","resolveBookmark","restoreEndPoint","nodeIndex","listToggleActionFromListName","setAttribs","updateListWithDetails","updateListStyle","updateListAttrs","isInline","getEndPointNode","findBetterContainer","forward","walker","findBlockAncestor","applyList","listItemName","startPoint","commonAncestorContainer","getRootSearchStart","toUpperCase","selectedTextBlocks","textBlocks","endNode","siblings","isBookmarkNode","getSelectedTextBlocks","listBlock","sib","sibStyle","detailStyle","hasCompatibleStyle","rename","removeStyles","mergeWithAdjacentLists","shouldMerge","list1","list2","isValidLists","hasSameListStyle","elm2","liSibling","updateList$1","newList","updateCustomList","cls","hasListStyleDetail","toggleList","_detail","selectedSubLists","isParentListSelected","findSubLists","getSelectedSubLists","parentIsList","allLists","updateFunction","toggleMultipleLists","toggleSingleList","normalizeLists","grep","normalizeList","findNextCaretContainer","nonEmptyBlocks","getNonEmptyElements","isBogusBr","walkFn","prev2","hasOnlyOneBlockChild","isUnwrappable","moveChildren","fromElm","toElm","unwrapSingleBlockChild","mergeLiElements","listNode","ul","nestedLists","backspaceDeleteFromListToListCaret","selectionStartElm","otherLi","willMergeParentIntoChild","transact","fromLi","toLi","mergeIntoEmptyLi","mergeForward","resolvedBookmark","mergeBackward","oldParentElRef","hasListSelection","backspaceDelete","isCollapsed","checkRootAsContent","findValidElement","findRoot","equals","removeBlock","backspaceDeleteIntoListCaret","backspaceDeleteCaret","shouldFireInput","inputHandler","backspaceDeleteRange","parseAlphabeticBase26","chars","charValue","charCodeAt","pow","composeAlphabeticBase26","quotient","fromCharCode","parseDetail","listStyleType","queryListCommandState","registerDialog","currentList","inputMode","onSubmit","deduceListType","parseStartValue","isTextNode","nodeBuffer","wrapInvalidChildren","insertListItem","buffer","refNode","restBuffer","setupToggleButtonHandler","setActive","setupMenuButtonHandler","register$3","addNodeFilter","setup$1","hasPlugin","TAB","metaKeyPressed","setupTabKey","cmd","BACKSPACE","DELETE","setup$2","updateList","addQueryStateHandler","addToggleButton","listProperties","addContextMenu","getPrototypeOf$2","hasProto","proto","isPlainObject","isArrayOf","noarg","compose","constant$1","die","apply$1","range$2","chunk$1","map$2","partition$3","find$5","findIndex$1","bind$3","difference","a1","a2","pure$2","get$i","find$4","get$h","has$2","mapFrom","numChars","trim$1","path$1","getPrototypeOf$1","getOrDie$1","name$3","type$1","owner$4","offsetParent","leaf","set$9","get$g","hasAttribute","remove$8","set$8","setOptions","get$f","getAllRaw","ruleName","isValidValue$1","reflow","get$e","r$1","absolute$3","viewport$1","unknown$3","nu$d","find$3","detect$3","nu$c","nu$b","isOpenShadowHost","append$2","prepend$1","to","bounds$1","getBounds$3","_win","visualViewport","clientWidth","clientHeight","pageLeft","pageTop","getDocument","walkUp","Navigation","freeze","__proto__","frameElement","find$2","paths","pathTo","frames","loc","box$1","xy","absolute$2","constrain","constraint","singleton$1","unbindable","value$4","global$a","value$3","error$1","SimpleResultType","fold$1","stype","serror","svalue","Value","SimpleResult","field$2","newKey","presence","ifField","ifCustom","instantiator","baseMerge","deepMerge","defaultedThunk","fallbackThunk","process","defaulted$1","mergeWithThunk","baseThunk","ResultCombine","partitions","errors","formatObj","nu$a","getErrorInfo","value$2","validator","custom","anyValue$1","fallbackAccess","extractField","field","av","bundleAsOption","optValue","ov","missingRequired","requiredAccess","optionAccess","optionDefaultedAccess","valueThunk","getDelegate","getSetKeys","objOfOnly","objOf","fieldNames","extra","unsupportedFields","extractFields","_okey","_presence","_instantiator","arrOf","oneOf","rawF","setOf$1","validatedKeys","validateKeys","validKeys","vk","arrOfObj","anyValue","typedValue","expectedType","actualType","boolean","functionProcessor","isPostMessageable","postMessageable","choose$2","missingKey","chosen","branch","missingBranch","vp","chooseFrom","valueOf","setOf","asRaw","errs","extractValue","extraction","errInfo","formatError","asRawOrDie$1","formatErrors","choose$1","thunkOf","desc","_desc","getP","field$1","customField","validateEnum","required$1","requiredOf","requiredString","requiredStringEnum","requiredFunction","requiredObjOf","objSchema","requiredArrayOfObj","objFields","requiredArrayOf","option$3","optionOf","optionNumber","optionString","optionStringEnum","optionFunction","optionArrayOf","optionObjOf","defaulted","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedArrayOf","defaultedObjOf","bothErrors","firstError","secondError","bothValues","wrap$1","wrap$2","wrapAll","keyvalues","kv","wrapAll$1","ensureIsRoot","transformed","closest$4","isSource","component","simulatedEvent","defaultEventHandler","can","abort","nu$9","touchstart","touchmove","touchend","touchcancel","mousemove","mouseout","focusin","focusout","change","click","transitioncancel","transitionend","transitionstart","selectstart","prefixName","alloy","tap","focus$4","postBlur","postPaste","receive","execute$5","focusItem","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","externalElementScroll","changeTab","dismissTab","highlight$1","dehighlight$1","emit","dispatchWith","emitWith","emitExecute","getSystem","triggerEvent","dispatchEvent","derive$2","configs","run$1","runActionExtra","runOnSourceName","redirectToPart","partName","uid","getByUid","redirectee","redirectToUid","partUids","runWithTarget","ev","getByDom","cutter","cut","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute$1","cleanParameters","parameters","markAsExtraApi","extraName","openBracketIndex","toFunctionAnnotation","nu$8","classes","loadEvent","bConfig","bState","_simulatedEvent","revokeBehaviour","doCreate","configSchema","schemaSchema","apis","getConfig","wrappedApis","apiF","apiName","bName","apiFunction","markAsBehaviourApi","config","wrapApi","me","extraF","spec","prepared","configAsRaw","initialConfig","exhibit","behaviourInfo","exhibitor","getEvents","NoState","nu$7","readState","derive$1","capabilities","simpleSchema","create$4","create$5","modeSchema","createModes","modes","createModes$1","branchKey","read$1","add$4","remove$4","cleanClass","remove$3","remove$2","getNative","NuPositionCss","toPx","applyPositionCss","toOptions","getOffsetParent","offsetParent$1","getOrigin","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","onShow","disappear","onHide","isTopCompletelyVisible","isBottomCompletelyVisible","forceTopPosition","winBox","leftX","topY","forceBottomPosition","bottomY","getDockedLeftPosition","getPrior","getInitialPos","priorY","optScrollEnv","scrollEnv","scrollElmTop","currentScrollTop","getXYForRestoring","storePrior","decision","getXYForSaving","setInitialPos","revertToOriginal","clearInitialPos","morph","offsetBox","scrollDelta","positionCss","_left","_top","_right","_bottom","tryDecisionToFixedMorph","tryMorph","isVisibleForModes","getModes","tryMorphToOriginal","tryMorphToOriginalOrUpdateFixed","tryDockingPosition","tryMorphToFixed","morphToStatic","setDocked","onUndocked","morphToCoord","isDocked","onDocked","updateVisibility","morphToDocked","contextual","contextInfo","lazyContext","isVisible","isPartiallyVisible","setVisible","applyFixedMorph","refresh$4","isConnected","lazyViewport","applyMorph","refreshInternal","reset$2","calculateMorphToOriginal","staticOrAbsoluteMorph","resetInternal","forceDockWithDecision","getDecision","storePriorIfNone","forceDockWith","forceDockToTop","forceDockToBottom","DockingApis","setModes","ActiveDocking","dockInfo","dockState","onShown","onHidden","set$6","docDom","contentElements","fromHtml$1","getHtml","EventConfiguration","eventConfig","monitorEvent","eventName","initialTarget","patterns","NORMAL","noLogger","LOGGING","logger","sequence","startTime","Date","getTime","logEventCut","_name","purpose","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","finishTime","time","makeEventLogger","STOP","processEvent","menuFields","itemFields","itemSchema$3","_initSize","tieredMenuMarkers","markers$1","onPresenceHandler","fieldName","line","getTrace","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","output$1","snapshot","initSize","DockingSchema","Docking","docked","visible","initialBounds","events$h","originator","isRecursive","warn","DefaultEvents","cycleBy","generate$6","random$1","crypto","getRandomValues","Uint32Array","prefix$1","idAttr$1","idAttr","writeOnly","generate$5","make$8","NoContextApi","getComp","getMessage","debugInfo","triggerFocus","triggerEscape","broadcast","broadcastOn","broadcastEvent","build","buildOrPatch","addToWorld","removeFromWorld","addToGui","removeFromGui","premadeTag","premade$1","getPremade","makeApi","markAsSketchApi","getApis","byInnerKey","indexKey","chain","getCurried","descHandler","cHandler","behaviourTuple","nameToHandlers","behaviour","fuse","tuples","eventOrder","order","keyName","aKey","bKey","aIndex","bIndex","sortKeys","sortedTuples","all$2","any","fuse$1","missingOrderError","combineGroups","byEventName","objs","partition$1","mergeValues","consolidate","assembled","rawHandler","read$2","assemble","uncurried","baseBehaviour","schema$z","toEvents","set$5","ensureInDom","obsoleted","obs","patchChildrenWith","builtChildren","currentChildren","patchSpecChild","oldObsoleted","childComp","newObs","oldTag","determineObsoleted","diffKeyValueSet","newObj","oldObj","newKeys","oldKeys","toRemove","toSet","bifilter","renderToDom","definition","optObsoleted","innerHtml","domChildren","hasMixedChildren","isPremade","class","existingAttributes","attrsToSet","attrsToRemove","existingStyles","stylesToSet","stylesToRemove","existingClasses","classesToRemove","classesToAdd","patchDomChildren","valueElement","updateValue","reconcileToDom","attemptPatch","introduceToDom","generate$4","getBehaviours$2","validated","optBlobThunk","blob","generateFrom$1","generateFrom","build$2","getMe","systemApi","toInfo","bBlob","bList","bData","getBehaviours$3","getData$2","modDefinition","components","infoModification","domModification","toModification","baseModification","modification","baseMod","modsByBehaviour","byAspect","combineObjects","combinedClasses","combinedAttributes","combinedStyles","combine$2","defnA","mod","getDomDefinition","baseEvents","behaviourEvents","groupByEvents","combine$1","subcomponents","hasConfigured","behaviourName","connect","newApi","disconnect","syncComponents","subs","text$2","extSpec","uids","userSpec","specEvents","build$1","buildSubcomponents","completeSpec","buildFromSpec","isSketchSpec$1","premade","closest$3","sibling$1","ariaId","unlink","isPartOf$1","queryElem","dep","isAriaPartOf","nu$6","bubble","placement","boundsRestriction","labelPrefix","alwaysFit","restriction","adt$a","southeast","southwest","northeast","northwest","south","north","east","west","southeast$3","southwest$3","northeast$3","northwest$3","south$3","north$3","east$3","west$3","restrictions","getRestriction","labelPrefix$2","eastX$1","middleX$1","westX$1","northY$2","southY$2","centreY$1","southeast$2","bubbles","southwest$2","northeast$2","northwest$2","north$2","south$2","east$2","eastEdgeX$1","west$2","westEdgeX$1","allRtl$1","aboveOrBelow","aboveOrBelowRtl","belowOrAbove","belowOrAboveRtl","ActiveReceiving","receiveConfig","channelMap","channels","receivingData","targetChannels","universal","chooseChannels","channelInfo","channelSchema","onReceive","ReceivingSchema","Receiving","ActivePosition","posConfig","useFixed","focus$3","preventScroll","blur$1","blur","activeElement","active$1","preserve$1","refocus","focused","oldFocus","newFocus","adt$9","positionWithDirection","posName","decisionRect","decisionX","decisionY","decisionRight","decisionBottom","reposition","toBox","rel","optBounds","translate$2","outerScroll","relative$1","fixed$1","placementAttribute","getPlacement","adt$8","fit","nofit","attempt","bubbleOffset","adjustedBounds","applyRestriction","isVerticalAxis","newPos","adjustedLeft","adjustedTop","adjustedRight","adjustedBottom","adjustBounds","newX","newY","originInBounds","sizeInBounds","visibleW","visibleH","boundsX","boundsY","boundsRight","boundsBottom","determinePosition","fits","fittedBox","maxX","maxY","restrictedX","restrictedY","restrictedWidth","restrictedHeight","calcReposition","isPartlyVisible","maxWidth","upAvailable","downAvailable","cataVertical","westAvailable","eastAvailable","cataHorizontal","calcMaxSizes","classesOn","classesOff","layout","testY","capture","capture$1","timerAttr","applyTransitionCss","lastPlacement","shouldTransition","placer","shouldApplyTransitionCss","hasAll","isTransitioning$1","intermediatePosition","intermediateCssOptions","intermediate","hasChanges","timerId","transitionEnd","transitionCancel","isSourceTransition","pseudoElement","propertyName","transitionDone","transitionStart","duration","times","delay","dur","getTransitionDuration","requestAnimationFrame","setupTransitionListeners","startTransitioning","setMaxHeight","absMax","setMax$1","anchored","available","expandable$1","defaultOr","dephault","anchorBox","elementBox","panelWidth","panelHeight","attemptBestFit","attemptLayout","newReposition","newVisibleW","newVisibleH","newIsVisible","bestNext","preference","position$2","setPlacement$1","setPlacement","classInfo","setClasses","maxHeightFunction","maxWidthFunction","setWidth","allAlignments","nu$5","xOffset","yOffset","insetModifier","insetXOffset","insetYOffset","getClasses","make","alignmentsOn","alignmentsOff","insetNortheast","insetNorthwest","insetNorth","insetSoutheast","insetSouthwest","insetSouth","insetEast","insetWest","nu$4","AttributeValue","Attribute","isBottomToTopDir","BottomToTop","schema$y","defaultLtr","defaultRtl","defaultBottomLtr","defaultBottomRtl","dirElement","isBottomToTop","customLtr","layouts","onLtr","customRtl","onRtl","onBottomLtr","onBottomRtl","HotspotAnchor","anchorInfo","hotspot","overrides","MakeshiftAnchor","adt$7","toAbsolute","points","sumAsAbsolute","absolute$1","getRootPoint","frame","frameOwner","compOwner","pointed","calcNewAnchor","optBox","rootPoint","topLeft","onRelative","onFixed","sumAsFixed","layoutsLtr","showAbove","layoutsRtl","NodeAnchor","nodeBox","adt$6","all$3","descendOnce","descendOnce$1","isSimRange","getAnchorSelection","modStart","modFinish","SelectionAnchor","selectionBox","optRect","getBounds$2","getBounds$1","zeroWidth$1","rawRect","selectionRect","labelPrefix$1","eastX","westX","northY$1","southY$1","southeast$1","southwest$1","northeast$1","northwest$1","allRtl","SubmenuAnchor","submenuInfo","AnchorSchema","submenu","makeshift","TransitionSchema","PositionSchema","PlacementSchema","positionWithinBounds","posState","placee","placementSpec","optWithinBounds","placeeDetail","anchorage","placeeState","oldVisibility","getFixedOrigin","getRelativeOrigin","anchoring","getBounds","newState","lastPlace","overrideOptions","simple","place","vis","PositionApis","getMode","pConfig","_pState","reset$1","Positioning","fireDetaching","fireAttaching","virtualAttach","virtualDetach","attach$1","attach","attachWith","insertion","doDetach","detach","parent$1","detachChildren","attachSystem","guiSystem","attachSystemWith","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","getAttachPoint","built","open$1","onOpen","close$1","onClose","isOpen$1","_sandbox","_sConfig","isOpen","cloak","_sState","cssKey","store","cloakVisibilityAttr","decloak","hasPosition","oldValue","restore","SandboxApis","openWhileCloaked","transaction","isPartOf","getState","ActiveSandbox","sandboxConfig","sandboxState","SandboxSchema","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$x","receivingChannel$1","rawSpec","isExtraPart","fireEventInstead","fe","schema$w","receivingChannel","doReposition","onLoad$5","repConfig","repState","onLoad","onUnload$2","onUnload","RepresentApis","setValue","getValue","ActiveRepresenting","resetOnDom","_se","memory$1","isNotSet","dataset","dataByValue","dataByText","itemString","currentDataByValue","currentDataByText","newDataByValue","newDataByText","meta","RepresentState","memory","manual","setValue$2","onSetValue","DatasetStore","getDataKey","getFallbackEntry","initialValue","ManualStore","_repState","MemoryStore","initVal","RepresentSchema","Representing","setValueFrom","forbidden","forbid","_v","dump","augment","SketchBehaviours","_placeholder","isSubstituted","compSpec","placeholders","uiType","newSpec","subPlaceholder","childSpecs","substituted","valuesThunk","preprocess","preprocessor","single$2","placeholder","fFactory","sketch","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","part","name$2","adtConstructor","partSchema","PartType","asCommon","combine","partSpec","partValidated","defaults","generate$3","np","g","doGenerateOne","pname","generateOne$1","schemas","names","substitutes","internals","externals","_partSpec","_partValidated","u","components$1","ps","ph","replacements","used","oneReplace","substituteAll","substitutePlaces","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","generate","generateOne","asRawOrDie","partSchemas","partUidsSchemas","baseS","composite$1","specWithUid","supplyUid","partUidsSchema","hasUid","singleSchema","compositeSchema","rawConfig","extraApis","configFields","single$1","composite","partFields","ComposeApis","getCurrent","composeConfig","_composeState","ComposeSchema","Composing","nativeDisabled","onLoad$1","disableConfig","disableState","disabled","disable","enable","hasNative","useNative","nativeDisable","nativeEnable","ariaDisable","ariaEnable","_disableState","disableClass","onDisabled","onEnabled","isDisabled","nativeIsDisabled","ariaIsDisabled","DisableApis","ActiveDisable","DisableSchema","Disabling","dehighlightAllExcept","hConfig","hState","skip","highlighted","highlightClass","skipComp","onDehighlight","highlight","isHighlighted","onHighlight","queryTarget","getFirst","_hState","itemClass","getDelta$2","dest","getCandidates","HighlightApis","dehighlightAll","dehighlight","highlightFirst","firstComp","highlightLast","lastComp","highlightAt","getByIndex","highlightBy","getHighlighted","getPrevious","getNext","HighlightSchema","Highlighting","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","cyclePrev","tryPrev","cycleNext","tryNext","inSet","and","preds","isShift$1","isControl","ctrlKey","isNotShift","classification","reportFocusShifting","prevFocus","dom$2","focusee","highlights","FocusInsideModes","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","transitions","onFocusHandler","focusInside","OnFocusMode","focusIn","keyboardEvents","isEnterOrSpace","OnEnterOrSpaceMode","tryGoInsideComponent","create$2","cyclicField","tabbingConfig","visibilitySelector","findCurrent","focusManager","_tabbingState","tabstops","visibles","firstTabstop","findInitial","cycle","tabstop","stopIndex","useTabstopAt","isTabstop","cyclic","goFromTabstop","goBackwards","goForwards","onEnter","onEscape","isFirstChild","AcyclicType","CyclicType","defaultExecute","doDefaultExecute","stopEventForFirefox","_component","schema$v","execute$4","executeConfig","ExecutionType","_executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","flatgrid$1","dimensions","numRows","numColumns","setGridSize","KeyingState","flatgrid","useH","use","west$1","moveLeft","moveRight","east$1","useV","north$1","south$1","move$1","isHidden$1","locateVisible","locate","withGrid","numCols","address","newIndex","cycleHorizontal$1","oldRow","oldColumn","colsInRow","newColumn","cycleVertical$1","newRow","newCol","schema$u","focusIn$3","gridConfig","_gridState","doMove$2","gridState","handleTab","captureTab","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$4","findCurrent$1","getKeyupRules$4","FlatgridType","getNewIndex","tryNewIndex","isDisabledButton","horizontalWithoutCycles","prevIndex","oldCandidate","onNewIndex","horizontal","_oldCandidate","schema$t","execute$2","flowConfig","focusIn$2","_state","getInitial","moveLeft$2","cycles","moveRight$2","doMove$1","flowState","executeOnMove","getKeyupRules$3","FlowType","_flowState","westMovers","allowHorizontal","allowVertical","eastMovers","toCell","matrix","cycleHorizontal","deltaCol","newColIndex","cycleVertical","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","schema$s","focusIn$1","matrixConfig","previousSelector","doMove","ifCycle","ifMove","inRow","cellsInRow","allRows","toMatrix","moveNorth","moveSouth","getKeydownRules$2","getKeyupRules$2","MatrixType","schema$r","menuConfig","getKeydownRules$1","menuState","moveOnTab","getKeyupRules$1","MenuType","schema$q","SpecialType","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","stopSpaceKeyup","acyclic","flow","execution","menu","special","Keying","keyConfig","keyState","sendFocusIn","isFlatgridState","withoutReuse","newSpecs","buildNewChildren","detachChildren$1","deleted","replaceChildren","withReuse","existingComps","specs","patchSpecChildren","deletedComp","virtualReplaceChildren","virtualReplace","replacee","replaceeIndex","childSpec","_replaceConfig","replaceAt","replaceConfig","replaceState","reuseDom","ReplaceApis","appendee","prependee","removee","foundChild","replaceBy","replaceePred","Replacing","eventHandlers","events$c","focus$2","focusConfig","onFocus","FocusApis","isFocused","ActiveFocus","tabindex","stopMousedown","FocusSchema","Focusing","toggleConfig","toggleState","toggleClass","updateClass","ariaInfo","aria","updateAriaState","onToggled","toggle$2","ToggleApis","ActiveToggle","executor","toggleOnExecute","updateExpanded","status","ToggleSchema","pressed","syncWithExpanded","checked","expanded","Toggling","pointerEvents","onClick","events$9","optAction","hoverEvent","focusEvent","toggledEvent","onHover","onFocus$1","hover","focus$1","toggled","getItemRole","role","toggling","exclusive","schema$p","hasSubmenu","itemBehaviours","tConfig","isOption","getTogglingSpec","ignoreFocus","schema$o","owner$2","parts$h","schema$n","focusWidget","widget","onHorizontalArrow","autofocus","setSource","_widget","widgetBehaviours","itemSchema$2","separator","parts$g","itemInfo","builder","fakeFocus","markers","schema$m","movementInfo","rowSelector","Menu","_spec","_externals","menuBehaviours","selectedItem","checkedRadioItems","ele","deselectOtherRadioItems","showMenuRole","trace","byItem","byMenu","triggerItem","triggerMenu","extractPreparedMenu","prep","LayeredState","expansions","menus","directory","getPreparedMenu","menuValue","lookupMenu","lookupItem","itemValue","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","sPaths","menuItems","menuPaths","_triggerItem","generate$2","expand","otherMenus","menuValues","getPrimary","getMenus","isClear","getTriggeringPath","getItemByValue","extraPath","revPath","menuIndex","getTriggeringItem","triggeringItemValue","triggeredItem","triggeredMenu","triggeringItem","triggeringPath","getTriggerData","onMenuItemHighlightedEvent","onMenuItemDehighlightedEvent","HighlightOnOpen","collapseItem$1","tieredMenu","HighlightMenuAndItem","collapseMenu","tmenu","highlightPrimary","repositionMenus","_rawUiSpec","submenuParentItems","layeredState","getItemValue","toDirectory","_container","_menuName","setActiveMenu","setActiveMenuAndItem","mv","closeOthers","others","backgroundMenu","stayInDom","updateAriaExpansions","parentItems","itemComp","getSubmenuParents","updateMenuPath","latestMenuName","menuPrep","activeMenu","ExpandHighlightDecision","expandRight","HighlightSubmenu","activeMenuPrep","nbMenu","buildIfRequired","onOpenSubmenu","collapseLeft","onCollapseMenu","keyOnItem","getSource","onExecute","componentMap","primaryName","makeSketch","menuComp","buildMenus","onOpenMenu","highlightOnOpen","HighlightJustMenu","tmenuComp","se","onHighlightItem","onDehighlightItem","navigateOnHover","updateView","HighlightParent","getActiveItem","currentItem","maybeActivePrimary","allMenus","preparedMenus","extractMenuFromContainer","primaryMenu","onRepositionMenu","tmenuBehaviours","_keyInfo","selectedMenu","tieredData","singleData","collapseItem","InlineView","showWithinBounds","thing","lazySink","showMenuWithinBounds","menuSpec","menuSandbox","getSubmenuLayouts","triggeringPaths","isFirstTierSubmenu","submenuTriggers","st","submenuLayouts","makeMenu","showAt","showMenuAt","getContent","inlineBehaviours","getRelated","isPartOfRelated","fireDismissalEventInstead","fireRepositionEventInstead","ToolbarMode$1","ToolbarLocation$1","global$9","global$8","ToolbarMode","ToolbarLocation","option$2","wrapOptional","register$f","stringOrFalseProcessor","stringOrNumberProcessor","auto","getHeightOption","getWidthOption","getMinWidthOption","getMinHeightOption","getMaxWidthOption","getMaxHeightOption","getUserStyleFormats","shouldMergeStyleFormats","shouldAutoHideStyleFormats","getContentLanguages","getRemovedMenuItems","getToolbarMode","getToolbarGroups","getToolbarLocation","fixedContainerSelector","fixedToolbarContainerTarget","isToolbarPersist","getStickyToolbarOffset","getMenubar","getToolbar","getFilePickerCallback","getFilePickerValidatorHandler","getFontSizeInputDefaultUnit","getFilePickerTypes","useTypeaheadUrls","getAnchorTop","getAnchorBottom","isDraggableModal$1","useStatusBar","useElementPath","useBranding","getResize","getPasteAsText","getSidebarShow","promotionEnabled","useHelpAccessibility","getDefaultFontStack","isSkinDisabled","isMenubarEnabled","getSkinUrl","skinUrl","documentBaseURI","skin","baseURL","getSkinUrlOption","getLineHeightFormats","isToolbarEnabled","toolbar","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsOption","toolbars","toolbarArray","isToolbarLocationBottom","fixedContainerTarget","useFixedContainer","getUiContainer","isDistractionFree","isStickyToolbar","isSplitUiMode","Options","isDraggableModal","nonScrollingOverflows","isScrollingOverflowValue","isScroller","overflowX","detectWhenSplitUiMode","popupSinkElem","ancestorsScrollers","scrollers","getBoundsFrom","scrollableBoxes","constraints","constrainByMany","Button","lookupAttr","buttonBehaviours","getAttrs","record","isSketchSpec","anyInSystem","asSpec","ActiveTabstopping","tabConfig","tabAttr","TabstopSchema","Tabstopping","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","ImmediateHideTooltipEvent","ImmediateShowTooltipEvent","hideAllExclusive","_tConfig","_tState","TooltippingApis","immediateOpenClose","isEnabled","tState","setComponents","getTooltip","enabled","ActiveTooltipping","tooltipConfig","clearTooltip","clearTimer","isShowing","popup","tooltipDom","tooltipComponents","setTooltip","resetTimer","delayForShow","delayForHide","TooltippingSchema","TooltippingState","setToEnabled","Tooltipping","setPrototypeOf","isFrozen","getOwnPropertyDescriptor","seal","construct","Reflect","fun","thisValue","Func","arrayForEach","unapply","arrayPop","pop","arrayPush","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","_len2","_key2","thisArg","_len","_key","addToSet","transformCaseFunc","lcElement","cleanArray","object","newObject","lookupGetter","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text$1","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","getGlobal","purify","createDOMPurify","DOMPurify","removed","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Element","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","getElementsByTagName","importNode","hooks","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","ATTR_NAME","policyName","scriptUrl","_createTrustedTypesPolicy","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_removeAttribute","getAttributeNode","_initDocument","leadingWhitespace","dirtyPayload","parseFromString","createDocument","_createNodeIterator","SHOW_COMMENT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","namespaceURI","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","childClone","__removalCount","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","initValue","forceKeepAttr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","sanitize","importedNode","returnNode","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","sanitizeHtmlString","rtlTransform","defaultIconName","defaultIcon","getIconName","rtlName","addToEnd","ensureTrailing","lookupIcon","iconProvider","addFocusableBehaviour","renderIcon$3","iconName","fallbackIcon","rtlIconClasses","needsRtlTransform","iconHtml","render$3","notificationIconMap","Notification","notificationTextId","memBannerText","backstageProvider","renderPercentBar","renderPercentText","memBannerProgress","progress","updateProgress","updateText","banner","iconChoices","memButton","tooltips","tooltipText","notificationIconSpec","iconNames","renderFirst","NotificationManagerImpl","uiMothership","notificationRegion","sharedBackstage","backstage","getBoundsContainer","queryCommandValue","contentArea","clampComponentsToBounds","closeCallback","isEditorOrUIFocused","region","editorOrUIFocused","notification","removeNotificationAndReposition","editorOrUiFocused","handleEmptyRegion","handleRegionWithChildren","manageRegionVisibility","progressBar","providers","notificationSpec","notificationWrapper","getSink","header","isPositionedAtTop","anchorOverrides","anchors","timeout","setEditorTimeout","nuText","getEl","getArgs","ItemResponse","ItemResponse$1","navClass","selectableClass","colorClass","presetClasses","normal","color","tickedClass","iconClass","textClass","caretClass","activeClass","containerClass","containerRowClass","classForPreset","presets","hasIcons","menuClasses","dom$1","schema$l","focusBehaviours","selectOnFocus","setSelectionRange","inputBehaviours","inputAttributes","inputStyles","inputClasses","Input","refetchTriggerEvent","redirectMenuItemInteractionEvent","menuSearcherClass","findWithinSandbox","sandboxComp","inputElem","findWithinMenu","saveState","inputComp","fetchPattern","selectionEnd","renderMenuSearcher","handleByBrowser","handleByHighlightedItem","eventData","interactionEvent","eventType","customSearcherEventsName","i18n","searchResultsClass","augmentWithAria","chunk","rowDom","chunks","preprocessCollection","isSeparator","allSplits","currentSplit","insertItemsPlaceholder","initItems","onItem","rawItems","enrichedItems","_item","forCollection","_hasIcons","menuHasIcons","handleError","createHorizontalPartialMenuWithAlloyItems","_columns","_menuLayout","createPartialMenuWithAlloyItems","menuLayout","menuType","forSwatch","searchMode","ariaControlsSearchResults","forCollectionWithSearchField","forCollectionWithSearchResults","forToolbar","fetch$1","getSubmenuItems","onItemAction","optionalName","optionalText","optionalRole","optionalIcon","optionalTooltip","optionalLabel","optionalShortcut","optionalSelect","borderless","defaultedColumns","defaultedMeta","defaultedOnAction","defaultedType","generatedName","namePrefix","separatorMenuItemSchema","autocompleterItemSchema","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextformbutton","contextformtogglebutton","contextFormSchema","contextToolbarSchema","cardImageFields","cardImageSchema","cardTextFields","cardTextSchema","itemSchema$1","cardimage","cardtext","cardcontainer","cardContainerSchema","commonMenuItemFields","cardMenuItemSchema","choiceMenuItemSchema","baseFields","insertTableFields","colorSwatchFields","fancyMenuItemSchema","inserttable","colorswatch","menuItemSchema","nestedMenuItemSchema","toggleMenuItemSchema","detectSize","selectorClass","columnLength","thisTop","cTop","ceil","SimpleBehaviours","namedEvents","DisablingConfigs","runWithApi","getApi","onControlAttached","editorOffCell","onDestroy","onControlDetached","UiStateChannel","broadcastEvents","uiRefs","mainUi","outerContainer","motherships","mothership","uiMotherships","setupEventsForUi","toggleOnReceive","getContext","buttonStateData","contextType","shouldDisable","contextShouldDisable","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","providersBackstage","optComponents","checkUiComponentContext","buildData","convertText","isMac","alt","ctrl","shift","shortcut","updated","renderIcon$2","renderText","renderHtml","renderStyledText","renderShortcut","renderCheckmark","renderItemDomStructure","ariaLabel","domTitle","renderItemStructure","renderIcons","providerBackstage","iconSvg","iconContent","al","common","baseDom","getDom","renderColorStructure","iconSpec","leftIcon","checkmark","checkMark","textRender","htmlContent","shortcutContent","renderNormalItemStructure","tooltipBehaviour","tooltipWorker","_tooltip","replaceText","matchText","encoded","encode","encodeText","escapedMatchRegex","escape","render$2","directionClass","alignClass","align","valign","getValignClass","renderContainer","renderImage","shouldHighlight","cardText","highlightOn","parts$f","hexColour","normalizeHex","shorthandRegex","longformRegex","isHexString","hex","toHex","fromRgba","rgbaColour","red","green","blue","round$1","rgbRegex","rgbaRegex","alpha","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","longForm","hexString","getLongForm","splitForm","extractValues","fromStringValues","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","fireResizeContent","fireTextColorChange","fireResolveName","composeUnbinders","onSetupEditableToggle","onSetupEvent","onSetupStateToggle","unbindEditableToogle","unbindFormatToggle","boundFormatChangeCallback","binding","formatChanged","initialized","once","onSetupFormatToggle","handleEvent","onActionToggleFormat$1","rawItem","onActionExecCommand","cacheStorage","getCacheForId","storageId","currentData","getItem","legacyDefault","setItem","storage","storageString","localstorage","cache","splice","unshift","ColorCache","addColor","hsvColour","fromRgb","minRGB","maxRGB","hsvToHex","foregroundId","backgroundId","mapColorsRaw","colorMap","colors","option$1","fallbackColor","getColors$2","calcCols","sqrt","defaultCols","calculatedCols","getColorCols$1","hasCustomColors$1","getDefaultForegroundColor","getDefaultBackgroundColor","getCurrentColor","cssRgbValue","getAdditionalColors","hasCustom","applyColor","onChoice","colorPickerDialog","dialog","colorOpt","getColors$1","getCurrentColors","getFetch$1","callback","setIconColor","splitButtonApi","newColor","setIconFill","buttonApi","select$1","optCurrentHex","getToolTipText","lastColor","tooltipPrefix","colorText","registerTextColorButton","addSplitButton","_splitButtonApi","registerTextColorMenuItem","addNestedMenuItem","fancytype","initData","storageKey","colorpicker","_api","alert","onCancel","createPartialChoiceMenu","onItemValueHandler","alloyItems","createChoiceItems","itemPresets","useText","optTooltipping","renderChoiceItem","deriveMenuMovement","menuMarkers","cellOverEvent","cellExecuteEvent","makeComponents","cellRow","makeLabelText","fancyMenuItems","getCellLabel","makeAnnouncementText","makeCells","emptyLabelText","memLabel","selectedRow","selectedColumn","selectCells","useCustomColors","allowCustomColors","colorinput","hasCustomColors","getColors","getColorItems","getColorCols","widgetSpec","separator$3","CouplingApis","getCoupled","coupleConfig","coupleState","getOrCreate","getExistingCoupled","getExisting","CouplingSchema","CouplingState","coupled","lookupCoupled","coupledName","Coupling","nu$3","baseFn","callbacks","nCallback","isReady","LazyValue","pure","errorReporter","make$5","aFutureB","toPromise","anonBind","futureB","toLazy","toCached","Future","partType$1","getAnchor","getHotspot","getAnchorOverrides","mapFetch","onOpenSync","processed","futureData","fetcher","getLazySink","tdata","listRole","openF","_onOpenSync","_highlightOnOpen","togglePopup","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox$1","ariaControls","sandboxClasses","sandboxBehaviours","matchWidth","useMinWidth","buttonWidth","set$7","FocusEvent","sandboxFields","schema$k","parts$e","Dropdown","switchToMenu","togglePopup$1","dropdownComp","HighlightNone","refetch","triggerExecute","dropdownBehaviours","updateAriaOnHighlight","activeMenuComp","setActiveDescendant","resultsElem","controlledId","updateAriaOnDehighlight","getSearchPattern","FocusMode","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createNestedMenuItem","downwardsCaret","renderSubmenuCaret","underlinePath","translatedTooltip","nested","createToggleMenuItem","toggle$1","createSeparatorMenuItem","createFancyMenuItem","fancy","createAutocompleteItems","createCardMenuItem","card","createAutocompleterItem","tooltipString","autocomplete","createPartialMenu","itemHasIcon","identifyMenuLayout","createTieredDataFrom","partialMenu","rangeToSimRange","Autocompleter","autocompleterId","processingAction","activeState","activeRange","autocompleter","cancelIfNecessary","isMenuOpen","hideIfNecessary","editorBody","ariaOwnsAttr","getMenu","updateDisplay","lookupData","combinedItems","choices","itemMeta","autocompleterApi","reload","fetchOptions","BUBBLE_TO_SANDBOX","getCombinedItems","ld","focusMode","ContentFocus","createInlineMenuFrom","display","cloneAutocompleterToEditorDoc","newElm","clip","redirectKeyToItem","stopImmediatePropagation","isProcessingAction","queryCommandState","AutocompleterEditorEvents","DelayedFunction","ref","schedule","getTouch","touches","setup$d","rawSettings","stopBackspace","tapEvent","startData","longpressFired","longpress$1","touch","distX","distY","isFarEnough","fireIfReady","monitor","simpleEvents","tapStopped","pasteTimeout","onPaste","onKeydown","isDangerous","onFocusIn","focusoutTimeout","onFocusOut","derive","rawTarget","stopped","resume","complete","doTriggerHandler","isStopped","isCut","fromSource","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerOnUntilStopped","Registry","registerId","extraArgs","curryArgs","unregisterId","handlersById","_eventName","filterByType","broadcastHandler","isAboveRoot","findHandler","EventRegistry","unregister","tagId","readOrTag","conflict","failOnDuplicate","getById","Container","domWithoutAttributes","containerBehaviours","takeover","domEvents","triggerUntilStopped","_alloyId","triggerHandler","broadcast$1","broadcastData","receivers","receiver","listeners","fromExternal","schema$j","parts$d","excludeFactory","exclude$1","FormField","fieldBehaviours","descriptorId","getField","getLabel","renderFormFieldWith","pLabel","pField","extraClasses","extraBehaviours","renderFormFieldSpecWith","renderFormFieldDomWith","renderLabel$3","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderCollection","runOnItem","collectionEvents","currentActive","iterCollectionItems","applyAttributes","childElm","getComponents","disabledClass","htmlLines","itemText","getIcon","mapItemName","encodeAllRaw","ariaElements","isAriaElement","markValid","invalidConfig","invalidClass","notify","notifyInfo","validHtml","onValid","markInvalid","invalidState","onInvalid","_invalidState","validatorInfo","onValidate","InvalidateApis","isInvalid","ActiveInvalidate","validateOnLoad","InvalidateSchema","Invalidating","validation","Unselecting","unselectable","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","labelPart","edgePart","edgeActions","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","isShift","SliderParts","getValueFromEvent","spectrum","sliderChangeEvent","getEventSource","evt","isTouchEvent$2","touchEvent","mouseEvent","minX","minY","min1X","min1Y","max1X","max1Y","xRange","yRange","halfX","halfY","useMultiplier","stepSize","speedMultiplier","snap","snapToGrid","snapStart","rounded","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","currentValue","xyValue","fireSliderChange$3","reduceBy","increaseBy","capValue","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOf","newValue","extraValue","rawSteps","maxSteps","snapValueOf","findOffsetOfValue$2","maxOffset","centerMinEdge","centerMaxEdge","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$2","findValueOfOffset$1","handleMovement$2","xValue","moveBy$2","findPositionOfValue$1","slider","minEdge","maxEdge","minOffset","findOffsetOfValue$1","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","HorizontalModel","setToMin","setToMax","findValueOfOffset","findPositionOfValue","setPositionFromValue","thumb","getSpectrum","thumbRadius","fireSliderChange$1","handleMovement$1","yValue","findOffsetOfValue","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange","sliderValue","handleMovement","isVerticalMovement","TwoDModel","mX","mY","xPos","yPos","thumbXRadius","thumbYRadius","Slider","getThumb","modelDetail","choose","wasDown","onChoose","onDragStart","onDragEnd","sliderBehaviours","changeValue","getInitialValue","onInit","resetToMin","resetToMax","fieldsUpdate","sliderUpdate","paletteUpdate","owner$1","schema$i","getPartName$1","make$4","formBehaviours","form","resPs","resPThunk","pName","Form","fSpec","fieldParts","validInput","invalidInput","validatingInput","translatePrefix","uninitiatedTooltipApi","immediatelyShow","immediatelyHide","rgbFormFactory","getClass","onValidHexx","onInvalidHexx","tooltipGetConfig","makeIcon","setTooltipEnabled","tooltipApi","invalidation","renderTextField","description","helptext","errorId","memInvalidIcon","comps","concats","copyRgbToForm","rgb","memPreview","updatePreview","preview","rgbFormSketcher","setValueRgb","onInvalidInput","onValidInput","isHexInputEvent","onValidHex","hexField","copyRgbToHex","onValidRgb","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","copyHexToRgb","makeFactory","colourPickerSketcher","rgbForm","onInvalidHex","sbPalette","spectrumPart","setColour","canvas","fillStyle","fillRect","grdWhite","createLinearGradient","addColorStop","grdBlack","_thumb","_slider","setHue","_apis","setPaletteHue","setThumb","setPaletteThumb","paletteFactory","paletteRgba","paletteHue","memSlider","sliderFactory","memPalette","memRgb","updatePalette","_hex","palette","updateFields","updateSlider","hueDegreesToSlider","updatePaletteThumb","runUpdates","updates","updateState","hexToHsv","onFieldsUpdate","oldHue","newHsv","newHex","onPaletteUpdate","hueSliderToDegrees","oldRgb","oldHsv","onSliderUpdate","ComposingConfigs","processors","memento","mem","rawProcessors","rawValue","postprocess","withComp","optInitialValue","withElement","english","isOldCustomEditor","browseFilesEvent","renderDropZone","memInput","transferEvent","dataTransfer","allowedImageFileTypes","explode","file","filterByExtension","rate","beforeObject","afterObject","craftWithClasses","outline","craft","containerClasses","triggerTab","targetComp","isPseudoStop","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","dialogFocusShiftedChannel","isSafariOrFirefox","isElementScrollAtBottom","scrollHeight","scrollToY","writeValue","iframeElement","fallbackFn","iframe","lastScrollTop","isScrollAtBottom","getScrollingElement","scrollAfterWrite","writeValueThrottler","newArgs","tempArgs","adaptable","internalToolbarButtonExecute","commonButtonDisplayEvent","toolbarButtonEventOrder","forceInitialSize","renderIcon$1","iconsProvider","renderIconFromPack$1","renderReplaceableIconFromPack","renderLabel$1","updateMenuText","updateMenuIcon","renderCommonDropdown","btnName","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","ariaLabelAttribute","fixWidthBehaviourName","customEventsName","memDropdown","searchable","searcherComp","focusSearchField","displayText","displayIcon","originalSandboxComp","optSearcherState","newSandboxComp","searcherState","restoreState","handleRefetchTrigger","getActiveMenuItemFrom","activeItem","retargetAndDispatchWith","handleRedirectToMenuItem","itemCompCausingCollapse","nowActiveMenuComp","isSeparator$2","separator$2","realItems","isMenuItemReference","unwrapReferences","isExpandingMenuItem","itemWithValue","generateValueIfRequired","newData","submenuItems","getFromExpandingItem","mainMenuSearchMode","searchSettings","getSearchModeForField","mainMenu","submenuSearchMode","getSearchModeForResults","submenus","isSingleListItem","dataAttribute","fetchItems","selectedValue","hasNestedItems","findItemByValue","HtmlSelect","initialValues","selectClasses","selectAttributes","selectBehaviours","firstOption","selectedIndex","schema$h","coupledPart","selfName","otherName","onLockedChange","parts$c","lockClass","FormCoupledInputs","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","parseSize","sizeText","convertUnit","inInch","supported","noSizeConversion","_input","baseInputBehaviours","multiline","validatingBehaviours","vl","inputmode","classname","pTextField","extraClasses2","flex","maximized","getAnimationRoot","slideConfig","getDimensionProperty","dimension","disableTransitions","shrinkingClass","growingClass","setShrunk","openClass","closedClass","setGrown","doImmediateShrink","slideState","_calculatedSize","setCollapsed","onStartShrink","onShrunk","doStartShrink","calculatedSize","doStartSmartShrink","doStartGrow","wasShrinking","beforeSize","fullSize","setExpanded","onStartGrow","isGrowing","_slideState","isShrinking","SlidingApis","isExpanded","grow","shrink","immediateShrink","hasGrown","hasShrunk","isTransitioning","toggleGrow","immediateGrow","onGrown","ActiveSliding","SlidingSchema","Sliding","getMenuButtonApi","setIcon","renderMenuButton","tabstopping","fetchContext","getFetch","getButton","getMenuItemAction","orig","getMenuItemSetup","renderLabel","renderCustomStateIcon","customStateIcon","renderIcon","customStateIconTooltip","leafLabelEventsId","renderLeafLabel","onLeafAction","treeId","selectedId","internalMenuButton","btn","isLeftArrowKey","code","isRightArrowKey","dirComp","dirLabelElement","extraAttributes","directoryLabelEventsId","renderDirectoryLabel","noChildren","toggleExpandChildren","directoryEle","directoryComp","willExpand","parentDirElement","parentDirLabelElement","renderDirectoryChildren","expandedIds","renderDirectory","labelTabstopping","directoryEventsId","expandedIdsCell","childrenVisible","includes","_cmp","childrenComp","treeEventsId","ActiveStreaming","streamConfig","streamState","stream","streams","cancelEvent","_config","setTimer","StreamingState","StreamingSchema","streamInfo","sInfo","throttler","onStream","stopEvent","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","itemExecute","schema$g","parts$b","_tmenu","previewing","lazyTypeaheadComp","selectsOver","inputDisplay","getDisplayText","setSelectionToEnd","attemptSelectOver","selectOverTextInInput","populateFromBrowse","_menu","typeahead","Typeahead","navigateList","highlighter","focusBehaviours$1","getActiveMenu","typeaheadCustomEvents","responseTime","previousValue","pv","sandboxIsOpen","typeaheadComp","_typeaheadComp","onItemExecute","dismissOnBlur","typeaheadBehaviours","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","FutureResult","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","calculateClassesFromButtonType","buttonType","renderButtonSpec","translatedText","optTooltip","renderButton$1","buttonSpec","renderFooterButton","isMenuFooterButtonSpec","menuButtonSpec","fixedSpec","isNormalFooterButtonSpec","isToggleButtonSpec","optMemIcon","memIcon","tooltipAttributes","buttonTypeClasses","showIconAndText","translatedTextComponed","iconButtonSpec","newIcon","renderToggleButton","separator$1","toMenuItem","staticMenuItem","filteredTargets","toMenuItems","filterLinkTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","filterByQuery","lowerCaseTerm","make$2","getCompByName","factories","interpreter","renderBar","collection","alertbanner","iconTooltip","renderAlertBanner","renderInput","textarea","renderTextarea","backstageShared","baseClass","centerClass","endClass","for","labelComp","renderLabel$2","opaqueClass","transparent","containerBorderedClass","srcdoc","sandboxed","sourcing","cachedValue","_frameComponent","frameComponent","setSrcdocValue","getDynamicSource","streamContent","renderIFrame","iframeSpec","renderDialogButton","checkbox","toggleCheckboxHandler","memIcons","renderCheckbox","colorInputBackstage","inputValue","emitSwatchChange","colorBit","memColorButton","renderPanelButton","colorPicker","valueOpt","colorButton","_field","renderColorInput","colourPickerFactory","translate$1","errId","memPicker","picker","valOpt","renderColorPicker","dropzone","renderGrid","listbox","initialItem","sketchSpec","listBoxWrap","renderListBox","selectbox","translatedOptions","chevron","selectWrap","renderSelectBox","sizeinput","converter","ratioEvent","translatedLabel","pLock","formGroup","getFieldPart","isField1","widthField","heightField","_lock","unitDec","numText","formatSize","optCurrent","optOther","value1","value2","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","ratioSizeConversion","makeRatioConverter","renderSizeInput","renderSlider","urlinput","urlBackstage","updateHistory","urlEntry","addToHistory","filetype","typeaheadSpec","fileType","urlInputValue","getLinkInformation","history","historyTargets","getHistory","getItems","memUrlBox","_newValue","getValidationHandler","invalidComp","completer","trimmedValue","_entry","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","memUrlPickerButton","picker_text","componentData","urlData","fieldname","chosenData","renderUrlInput","customeditor","editorApi","memReplaced","focusBehaviour","onFocusFn","ta","scriptId","ea","cvalue","ed","htmlpanel","stretched","renderHtmlPanel","imagepreview","cachedData","memImage","memContainer","fakeValidatedData","zoom","cachedWidth","cachedHeight","translatedData","z","applyFramePositioning","panel","panelW","panelH","zoomToFit","imageWidth","imageHeight","calculateImagePosition","imageComponent","img","image","loaded","naturalWidth","naturalHeight","renderImagePreview","renderTd","renderTable","tree","onToggleExpand","defaultExpandedIds","selectedIdCell","defaultSelectedId","renderTree","renderPanel","noFormParts","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","westEdgeX","middleX","eastEdgeX","northY","southY","centreY","lookupPreserveLayout","preserve","lookupFlippedLayout","flip","bubbleAlignments$2","valignCentre","alignCentre","alignLeft","alignRight","getInlineDialogAnchor","contentAreaElement","lazyAnchorbar","lazyUseEditableAreaAnchor","getInlineBottomDialogAnchor","lazyBottomAnchorBar","getBannerAnchor","getCursorAnchor","bodyElement","selectionTableCellRange","getNodeAnchor$1","getAnchors","isToolbarTop","useFixedToolbarContainer","inlineDialog","inlineBottomDialog","isNestedFormat","isFormatReference","defaultStyleFormats","mapFormats","userFormats","fmt","customFormats","isBlockFormat","isSelectorFormat","formatNameWithPrefix","getStyleFormats","registeredUserFormats","registerFormats","registerCustomFormats","processBasic","isSelectedFor","getPreviewFor","getStylePreview","register$b","doEnrich","newItems","getStyleItems","enrichMenu","enrichSupported","isSeparator$1","newItem","enrichCustom","TooltipsBackstage","numActiveTooltips","tooltipDelay","hasContentEditableState","isContentEditableTrue","getElementText","isValidAnchor","isAnchor","isHeader","isChildOfContentEditableTrue","isValidHeader","headerTarget","headerId","getOrGenerateId","getLevel","anchorTarget","anchorId","anchorText","hasTitle","LinkTargets","getTargetElements","getHeaderTargets","getAnchorTargets","STORAGE_KEY","isHttpUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","SyntaxError","itemsWithoutUrl","setAllHistory","isTruthy","makeMap","getPicker","getTextSetting","UrlInputBackstage","pickerTypes","optFileTypes","_picker","types","getPickerTypes","getPickerSetting","parts$a","partType","schema$f","itemsPart","parts$9","CustomList","_external","listBehaviours","setItems","itemComps","numListsRequired","numListsToAdd","itemsToAdd","makeItem","itemsToRemove","builtLists","setupItem","schema$e","parts$8","Toolbar","toolbarBehaviours","setGroups","setup$a","isDocked$1","getBehaviours$1","StaticHeader","getBehaviours","toolbarHeightChange","visibility","editorStickyOnClass","editorStickyOffClass","isDockedMode","updateIframeContentFlow","parentElem","parentWidth","getOccupiedHeight","updateSinkVisibility","sinkElem","updateEditorClasses","editorContainer","focusedElm","runOnSinkElement","onDockingSwitch","additionalBehaviours","headerHeight","boxHeight","topBound","constrainedBounds","constrainedBoundsY","headerElem","focusedElem","ownerDoc","activeElm","restoreFocus","rootElm","findFocusedElem","boundsWithoutOffset","getDockingMode","StickyHeader","lazyHeader","containerHeader","viewHeight","scrollPos","markerElement","markerPos","markerHeight","markerTop","markerBottom","editorHeaderPos","editorHeaderHeight","editorHeaderTop","editorHeaderBottom","editorHeaderDockedAtTop","editorHeaderDockedAtBottom","scrollFromBehindHeader","groupToolbarButtonSchema","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","SilverMenubar","setMenus","newMenus","internal","activeButton","hoveredButton","activeComp","hoveredComp","schema$d","getPartName","make$1","getSlotNames","onSlot","def","slot","doShowing","hideSlot","hideSlots","onSlots","showSlot","getSlot","hideAllSlots","slotBehaviours","SlotContainer","sSpec","sidebarSchema","makePanels","panelConfigs","bridged","createSidebar","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","updateSidebarRoleOnToggle","sidebar","sidebarState","whichSidebar","fixSize","autoSize","BlockingApis","getBusySpec","blockerBehaviours","blockSpec","isBlocked","onBlock","blockWith","onUnblock","blockingConfig","blockingState","BlockingSchema","Blocking","focusBusyComponent","throbber","setup$7","lazyThrobber","throbberState","stealFocus","isFocusEvent","editorManager","tabIndexAttr","dataTabIndexAttr","tabIndex","toggleEditorTabIndex","_root","_behaviours","getBusySpec$1","throbberFocus","busyComp","toggleThrobber","fireAfterProgressState","within","withinWidth","apportion","parray","toUnit","setGroups$1","storedGroups","bGroups","refresh$2","setOverflow","builtGroups","overflowGroup","focusedComp","overflows","overflower","divide","tryFit","fitLast","fitAll","schema$c","schema$b","parts$7","expandable","setMax","schema$a","parts$6","toggledClass","shouldSkipFocus","toolbarSandbox","bounder","FloatingToolbarButton","skipFocus","makeSandbox","toggleWithoutFocusing","schema$9","parts$5","ToolbarGroup","tgroupBehaviours","itemSelector","buildGroups","refresh$1","memFloatingToolbarButton","overflowGroups","floatingToolbarButton","SplitFloatingToolbar","getOverflowBounds","overflowToggledClass","splitToolbarBehaviours","getOverflow","schema$8","parts$4","onClosed","onOpened","toggleToolbar","oveflowButton","overf","SplitSlidingToolbar","toolbarToggleEvent","_button","doSetGroups","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarBehaviours","toolbarSpec","modeName","onAttached","initGroups","renderMoreToolbarCommon","cyclicKeying","renderFloatingMoreToolbar","baseSpec","moreDrawerData","headerBounds","docElem","docBounds","overflowXOffset","renderSlidingMoreToolbar","renderToolbar","scrolling","baseButtonFields","schemaWithoutGroupButton","togglebutton","groupFields","viewButtonSchema","viewSchema","renderViewButton","isToggleButton","optTranslatedText","optTranslatedTextComponed","ariaLabelAttributes","optIconSpec","hasIconAndText","renderButton","deviceDetection","View","hasGroups","endButtons","btnspec","renderButtonsGroup","getPane","getOnShow","_comp","viewConfig","getOnHide","makeViews","viewConfigs","internalViewConfig","pane","makeSlotContainer","getCurrentName","runOnPaneWithInstanceApi","onCallback","ViewWrapper","setViews","whichView","toggleView","showMainView","hideMainView","optCurrentSlotName","isTogglingCurrentView","hideContainer","showContainer","runOnShow","prevName","runOnHide","views","editorCont","partMenubar","partMultipleToolbar","_mToolbar","tc","partToolbar","renderer","sliding","floating","toolbarFactory","onToolbarToggled","lazyToolbar","lazyMoreButton","partHeader","sticky","partPromotion","partSocket","partSidebar","partThrobber","partViewWrapper","partEditorContainer","OuterContainer","toolbarDrawerOpenState","toggleStatusbar","statusBar","getSocket","setSidebar","showSidebar","configKey","toggleSidebar","getHeader","setToolbar","renderedGroups","setToolbars","mToolbar","renderedToolbars","refreshToolbar","toggleToolbarDrawer","toggleToolbarDrawerWithoutFocusing","isToolbarDrawerToggled","getThrobber","focusToolbar","setMenubar","menubar","focusMenubar","defaultMenus","edit","tools","help","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","isDefaultMenu","menuData","removedMenuItems","itemName","removedMenuItem","loadStylesheet","stylesheetUrl","styleSheetLoader","unload","loadRawCss","unloadRawCss","loadUiSkins","async","skinUiCss","loadShadowDomUiSkins","shadowDomSkinCss","loadSkin","unbundled","skinResourceIdentifier","contentCSS","skinContentCss","loadUrlSkin","_skinLoaded","fireSkinLoaded$1","fireSkinLoaded","fireSkinLoadError$1","fireSkinLoadError","makeTooltipText","labelWithPlaceholder","generateSelectItems","generateItem","si","validateItems","preItems","getCurrentValue","shouldHide","createMenuItems","createSelectButton","textUpdateEventName","getComponent","Delimiter","buildBasicSettingsDataset","settingName","delimiter","rawFormats","SemiColon","getTooltipPlaceholder$4","fallbackAlignment","alignMenuItems","getSpec$4","_format","alignment","fireAlignTextUpdate","canApply","findNearest","getStyles","getTooltipPlaceholder$3","fallbackFormat","getSpec$3","parseStyle","getCssText","fireBlocksTextUpdate","getTooltipPlaceholder$2","systemFont","systemStackFonts","splitFonts","fontFamily","fonts","font","matchesStack","getSpec$2","getMatchingValue","getFirstFont","userStack","matchOpt","isSystemFontStack","fireFontFamilyTextUpdate","Keys","tab","enter","backspace","delete","space","home","pageUp","pageDown","getTooltipPlaceholder$1","fallbackFontSize","legacyFontSizes","keywordFontSizes","toPt","fontSize","precision","factor","toLegacy","getSpec$1","pt","legacy","Space","fireFontSizeTextUpdate","getTooltipPlaceholder","getSpec","getFormatItems","flattenedItems","tooltipLabel","fireStylesTextUpdate","schema$7","arrowPart","arrow","buttonPart","splitDropdown","parts$3","SplitDropdown","executeOnButton","buttonEvents","splitDropdownBehaviours","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","renderCommonStructure","optIcon","optText","renderCommonToolbarButton","specialisation","_d","itemApi","toolbarButtonBehaviours","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButtonWith","fetchChoices","defaultToolbar","renderFromBridge","bridgeBuilder","renderToolbarButton","renderToolbarToggleButton","menubutton","splitbutton","buttonComp","_c","renderSplitButton","grouptoolbarbutton","getAll","TopToBottom","identifyButtons","renderFloatingToolbarButton","allowToolbarGroups","bespokeButtons","fontsize","fontsizeinput","currentComp","updateInputValue","customEvents","fromInput","focusBack","alloyComp","getNewValue","lenghtDelta","oldStart","oldEnd","decrease","increase","goToParent","focusInput","makeStepperButton","editorOffCellStepButton","altExecuting","memMinus","memPlus","buttonNode","wrapperComp","createBespokeNumberInput","skip_focus","parsedText","defaultUnit","em","cm","in","rem","getConfigFromUnit","isValidValue","fireFontSizeInputTextUpdate","getNumberInputSpec","fontfamily","blocks","toolbarConfig","prefixes","toolbarGroups","filteredItemGroups","subItem","removeUnusedDefaults","strToolbar","groupsStrings","convertStringToolbar","isToolbarGroupSettingArray","createToolbar","toolbarItem","extractFrom","lookupButton","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","Iframe","lastToolbarWidth","eTargetNode","uiRoot","popupUi","dialogUi","attachUiMotherships","innerWidth","initialDocEle","lastWindowDimensions","lastDocumentDimensions","resizeWindow","outer","resizeDocument","fireScrollContent","elementLoad","setupEvents$1","socket","limit","unbinder","fireToggleSidebar","fireToggleView","toolbarMode","iframeContainer","parseToInt","numToPx","calcCappedSize","minSize","maxSize","minOverride","maxOverride","baseWidth","InlineHeader","floatContainer","isSticky","editorMaxWidthOpt","headerBackstage","isSplitToolbar","calcToolbarOffset","tbar","repositionPopups$1","stickyAction","prevScroll","isOuterContainerWidthRestored","currentScroll","optScroll","targetBounds","getOffsetParent$1","widthProperties","toolbarWidth","availableWidth","baseProperties","topValue","updateChromePosition","doUpdateMode","currentMode","newMode","toolbarHeight","docHeight","calcMode","setDockingMode","verticalDir","removeClass","updateMode","getTargetPosAndBounds","Inline","toolbarPersist","uiContainer","prevPosAndBounds","resizeContent","prevPos","prevBounds","hasResized","lastScrollX","updateUi","newScrollX","_args","setupEvents","hideContextToolbarEvent","runOnExecute","formApi","getFormApi","ContextForm","commands","findPrimary","mementos","renderContextToggleButton","renderContextButton","asSpecs","compInSystem","isVerticalOverlap","threshold","getSelectionBounds","leaf$1","getRangeRect","bodyPos","getContextToolbarBounds","toolbarType","viewportBounds","contentAreaBox","toolbarOrMenubarEnabled","getHorizontalBounds","isToolbarLocationTop","headerBox","isToolbarBelowContentArea","isToolbarAbove","containerBounds","getVerticalBounds","bubbleAlignments$1","inset","shouldUseInsetLayouts","determineInsetLayout","contextbar","selectionBounds","isSameAnchorElement","lastElement","isEntireElementSelected","currentPosition","isReposition","preservePosition","getAnchorSpec$2","mobile","smartInsetLayout","getInsetLayouts","matchTargetWith","ctxs","toolbarApi","contextToolbars","contextForms","categorise","forms","inNodeScope","inEditorScope","formNavigators","contextForm","launch","registerForm","contextToolbar","registerToolbar","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","register$a","registryContextToolbars","lastTrigger","lastContextPosition","newContents","oldContents","forwardContents","renderContextToolbar","canLaunchToolbar","isContextMenuOpen","shouldContextToolbarHide","contextToolbarBounds","anchorBounds","getAnchorElementBounds","hideOrRepositionIfNecessary","contextBarEle","wrapInPopDialog","shortcuts","getScopes","alloySpec","buildToolbar","allButtons","buildContextToolbarGroups","buildContextFormGroups","launchContext","launchContextToolbar","anchorLayout","getAnchorLayout","isSameLaunchElement","isDragging","rootElem","isOutsideRoot","nodeCandidates","editorCandidates","nodeMatches","editorMatches","doesPositionExist","filterToolbarsByPosition","hasSelectionToolbars","hasNodeToolbars","nodeToolbars","selectionToolbars","filterByPositionForStartNode","matchStartNode","ancestorElem","findPosition","filterByPositionForAncestorNode","matchAncestor","lookup$1","toolbarKey","registerController","getMenuItems","getOptions","oldApi","unbindWatcher","watcher","setCurrent","addMenuButton","onToolbarSetup","onMenuSetup","register$8","normalise","lineHeightSpec","customCode","customValue","lang","languageSpec","onSetupOutdentState","makeSetupHandler","pasteAsText","pastePlainTextToggleHandler","onActionToggleFormat","_idx","registerFormatButtons","registerCommandButtons","registerCommandToggleButtons","registerButtons$1","registerMenuItems$2","onSetupUndoRedoState","onSetupVisualAidState","hasVisual","setup$6","register$9","createAlignMenu","createFontFamilyMenu","createStylesMenu","createBlocksMenu","createFontSizeMenu","register$7","registerMenuItems$1","registerButtons","applyFormat","removeFormat","fallbackColorForeground","fallbackColorBackground","lastForeColor","lastBackColor","register$d","registerToolbarButton","addToggleMenuItem","registerMenuItems","registerButtons$2","register$5","register$4","addContext","register$6","patchPipeConfig","shouldNeverUseNative","getAvoidOverlapSelector","getContextMenu","contextMenus","contextMenu","isTouchEvent$1","getPointAnchor","pageX","pageY","fromPageXY","containerPos","getPos","transpose","transposeContentAreaContainer","fromClientXY","getSelectionAnchor","getAnchorSpec$1","anchorType","getNodeAnchor","initAndShow$1","buildMenu","contextmenu","anchorSpec","bubbleAlignments","initAndShow","highlightImmediately","getAnchorSpec","openiOS","originalSelection","selectionReset","unbindEventListeners","preventMousedown","clearSelectionReset","setupiOSOverrides","rngRect","isTouchWithinSelection","makeContextItem","commonMenuItem","commonItem","addContextMenuGroup","groupItems","isTriggeredByKeyboard","isTouchEvent","pointerType","getSelectedElement","setup$5","setContextMenuState","hideContextMenu","showContextMenu","isNativeOverrideKeyEvent","isContextMenuDisabled","getAnchorType","selectedElement","sections","allItems","generateContextMenu","hideEvents","subtract","changes","asFixed","coord","asAbsolute","asOffset","toStyles","stylesOpt","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","parseAttrToInt","NaN","moveOrSnap","snapInfo","newCoord","snapsInfo","leftAttr","topAttr","getCoords","mustSnap","findClosestSnap","findSnap","fixedCoord","spanned","findMatchingSnap","snaps","sensor","inRange","coord1","coord2","withinRange","getSnapPoints","bestSnap","getDeltas","bestDeltas","DraggingApis","snapTo","dragConfig","getTarget","repositionTarget","snapPin","snapTo$1","initialAttribute","instigate","anyComponent","zindex","changeZIndex","discard","zIndex","resetZIndex","createComponent","blockerClass","blockerEvents","SnapSchema","schema$6","getCurrentCoord","lift3","oc","calcStartData","dragMode","dragStartData","getStartData","dlt","currentCoord","optSnaps","coords","absoluteCoord","newCoords","offset$1","clampCoords","translated","deltaX","deltaY","snapping","onSensor","calcNewCoord","onDrag","dragBy","stopDrag","onDrop","updateStartState","setStartData","MouseData","events$3","stop$1","init$3","schema$5","TouchData","getDataFrom","events$2","blockerSingleton","stopBlocking","init$2","mouseOrTouch","DraggingBranches","DragState","dragEvent","nuData","calculateDelta","Dragging","dragger","calcSnap","selectorOpt","snapWidth","selectorHandle","sensorLeft","sensorTop","getSnapsConfig","currentTd","isSameCell","createSelector","setup$4","tlTds","brTds","getTopLeftSnap","memTopLeft","getBottomRightSnap","memBottomRight","topLeftSnaps","bottomRightSnaps","bottomRight","getSnapConfig","cellRect","viewportHeight","aboveViewport","belowViewport","isBelow","showOrHideHandle","snapTopLeft","snapBottomRight","domToSugar","renderElementPath","newPath","isPropagationStopped","updatePath","_btn","describedElement","describeElement","describeId","describedBy","renderElement","ResizeTypes","resizeType","originalHeight","originalWidth","Both","getDimensions","dim","keyboardHandler","renderStatusbar","getTextComponents","shouldRenderHelp","shouldRenderElementPath","shouldRenderRightContainer","shortcutText","renderHelpAccessibility","replaceCountText","words","characters","currentVal","wordCount","renderWordCount","renderRightContainer","flexStart","flexEnd","container3Columns","getTextComponentClasses","None","Vertical","getResizeType","resizeLabel","_target","renderResizeHandler","getLazyMothership","setup$3","setupForTheme","lazyUiRefs","getUiMotherships","optDialogMothership","optPopupMothership","dm","pm","lazyGetInOuterOrDie","LazyUiReferences","lazyMothership","lazyDialogMothership","lazyPopupMothership","deviceClasses","isToolbarBottom","memAnchorBar","memBottomAnchorBar","lazyAnchorBar","backstages","lazySinks","contextMenuState","HeaderBackstage","specContext","settingsFormats","eventsFormats","replaceSettings","enriched","modifications","fromSettings","fromEvents","init$6","ColorInputBackstage","dialogSettings","DialogBackstage","commonBackstage","popupBackstage","dialogBackstage","init$5","renderMainUi","verticalDirAttributes","fireToggleToolbarDrawer","hasMultipleToolbar","hasToolbar","hasMenubar","shouldHavePromotion","promotion","hasAnyContents","menubarCollection","makeHeaderPart","sidebarContainer","viewWrapper","statusbar","editorComponents","isHidden","setEditorSize","parsedHeight","baseHeight","getHeightWithFallback","parsedWidth","getWidthWithFallback","popups","getMothership","dialogs","renderUI","isGridUiContainer","sinkSpec","reactiveWidthSpec","renderDialogUi","getPopupSinkBounds","renderPopupUi","reuseDialogUiForPopuUi","toolbarGroupButtonConfig","addGroupToolbarButton","sidebars","toolbarOpt","addShortcut","channel","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onContentMousedown","loopEditor","relatedTarget","onWindowScroll","onWindowResize","onElementScroll","onEditorResize","onEditorProgress","onDismissPopups","gui","setup$b","handleToggle","setup$8","renderUIWithRefs","schema$2","basic","parts$2","dragBlockClass","getDragBounds","ModalDialog","dialogComp","modalEventsId","externalBlocker","blockerDom","getFooter","setIdle","setBusy","modalBehaviours","titleElm","labelledElement","labelElement","labelId","labelledBy","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseFooterButtonFields","dialogFooterButtonFields","normalFooterButtonFields","menuFooterButtonFields","toggleButtonSpecFields","dialogFooterButtonSchema","submit","alertBannerFields","alertBannerSchema","buttonFields","buttonSchema","formComponentFields","formComponentWithLabelFields","checkboxFields","checkboxSchema","checkboxDataProcessor","collectionFields","collectionSchema","collectionDataProcessor","colorInputFields","colorInputSchema","colorInputDataProcessor","colorPickerSchema","colorPickerDataProcessor","customEditorFields","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","dropZoneFields","dropZoneSchema","dropZoneDataProcessor","createGridFields","itemsField","htmlPanelFields","htmlPanelSchema","iframeFields","iframeSchema","iframeDataProcessor","imagePreviewSchema","imagePreviewDataProcessor","inputFields","inputSchema","inputDataProcessor","createLabelFields","listBoxSingleItemFields","listBoxNestedItemFields","listBoxItemSchema","listBoxFields","listBoxSchema","listBoxDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","sliderFields","sliderSchema","sliderInputDataProcessor","tableFields","tableSchema","textAreaFields","textAreaSchema","textAreaDataProcessor","baseTreeItemFields","treeItemLeafSchema","treeItemDirectoryFields","treeItemDirectorySchema","treeItemSchema","treeFields","treeSchema","urlInputFields","urlInputSchema","urlInputDataProcessor","createItemsField","itemSchema","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogButtonFields","dialogButtonSchema","dialogSchema","tabpanel","urlDialogButtonSchema","urlDialogSchema","getAllObjects","isNamedItem","dataProcessors","togglemenuitem","createDataValidator","namedItems","getNamedItems","getDataProcessor","internalDialog","dataValidator","DialogManager","openUrl","ActiveReflecting","reflectingConfig","reflectingState","renderComponents","newComponents","rawData","ReflectingApis","reflectState","ReflectingSchema","Reflecting","toValidValues","renderBodyPanel","memForm","formValue","TabButton","tabButtonBehaviours","schema$1","tabsPart","barDetail","dismissTab$1","tabbar","changeTab$1","clickToDismiss","tabClass","parts$1","Tabbar","tabbarBehaviours","selectedClass","Tabview","tabviewBehaviours","barPart","viewPart","TabSection","changeTabBy","byPred","tabSectionBehaviours","selectFirst","tabValue","tabview","tabData","onChangeTab","onDismissTab","getViewItems","showTab","tabKey","setTabviewHeight","updateTabviewHeight","dialogBody","maxTabHeight","tablist","documentElement$1","tabviewHeight","currentTabHeight","dialogTopMargin","dialogBottomMargin","getMaxTabviewHeight","getTabview","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","formData","validData","setDataOnForm","oldTab","allTabs","tabMode","extraEvents","tabviewComp","_tab","measureHeights","maxTabHeightOpt","oldHeight","smartMode","_viewItems","oldName","tsection","renderBody","dialogId","contentId","ariaAttrs","incoming","isTabPanel","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","footer","pFooterGroup","startButtons","renderDialog$1","dialogClass","blockerBackdropClass","scrollLockClass","extraStyles","dialogEvents","renderClose","renderTitle","titleId","renderDragHandle","pTitle","pHandle","draghandle","draggable","renderModalHeader","bs","getEventExtras","lazyDialog","closeWindow","blockEvent","fullscreenClass","largeDialogClass","mediumDialogClass","getDialogSizeClass","updateDialogSizeClass","dialogSizeClass","toggleFullscreen","currentSize","currentSizeClass","toggle$5","toggle$4","toggle$3","renderModalDialog","mapMenuButtons","menuItemStates","mapItems","extractCellsToObject","innerAcc","initCommonEvents","fireApiEvent","self","initDialog","getInstanceApi","withSpec","currentDialogInit","rootNode","cur","oldTabName","footerButtons","buttonGroups","makeGroup","renderFooter","initSpec","makeButton","lookupByName","buttonName","renderModalFooter","getFormWrapper","footerState","getDialogApi","doRedial","withRoot","instanceApi","valueComp","prevData","mergedData","newInternalData","dialogState","validateData$1","tabSection","getId","dialogInit","storedMenuButtons","renderInlineDialog","refreshDocking","dialogLabelId","dialogContentId","dialogSize","memHeader","renderInlineHeader","memBody","renderInlineBody","modalAccess","storagedMenuButtons","objOfCells","optMemFooter","renderInlineFooter","memFooter","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","renderUrlDialog","bodySpec","renderIframeBody","currentDialog","initUrlDialog","iframeUri","base_uri","iframeDomain","protocol","port","messageHandlerUnbinder","isSameOrigin","handleMessage","isCustomMessage","onMessage","iframeEle","iframeWin","postMessage","sendMessage","getUrlDialogApi","validateData","isAlertOrConfirmDialog","inlineAdditionalBehaviours","isStickyToolbar$1","alertDialog","closeDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","confirmDialog","memFooterYes","footerNo","footerYesButton","openModalDialog","internalInitialData","dialogSizeClasses","renderModalBody","outerForm","renderDialog","openInlineDialog","config$1","windowParams","inlineDialogComp","persistent","openBottomInlineDialog","contentAreaContainer","openModalUrlDialog","confirm","registerOptions","colorProcessor","fromString$1","canvasContext","clearRect","getImageData","anyToHex","colorColsProcessor","register$e","popupSinkBounds","renderModeUI","windowMgr","renderResult","getWindowManagerImpl","getNotificationManagerImpl","typeOf$1","eqString","eqArray","eqa","eqRecord","kx","ky","compareFn","contramap","eqSortedArray","q","eqAny","tx","isEquatableType","is$4","isArray$1","compose1","map$3","each$e","partition$2","filter$5","findUntil$1","findIndex$2","unique$1","hasOwnProperty$1","each$d","filter$4","stringArray","isArrayLike","each$c","filter$3","reduce","iteratee","accumulator","trim$4","lTrim","rTrim","isEmpty$3","toInt","radix","platform$4","platform$3","browser$3","os$1","windowsPhone","Env","transparentSrc","documentMode","cacheSuffix","canHaveCSP","whiteSpaceRegExp$1","trim$3","walk$4","delim","resolvedItems","inArray","hasOwn","exts","ext","walk","_addCacheSuffix","isHTMLElement$1","isElement$7","isText$c","isDocument$2","isDocumentFragment$1","set$3","remove$9","clone$4","read$4","fromDom$2","recurse","parents$1","prevSiblings","nextSiblings","childNodesCount","getStyleContainer","getHead","ancestor$4","descendant$2","isEditable$2","intoView","alignToTop","scrollIntoViewIfNeeded","DomTreeWalker","findSibling","findPreviousNode","startName","siblingName","zeroWidth","nbsp","isZwsp$2","whiteSpaceRegExp","isWhitespaceText","isNewLineChar","normalize$4","tabSpaces","isStartOfContent","isEndOfContent","tabSpace","normalizedText","isCollapsibleWhitespace$1","pcIsSpace","isNewline","isNodeType","isRestrictedNode","isElement$6","lowerCasedName","lowerCasedNames","matchStyleValues","isBogus$1","isTable$2","isTextareaOrInput","isText$b","isCData","isPi","isDocument$1","isBr$6","isImg","isContentEditableTrue$3","isContentEditableFalse$b","isTableCell$3","isTableCellOrCaption","isMedia$2","isListItem$2","isDetails","isSummary$1","defaultOptionValues","skipBogus","includeZwsp","isBookmark","isText$a","rootElement","whitespaceElements","getWhitespaceElements","hasWhitespacePreserveParent","isWhitespace$1","isZwsp$1","isContentNode","isContent","isNonEmptyElement$1","isNamedAnchor","hasNonEditableParent","isEmptyNode","opts","brCount","bogusValue","isContent$1","repeatable","intervalId","functionToRepeat","nodeNameToNamespaceType","lowerCaseName","isNonHtmlElementRootName","isNonHtmlElementRoot","toScopeType","namespaceElements","transparentBlockAttr","makeSelectorFromSchemaMap","elementNames","escapedName","CSS","updateTransparent","blocksSelector","updateBlockStateOnChildren","transparentSelector","getTransparentElements","trimEdge","leftSide","childPropertyName","splitInvalidChildren","transparentBlocks","blocksElements","transparentBlock","invalidChildren","stateScope","parentElm","splitElm","beforeFragment","afterFragment","split$2","updateChildren","isTransparentBlock","isTransparentInline","unwrapInvalidChildren","updateElement","isTransparentElement","hasBlockAttr","isTransparentElementName","isTransparentAstBlock","browser$2","firstElement","hasChild","StyleSheetLoader","documentOrShadowRoot","idCount","loadedStates","edos","addStyle","removeStyle","styleContainer","getOrCreateState","passed","failed","urlWithSuffix","onload","onerror","linkElem","contentCssCors","referrerPolicy","styleElem","loadAll","urls","allSettled","reason","unloadAll","_setReferrerPolicy","_setContentCssCors","WeakMap","forElement","referenceElement","rootDom","sl","create$c","isInlineContent","isBookmarkNode$2","isSpan","trimNode","isKeepElement","prevIsInline","nextIsInline","surroundedByInlineContent","isKeepTextNode","makeMap$3","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","baseEntities","reverseEntities","buildEntitiesLookup","itemList","chr","entity","namedEntities","encodeRaw","encodeNumeric","encodeNamed","entities","resolveEntities","Entities","getEncodeFunc","entitiesMap","nameMap","named","numeric","decode","nativeDecode","split$1","patternToRegExp","getGlobalAttributeSet","getElementSetsAsStrings","blockContent","phrasingContent","flowContent","getElementSets","toArr","cachedSets","getElementsPreset","parseValidChild","preset","mapCache","makeMap$2","each$b","extend$2","explode$2","createMap","defaultValue","extendWith","getTextRootBlockElements","compileElementMap","Schema","patternElements","customElementsMap","specialElements","createLookupTable","schemaType","schemaItems","globalAttributes","addElement","attributesOrder","childNames","ni","allAttributes","addAttrs","schemaItem","video","audio","script","makeSchema","verify_html","valid_elements","validStyles","valid_styles","invalidStyles","invalid_styles","validClasses","valid_classes","whitespaceElementsMap","selfClosingElementsMap","voidElementsMap","boolAttrMap","nonEmptyOrMoveCaretBeforeOnEnter","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","headings","textBlockElementsMap","blockElementsMap","textInlineElementsMap","transparentElementsMap","wrapBlockElementsMap","addValidElements","validElements","globalElement","hasPatternsRegExp","elementRuleRegExp","elementName","outputName","attrsPrefix","attrData","cloneAttributesInto","paddEmpty","removeEmpty","removeEmptyAttrs","targetElement","attrRuleRegExp","attrType","attrPrefix","attributesRequired","attributesDefault","attributesForced","forcedValue","validValues","attrPattern","attributePatterns","parseValidElementsAttrDataIntoElement","aliasName","parseValidElementsRules","patternElement","setValidElements","addCustomElement","text_block_elements","block_elements","extends","cloneName","customRule","helper","isRegExp$1","deepCloneElementRule","processAttrName","globalAttrs","padEmpty","customElementChildren","processNodeName","processPreset","elmName","addCustomElements","customElements","customElementRegExp","parseCustomElementsRules","addCustomElementsFromString","addValidChildren","validChildren","childRuleRegExp","prefixToOperation","validChild","parseValidChildrenRules","getElementRule","getValidStyles","getInvalidStyles","getValidClasses","getBoolAttrs","getTextInlineElements","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getWrapBlockElements","getSpecialElements","attrPatterns","getCustomElements","padd_empty_block_inline_children","paddInEmptyBlock","custom_elements","valid_children","extended_valid_elements","dd","dt","th","tfoot","legend","area","param","parentsRequired","invalid_elements","isWrapper","rgbaToHexString","Styles","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","encodingItems","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","noJoin","canCompress","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","allow_svg_data_urls","colorString","serializeStyles","elemName","validStyleList","styleList","styleMap","deprecated","keyLocation","layerX","layerY","returnValue","webkitMovementX","webkitMovementY","keyIdentifier","mozPressure","clone$3","originalEvent","getModifierState","keyArg","getTargetRanges","normalize$3","fallbackTarget","srcElement","initEvent","isNativeEvent","needsNormalizing","defaultPrevented","cancelBubble","isImmediatePropagationStopped","hasIsDefaultPrevented","mouseEventRe","addEvent","removeEvent","fix","isMouseEvent","eventDoc","bindOnReady","eventUtils","domLoaded","readyHandler","EventUtils","expando","hasFocusIn","callbackList","defaultNativeHandler","executeHandlers","namesList","nativeHandler","fakeName","eventMap","ci","newCallbackList","parentWindow","each$a","internalStyleName","numericalCssMap","legacySetAttribute","camelCaseToHyphens","findNodeIndex","normalized","lastNodeType","updateInternalStyleAttr","applyStyle$1","$elm","cssName","cssValue","normalizedName","convertStyleToString","DOMUtils","addedStyles","boundEvents","ownEvents","getElementById","_get","defaultVal","attrHooks","getAttribs","originalValue","onSetAttrib","attrElm","root_element","getPos$1","castOffsetParent","bodyTop","captionTop","captionHeight","getTableCaptionDeltaY","getSize","collect","resolvedRoot","selectorVal","_findSib","setHTML","keepChildren","$node","oldElm","rv","boundTarget","boundName","boundFunc","stdMode","boxModel","getViewPort","argWin","getPrev","outHtml","frag","update_styles","stylesArg","removeAllAttribs","removeAttributeNode","serializeStyle","styleElm","styleSheet","loadCSS","hasClass","uniqueId","getOuterHTML","setOuterHTML","reference","referenceNode","attrNode","findCommonAncestor","pe","replacementElm","getContentEditableParent","dumpRng","keepValues","keep_values","keepUrlHook","sugarElm","setupAttrHooks","DOM$b","ScriptLoader","states","queue","scriptLoadedCallbacks","queueLoadedCallbacks","loading","loadScript","cleanup","isDone","markDone","loadQueue","loadScripts","scripts","execCallbacks","processResults","failures","processQueue","nextQueuedItem","uniqueScripts","currentCode","getLanguageData","I18n","setCode","newCode","getCode","langData","lcNames","translation","firstIndex","getLangData","textStr","removeContext","isTokenised","$1","$2","hasCode","AddOnManager","_listeners","runListeners","matchedListeners","isLoaded","loadLanguagePack","languages","language","waitFor","isAdded","requireLangPack","languageLoad","addOn","createUrl","baseUrl","resource","addOnUrl","urlString","lastIndexOf","PluginManager","ThemeManager","ModelManager","first$1","annotation","dataAnnotation","dataAnnotationId","dataAnnotationActive","dataAnnotationClasses","dataAnnotationAttributes","isRoot$1","annotationName","an","newStart","findMarkers","isBogusElement","findAll","nodesAlready","random","shallow$1","deep$1","TextWalker","TextSeeker","isBlockBoundary","newOffset","forwards","lazyLookup","isBr$5","isTextBlock$2","isListItem$1","isTableSection","isTableCell$2","isWsPreserveElement","createPaddingBr","fillWithPaddingBr","ZWSP$1","trim$2","isElement$5","isText$9","isCaretContainerBlock$1","isCaretContainerInline","isCaretContainer$2","hasContent","isBeforeInline","isAtStart","isAfterInline","isAtEnd","startsWithCaretContainer$1","endsWithCaretContainer$1","showCaretContainerBlock","caretContainer","brs","lastBr","trimBogusBr","isRangeInCaretContainerBlock","round$2","isValidOverflow","rect1","rect2","isAbove$1","halfHeight","isBelow$1","distanceToRectEdgeFromXY","cx","cy","getSelectedNode","getNode$1","safeOffset","clamp$2","extendingChars","isExtendingChar","isContentEditableTrue$2","isContentEditableFalse$a","isBr$4","isText$8","isInvalidTextElement","isAtomicInline","isCaretContainer$1","isCaretCandidate$3","isNonUiContentEditableFalse","isUnselectable","isEditableCaretCandidate$1","isInEditable","isElement$4","isCaretCandidate$2","isBlock$2","isFloated","isValidElementCaretCandidate","isNotPre","isText$7","isBr$3","nodeIndex$1","resolveIndex$1","createRange$1","isWhiteSpace$1","isRange","isHiddenWhiteSpaceRange","isZeroRect","getBoundingClientRect$1","clientRect","clientRects","brNode","nbsp$1","getBrClientRect","ec","so","eo","getBoundingClientRectWebKitText","collapseAndInflateWidth","newClientRect","CaretPosition","caretPosition","addUniqueAndValidRect","addCharacterOffset","beforeNode","getCaretPositionClientRects","toRange","isEqual","fromRangeStart","fromRangeEnd","isAbove","pos1","pos2","isTextPosition","isElementPosition","trimEmptyTextNode$1","rangeInsertNode","insertNode","insertFragment","isText$6","isBogus","normalizedParent","equal","createPathItem","numTextFragments","normalizedNodeIndex","create$a","outputOffset","normalizedTextOffset","parentsUntil$1","resolvePathItem","nodeOffset","targetOffset","dataLen","findTextPosition","isContentEditableFalse$9","getPoint","trimmedOffset","getNormalizedTextOffset$1","moveEndPoint$1","normalizeTableCellSelection","getOffsetBookmark","findAdjacentContentEditableFalseElm","fakeCaret","isFakeCaret","getLocation","createBookmarkSpan","filled","getPersistentBookmark","rng2","endBookmarkNode","startBookmarkNode","keep","getUndoBookmark","isInlinePattern","isBlockPattern","normalizePattern","formatOrCmd","onFormat","onCommand","commandValue","getBlockPatterns","getInlinePatterns","filterByTrigger","blockPatterns","hasBlockTrigger","fromRawPatterns","deviceDetection$1","DOM$a","isRegExp","stringOrObjectProcessor","bodyOptionProcessor","bodyObj","getHash","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre$1","getNewlineBehavior","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","isAutomaticUploadsEnabled","shouldReuseFileName","shouldReplaceBlobUris","getIconPackName","getIconsUrl","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getReferrerPolicy","getLanguageCode","getLanguageUrl","shouldIndentUseMargin","getIndentation","getContentCss","getContentStyle","getFontCss","getDirectionality","getInlineBoundarySelector","getObjectResizing","getResizeImgProportional","getPlaceholder","getEventRoot","getServiceMessage","getTheme","getThemeUrl","getModel","getModelUrl","isInlineBoundariesEnabled","getFormats","getPreviewStyles","canFormatEmptyLines","getFormatNoneditableSelector","getCustomUiSelector","isInline$1","hasHiddenInput","shouldPatchSubmit","shouldAddFormSubmitTrigger","shouldAddUnloadTrigger","getCustomUndoRedoLevels","shouldDisableNodeChange","isReadOnly$1","hasEditableRoot$1","hasContentCssCors","getPlugins","getExternalPlugins$1","shouldBlockUnsupportedDrop","isVisualAidsEnabled","getVisualAidsTableClass","getVisualAidsAnchorClass","getIframeAriaText","getSetupCallback","getInitInstanceCallback","getUrlConverterCallback","getAutoFocus","shouldBrowserSpellcheck","getProtect","shouldPasteBlockDrop","shouldPasteDataImages","getPastePreProcess","getPastePostProcess","getNewDocumentContent","getPasteWebkitStyles","shouldPasteRemoveWebKitStyles","shouldPasteMergeFormats","isSmartPasteEnabled","isPasteAsTextEnabled","getPasteTabSpaces","shouldAllowHtmlDataUrls","getTextPatterns","getTextPatternsLookup","getNonEditableClass","getEditableClass","getNonEditableRegExps","shouldPreserveCData","shouldHighlightOnFocus","shouldSanitizeXss","shouldUseDocumentWrite","getAllowedImageFileTypes","hasTableTabNavigation","getDetailsInitialState","getDetailsSerializedState","shouldSandboxIframes","getSandboxIframesExclusions","shouldConvertUnsafeEmbeds","getLicenseKey","getApiKey","isElement$3","isText$5","removeNode$1","trimCount","trimmedText","deleteZwspChars","deleteData","removeUnchanged","removeAndReposition","removeTextAndReposition","removeTextCaretContainer","newPosition","indexOf$1","removeElementAndReposition","removeElementCaretContainer","caretContainerNode","isContentEditableFalse$8","isMedia$1","isTableCell$1","getAbsoluteClientRect","scrollX","scrollY","rootRect","FakeCaret","lastVisualCaret","cursorInterval","caretBlock","fakeCaretTargetNodes","trimInlineCaretContainers","caretState","textNode","insertInline$1","isInlineFakeCaretTarget","blockNode","insertBlock","getCss","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableTrue$1","isContentEditableFalse$7","isMedia","isBlockLike","isCaretContainer","isCaretContainerBlock","isElement$2","isText$4","isCaretCandidate$1","isForwards","isBackwards","skipCaretContainers","findNode","predicateFn","isCefOrCaretContainer","getParentBlock$3","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","node1","node2","lean","before$2","leanLeft","leanRight","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getVisualCaretPosition","isMoveInsideSameBlock","inSameBlock","HDirection","isContentEditableFalse$6","isText$3","isBr$2","isCaretCandidate","isAtomic","isAtomicContentEditableFalse","isEditableCaretCandidate","nodeAtIndex","getCaretCandidatePosition","findCaretPosition$1","startPos","innerNode","Forwards","moveForwardFromBr","rootContentEditableFalseElm","getParents$3","CaretWalker","Backwards","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","fromPosition","shouldSkipPosition","navigateIgnore","ignoreFilter","positionIn","walkToPositionIn","nextPosition","prevPosition","firstPositionIn","lastPositionIn","CARET_ID","isCaretNode","getParentCaretContainer","isIndexBookmark","isPathBookmark","isForwardBookmark","addBogus","tryFindRangePosition","padEmptyCaretContainer","isEmpty$1","insertZwsp","setEndPoint","isValidTextNode","markerParent","otherMarker","appendData","getBookmark$2","getCaretBookmark","getRangeBookmark","getBookmark$3","resolvePaths","isStringPathBookmark","endPos","resolveCaretPositionBookmark","isIdBookmark","spos","epos","resolveId","resolveIndex","isRangeBookmark","isBookmarkNode$1","isNbsp","expected","isWhiteSpace","getRanges$1","getCellsFromElementOrRanges","getSelectedNodes","getCellsFromRanges","getCellsFromEditor","getSel","getClosestTable","getFirstChildren","getLastChildren","hasAllContentsSelected","getStartNode","getEndNode","moveEndPoint","hasAnyRanges","runOnRanges","fakeSelectionNodes","fakeNodeRng","fillBookmark","isNode","isElementNode$1","preserveSelection","shouldMoveStart","selectedNodeBeforeAction","isSelectedBeforeNodeNoneditable","moveStartToNearestText","selectedAttr","isElementDirectlySelected","isWhiteSpaceNode$1","getNonWhiteSpaceSibling","inc","nextName","isTextBlock$1","allowSpaces","isWrappableNoneditable","baseDataSelector","formatNoneditableSelector","isWrapNoneditableTarget","replaceVars","vars","isEq$5","str1","normalizeStyleValue","strValue","getTextDecoration","decoration","getParents$2","isFormatPredicate","isInlineFormat","shouldExpandToSelector","isCaretContainerEmpty","getEmptyCaretContainers","isEmptyCaretFormatElement","getParents$1","isWhiteSpaceNode","findParentContentEditable","walkText","findSpace","findContent","findWordEndPoint","includeTrailingSpaces","textOffset","findSelectorEndPoint","formatList","curFormat","findBlockEndPoint","scopeRoot","isAtBlockBoundary$1","findParentContainer","block_expand","isSelfOrParentBookmark","expandRng","includeTrailingSpace","walk$3","firstNode","collectSiblings","findEndPoint","walkBoundary","endPoint","validBlocks","applyAnnotation","masterUId","decorate","directAnnotation","otherData","attributeNames","makeAnnotation","eDoc","master","annotate","newWrappers","finishWrapper","processElements","processElement","wrapName","isZeroWidth","isAnnotation","processNodes","Annotator","getNames","create$b","dataAnnotation$1","identifyParserNode","removeDirectAnnotation","customAttrNames","customClasses","newClassList","setup$x","changeCallbacks","withCallbacks","updateCallbacks","callbackMap","outputData","toggleActiveAttr","onNodeChange","fireNoAnnotation","fireCallbacks","addListener","setup$y","removeAnnotations","initialRng","hasFakeSelection","masterUid","applyWordGrab","annotateWithBookmark","annotationChanged","removeAll","BookmarkManager","isXYWithinRange","containsXY","fireError","errorType","fireFormatApply","fireFormatRemove","fireSetContent","fireGetContent","fireAutocompleterUpdateActiveRange","firePastePlainTextToggle","VK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","modifierPressed","altKey","metaKey","elementSelectionAttr","resizeHandles","nw","ne","sw","ControlSelection","editableDoc","rootDocument","selectedElm","selectedElmGhost","resizeHelper","selectedHandle","resizeBackdrop","startX","startY","resizeStarted","startScrollWidth","startScrollHeight","isImage","contextMenuSelectImage","isEventOnImageOutsideRange","getResizeTargets","setSizeProp","setGhostElmSize","ghostElm","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","screenX","screenY","selectedElmX","selectedElmY","scrollWidth","endGhostResize","wasResizeStarted","showResizeRect","unbindResizeHandleEvents","targetWidth","targetHeight","hideResizeRect","handleElm","rowSelect","createGhostElement","throttledShowResizeRect","removeSelected","isChildOrEqual","updateResizeRect","composing","controlElm","disableGeckoResize","startElm","getStart$1","toNative","getDomRange","fromPoint$1","isEq$4","rng1","hasParent$1","findParent","hasParentWithName","isCeFalseCaretContainer","hasBrBeforeAfter","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","hasContentEditableFalseParent$1","isPrevNode","normalize$2","normRng","newContainer","RangeUtils","rangeLike","newRange","normalizedRng","compareRanges","getCaretRangeFromPoint","excludeFromDescend","markerInfo","cleanupFun","withMarker","preserveWith","_s","applyWithMarker","withScrollEvents","fireScrollIntoViewEvent","fireAfterScrollIntoViewEvent","createMarker$1","elementMarker","startElement","endElement","scrollToMarker","intoWindowIfNeeded","viewportBottom","largerThanViewport","intoWindow","intoFrame","frameViewHeight","op","rangeIntoWindow","elementIntoWindow","rangeIntoFrame","elementIntoFrame","scrollRangeIntoView","hasFocus$1","clamp$1","normalizeRng","isOrContains","isRngInRoot","nativeRangeToSelectionRange","bookmarkToNativeRng","newBookmark","shouldStore","FocusManager","isEditorUIElement","Delay","wrappedSetTimeout","setEditorInterval","wrappedSetInterval","documentFocusInHandler","DOM$9","isEditorContentAreaElement","isUIElement","customSelector","getActiveElement","registerEvents$1","throttledStore","mouseUpPage","registerPageMouseUp","registerMouseUp","selectionChange","isManualNodeChange","registerEditorEvents","toggleContentAreaOnFocus","focusedEditor","blurredEditor","activeEditor","unregisterDocumentEvents","normalizeSelection","getCollapsedNode","getFocusInElement","caretPos","focusBody","rawBody","hasInlineFocus","hasIframeFocus","hasEditorOrUiFocus","hasUiFocus","activateEditor","isEditableRange","getEndpointElement","real","skipEmptyTextNodes","processRanges","typeLookup","walk$2","isEmptyTextNode","isNonEmptyElement","AstNode","selfAttrs","cloneAttrs","selfAttr","whitespace","unescapedTextParents","containsZwsp","getTemporaryNodeSelector","tempAttrs","createZwspCommentWalker","createTreeWalker","FILTER_SKIP","createUnescapedZwspTextWalker","hasZwspComment","hasUnescapedZwspText","hasTemporaryNode","trimTemporaryNodes","getTemporaryNodes","emptyAllNodeValuesInWalker","curr","emptyZwspComments","emptyUnescapedZwspTexts","conditionalTrims","condition","trimmed","cloned","cleanupBogusElements","bogusElements","cleanupInputNames","inputs","getContentFromBody","getTempAttrs","getPlainTextContent","emptyRegExp","trimEmptyContents","makeMap$1","Writer","indent","indentBefore","indent_before","indentAfter","indent_after","entity_encoding","htmlOutput","element_format","cdata","comment","pi","HtmlSerializer","writer","sortedAttrs","elementRule","nonInheritableStyles","Set","conditionalNonInheritableStyles","shorthandStyleProps","getStyleProps","getStyles$1","hasNonInheritableStyles","isNonInheritableStyle","isChar","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBogusAll","isBeforeImageBlock","isAfterImageBlock","isBeforeMedia","isAfterMedia","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","parentsUntil","parentsAndSelf","navigateIgnoreEmptyTextNodes","getClosestBlock$1","isAtBeforeAfterBlockBoundary","fromBlock","isAtBlockBoundary","isAtStartOfBlock","isAtEndOfBlock","isBeforeBlock","isAfterBlock","isBr$1","isBeforeBr$1","isAfterBr","getElementFromPrevPosition","findPreviousBr","findNextBr","isInMiddleOfText","getClosestBlock","hasSpaceBefore","hasSpaceAfter","isInPre","isPreValue","isSiblingCefBlock","needsToHaveNbsp","isAtBeginningOfBody","isAtEndOfBody","isAtLineBoundary","needsToBeNbspLeft","isPrevCefBlock","isAfterCefBlock","needsToBeNbspRight","nextPos","isNextCefBlock","isBeforeCefBlock","needsToBeNbsp","isNbspAt","isWhiteSpaceAt","normalizeNbspAtStart","makeNbsp","firstPos","normalizeNbspAtEnd","lastPos","normalizeNbsps$1","hasNbsp","newText","normalizeNbspMiddle","normalizeNbspInMiddleOfTextNode","normalize$1","replaceData","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","normalizeWhitespace","mergeToPrev","whitespaceOffset","newNode","removeNode","insertData","needsReposition","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPosOutsideElmAfterDelete","findCaretPositionForwardsFromElm","findCaretPositionForward","findCaretPositionBackwardsFromElm","findCaretPositionBackwards","findCaretPosition","setSelection$1","deleteElement$2","moveCaret","preserveEmptyCaret","afterDeletePos","rawNode","normalizedAfterDeletePos","afterDeletePosOpt","prevTextOpt","nextTextOpt","deleteNormalized","isInlineElement","paddEmptyBlock","paddPos","strongRtl","isInlineTarget","hasStrongRtl","findRootInline","findInlineParents","normalizePosition","normalizeForwards","normalizeBackwards","execCommandIgnoreInputEvents","inputBlocker","execNativeDeleteCommand","execNativeForwardDeleteCommand","isTextBlockOrListItem","getParentBlock$2","isBeforeRoot","paddEmptyBody","moveSelection","no_selection","willDeleteLastPositionInElement","fromPos","normalizedFirstPos","normalizedLastPos","normalizedFromPos","deleteRangeContents","deleteContents","lastBlock","additionalCleanupNodes","getTableCells","getTable$1","tableCellRng","deleteAction","singleCellTable","fullTable","partialTable","multiTable","getClosestCell$1","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","getTableSelectionFromCellRng","tableSelection","getTableSelections","selectionDetails","isSameTable","sameTableSelection","endCell","startTableSelection","getCellRangeFromStartTable","endTableSelection","getCellRangeFromEndTable","getCellIndex","unselectCells","endTable","otherContentRng","getActionFromRange","isRootFromElement","optCellRng","getCellRng","isStartInTable","isEndInTable","isStartTableParentOfEndTable","isEndTableParentOfStartTable","isMultiTable","selectionInTableWithNestedTable","getTableDetailsFromRange","isSingleCellTable","isSingleCellTableContentSelected","startTableSelectedCells","endTableSelectedCells","handleMultiTable","handleSingleTable","cleanCells","deleteContentInsideCell","isFirstCellInSelection","insideTableRng","deleteCellContents","collapseAndRestoreCellSelection","selectedNode","emptySingleTableCells","outsideDetails","editorRng","cellsToClean","outsideBlock","getOutsideBlock","startInTable","emptyBlock","handleEmptyBlock","endPointCell","emptyMultiTableCells","startTableCells","endTableCells","betweenRng","startTableCellsToClean","endTableCellsToClean","deleteTableElement","getParentCell","getParentCaption","emptyElement","isNearTable","deleteCaret$3","fromCell","deleteBetweenCells","deleteCaretCells","isBeforeOrAfterTable","fromCaption","isDeleteOfLastCharPos","emptyCaretCaption","toCaption","validateCaretCaption","deleteCaretInsideCaption","deleteCaretCaption","backspaceDelete$b","deleteCellRange","deleteCaptionRange","deleteTableRange","deleteRange$3","getContentEditableRoot$1","internalAttributesPrefixes","each$9","ElementUtils","internalAttributes","isAttributeInternal","attribs","compareObjects","obj1","obj2","isHeading","matchNode$1","nodeFilters","attributeFilters","nl","ai","runFilters","matchRecord","filteringAttributes","findMatchingNodes","paddEmptyNode","pad_empty_with_br","astNode","hasOnlyChild","nonEmptyElements","isPadded","findClosestEditingHost","editableNode","removeOrUnwrapInvalidNode","originalNodeParent","childNode","cleanInvalidNodes","onCreate","textBlockElements","nonSplittableElements","isSplittableElement","newParent","hasClosest","isSummary","newEndPos","normalizeBlockSelectionRange","isListFragment","hasOnlyOneChild$1","isPaddingNode","isPaddedEmptyBlock","isEmptyFragmentElement","trimListItems","isPadding","getParentLi","findLastOf","newCaretPos","insertAtCaret$1","domFragment","cleanupDomFragment","toDomFragment","liTarget","liElms","isAt","caretWalker","newPosNode","findFirstIn","insertBefore$2","insertAfter$2","beforeRng","afterRng","cloneContents","getSplit","insertMiddle","mergeableWrappedElements","isTableCell","insertHtmlAtCaret","bookmarkHtml","preserve_zwsp","caretElement","canHaveChildren","isTableCellContentSelected","deleteSelectedContent","parserArgs","isParentBlockLi","isPastingSingleElement","isWrappedElement","isPastingInTheSameBlockTag","isPastingInContentEditable","shouldPasteContentOnly","markFragmentElements","_selectionOverrides","showBlockCaretContainer","notHeadingsInSummary","markerNode","findMarkerNode","editingHost","toExtract","getNodeFilters","getAttributeFilters","validInsertion","textInlineElements","elementUtils","fragmentSelector","fragments","hasOneChild","isConditionalNonInheritableStyle","hasConditionalNonInheritableStyles","isOverridden","oldStyles","newStyles","overriddenByAllChildren","identicalToParent","conflictWithInsertedParent","nodeStyleProps","parentNodeStyleProps","valueMismatch","parentValue","nodeStyleProp","propExists","longhandProps","hasStyleConflict","reduceInlineTextElements","nextRng","parentEditableElm","isCell","isPartOfFragment","findNextCaretRng","moveSelectionToMarker","lastChildPrevSibling","trimBlockTrailingBr","trimBrsFromTableCell","caretParent","updateCaret","isTreeNode","setEditorHtml","noSelection","isEq$3","matchesUnInheritedFormatSelector","inherit","matchParents","similar","matchedNode","matchNode","matchName","matchItems","matchAttributes","onmatch","expectedValue","isEmptyValue","match$2","ZWSP","findFirstTextNode","createCaretContainer","fill","removeCaretContainerNode","trimZwspFromCaretContainer","removeCaretContainer","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","formatNode","normalizeNbsps","normalizeNbspsBetween","isComposing","removeCaretFormat","hasContentAfter","expandedRng","parentsAfter","newCaretContainer","allBrs","getLastChildren$1","removeTrailingBr","insertCaretContainerNode","cleanedFormatNode","validFormats","matchedFormats","formatNames","matchSimilar","isVariableValue","fieldValues","isVariableFormatName","matchAllOnNode","fmtName","otherFormatName","filterObj","validKey","fmt1","filteredFmt1","fmt2","filteredFmt2","equal$1","areSimilarFormats","clonedFormatNode","cleanFormatNode","caretTextNode","createCaretFormat","innerMost","replaceWithCaretFormat","isFormatElement","inlineElements","postProcessHooks","isPre","preBlocks","pre","hasPreSibling","pre1","pre2","sPre2","joinPre","addPostProcessHook","listItemStyles","getExpandedListItemFormat","hasListStyles","isRngStartAtStartOfElement","isRngEndAtEndOfElement","isEditableListItem","getPartiallySelectedListItems","each$8","isElementNode","findElementSibling","mergeSiblingsNodes","isPrevEditable","isNextEditable","tmpSibling","mergeSiblings","merge_siblings","processChildElements","hasStyle","applyStyle","unwrapEmptySpan","removeResult","MCE_ATTR_RE","each$7","isEq$2","isChildOfInlineParent","lastIdx","normalizeTableSelection","isTableCellOrRow","wrapWithSiblings","rootBlockElm","forcedRootBlock","list_block","isMixedFormat","processFormatAttrOrStyle","removeEmptyStyleAttributeIfNeeded","compareNode","stylesModified","styleName","styleValue","normalizedStyleValue","remove_similar","removeNodeFormatInternal","ceFalseOverride","links","isColorFormatAndAnchor","preserveAttributes","preserve_attributes","attrsToPreserve","valueOut","removeNodeFormatFromClone","newName","removeFormat$1","splitToFormatRoot","formatRoot","findFormatRoot","lastClone","firstClone","formatRootParent","mixed","wrapAndSplit","removeFormatOnNode","removeNodeFormat","currentNodeMatches","textDecoration","isRemoveBookmarkNode","removeRngStyle","liFmt","removeListStyleFormats","removeFormatInternal","each$6","each$5","applyStyles","styleVal","applyFormatAction","setElementFormat","onformat","applyNodeStyle","found","createWrapElement","wrapElm","applyRngStyle","nodeSpecific","currentWrapElm","lastContentEditable","isWrappableNoneditableElm","contentEditableValue","isEditableDescendant","validBRParentElements","hasCaretNodeSibling","canFormatBR","isWrappingBlockFormat","isMatchingWrappingBlock","isValidBlockFormatForNode","isNonWrappingBlockFormat","canRenameBlock","isValidWrapNode","isCaret","isCorrectFormatForNode","canWrapNode","childCount","isEmptyTextNode$1","getChildCount","childElement","mergeStyles","clear_child_styles","clearChildStyles","mergeWithChildren","merge_with_parents","mergeWithParents","backgroundColor","hasFontSize","mergeBackgroundColorAndFontSize","processTextDecorationsAndColor","parentTextDecoration","mergeTextDecorationsAndColor","inverseTagDescendants","mergeSubSup","wordcharRegex","applyCaretFormat","fake","getFullySelectedBlocks","getFullySelectedListItems","postProcess$1","applyFormat$1","hasVars","fallbackElement","matchingNode","matchingFormat","updateAndFireChangeCallbacks","registeredCallbacks","runIfChanged","withSimilar","withoutSimilar","withVars","explode$1","create$8","filters","addFilter","getFilters","removeFilter","newCallbacks","addFilters","domParser","convert_fonts_to_spans","fontSizes","face","removeAttrs","addFontToSpansFilter","font_size_legacy_values","convertToSTag","addStrikeFilter","parseDataUri","uri","base64Encoded","extractedData","extractBase64Data","decodeURIComponent","buildBlob","atob","Uint8Array","Blob","blobToDataUri","reader","FileReader","onloadend","readAsDataURL","count$1","processDataUri","dataUri","base64Only","generateBlobInfo","createBlobInfo$1","blobCache","blobInfo","dataUriToBlobInfo","getByData","hostCaptureRegex","extractHost","ms","sandboxIframe","iframeNode","exclusions","isMimeType","mime","create$7","each$4","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","safeSvgDataUrlElements","isInvalidUri","decodedUri","encodedUri","decodeUri","allow_html_data_urls","allowSvgDataUrls","blockSvgDataUris","URI","uriComponents","isDomSafe","pathname","baseUri","isProtocolRelative","toAbsPath","urlMatch","userInfo","setPath","pathMatch","getURI","toRelative","relativeUri","tu","uu","toRelPath","noHost","absoluteUri","defaultPort","breakPoint","normalizedBase","nb","normalizedPath","baseParts","pathParts","outPath","noProtoHost","filteredUrlAttrs","internalElementAttr","processNode","allow_conditional_comments","lcTagName","isInternalElement","bogus","hasNone","shouldKeepAttribute","isRequiredAttributeOfInternalElement","isBooleanAttribute","filterAttributes","setupPurify","namespaceTracker","purify$1","track","processAttr","mkSanitizeNamespaceElement","namespaceType","xlinkAttrs","sanitizeSvgElement","allowedEncodings","allow_mathml_annotation_encodings","encoding","sanitizeMathmlElement","extend$1","transferChildren","nativeParent","nsSanitizer","nativeChild","DomParser","nodeFilterRegistry","attributeFilterRegistry","defaultedSettings","root_name","sanitizer","currentScope","scopeNode","createNamespaceTracker","sanitizeHtmlElement","mimeType","getPurifyConfig","sanitizeNamespaceElement","_mimeType","getSanitizer","removeNodeFilter","removeAttributeFilter","isWrappableNode","rootName","isSpecialRoot","parseAndSanitizeWithContext","whitespacePre","whitespacePost","textRootBlockElements","allWhiteSpaceRegExp","startWhiteSpaceRegExp","endWhiteSpaceRegExp","hasWhitespaceParent","isAtEdgeOfBlock","neighbour","isRootContent","isLineBreakNode","isNodeEmpty","isTextRootBlockEmpty","isPaddedWithNbsp","whitespaceCleaner","invalidFinder","findInvalidChildren","matchFinder","preprocessors","postprocessors","traverseOrder","walkTree","topLevelChildren","otherChildren","rootBlockName","forced_root_block","getRootBlockName","rootBlockNode","rootBlock","forced_root_block_attrs","addRootBlocks","addNoOpener","newRel","appendRel","allow_unsafe_link_target","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","blob_cache","processImage","inputSrc","isInternalImageSource","isBogusImage","blobUri","registerBase64ImageFilter","sandbox_iframes","sandboxIframesExclusions","sandbox_iframes_exclusions","convert_unsafe_embeds","sandboxIframes","getEmbedType","embed","createSafeEmbed","inline_styles","withSerializedContent","fireEvent","parserSettings","serializedContent","serializeContent","eventArgs","makeParserSettings","preProcessGetContent","fireBeforeGetContent","postProcessGetContent","processedEventArgs","preProcessSetContent","fireBeforeSetContent","postProcessSetContent","tableModel","tableRow","cellPosition","cellExists","findElementPos","extractRows","sx","sy","ey","toDom","tableElement","tableBody","createDomTable","modelRowsToDomRows","getWrapElements","commonAnchorContainer","wrapElements","listWrappers","_li","findParentListContainer","listCont","listElm","listStyles","_style","getFullySelectedListWrappers","allWrappers","directListWrappers","emptyFragment","getTableFragment","selectedTableCells","getParentTable","fullTableModel","y2","x2","fillout","skipCellsX","subTable","subsection","sectionedTableModel","read$3","innerElm","getFragmentFromRange","getSelectionFragment","isCollapsibleWhitespace","getInnerText","bin","getOuterHtml","insertAt","removeAt","applyDiff","vDown","vUp","buildScript","start1","end1","start2","end2","getMiddleSnake","diag","i2","buildSnake","lazyTempDocument","createFromEditor","hasIframes","beforeBookmark","applyToEditor","getLevelContent","getCleanLevelContent","isEq$1","level1","level2","hasEqualContent","hasEqualCleanedContent","isUnlocked","locks","setTyping","typing","endTyping","makePlainAdaptor","bindEvents","beforeChange","beforeChange$1","currentLevel","newLevel","lastLevel","bm","customUndoRedoLevels","setDirty","addUndoLevel$1","undo","undo$1","redo","redo$1","clear$1","hasUndo","hasUndo$1","hasRedo","hasRedo$1","transact$1","ignore$1","callback1","callback2","extra$1","matchAll","matchedFormatNames","checkedMap","rawElm","registeredFormatListeners","formatChangeItems","toAppendTo","addListeners","removeListeners","formatChangedInternal","getContentInternal","trimmedHtml","setContentTree","padd","forcedRootBlockName","setContentString","setContentInternal","matchedElm","addVisualInternal","defaultedArgs","setupArgs$3","updatedArgs","parentBlockOpt","contextNodeName","getContextNodeName","rangeContentClone","nonRenderedText","parentBlockText","textIndex","tmpElm","getSerializedContent","extractSelectedContent","getSelectedContentInternal","addDecoration","removeDecoration","isRtc","getRtcInstanceWithFallback","rtcInstance","getRtcInstanceWithError","mergeAndNormalizeText","outerNode","outerElm","oldLength","innerTextNode","walkPastBookmark","normalizeTextIfRequired","deleteFromCallbackMap","isAttachedToDom","EditorSelection","selectedRange","explicitRange","selectorChangedWithUnbind","selectorChangedData","currentSelectors","findMatchingNode","matchedSelectors","SelectorChanged","setupArgs$2","cleanedContent","contextBlock","contextArgs","cleanContent","prevText","nextText","rngSetContent","createContextualFragment","setContent$1","getRng$1","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","START_TO_START","END_TO_END","isValidRange","anchorRange","focusRange","getSelectedContent","getContent$1","bookmarkManager","compareEndPoints","fakeSelectedElements","setNode","endElm","selectorChanged","getScrollContainer","scrollContainer","scrollElementIntoView","placeCaretAt","controlSelection","htmlParser","DomSerializerImpl","remove_trailing_brs","internalName","hasChildren","preserve_cdata","lastParent","hasEventListeners","shouldFireEvent","oldDoc","clonedNode","impl","firePreProcess","preProcess$1","process$1","getHtmlFromNode","brNode1","brNode2","trimTrailingBr","parseHtml","serializeNode","outArgs","firePostProcess","postProcess","toHtml","addRules","setRules","DomSerializer","domSerializer","setupArgs","setContent$2","removedOptions","deprecatedOptions","removedPlugins","deprecatedPlugins","getMatchingOptions","searchingFor","settingNames","setting","getRemovedOptions","getDeprecatedOptions","getMatchingPlugins","pluginNames","plugin","getRemovedPlugins","getDeprecatedPlugins","getPluginDescription","replacedWith","DOM$8","safeDestroy","iconPack","CreateIconManager","propName","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","NotificationManager","notifications","getImplementation","theme","unimplemented","getTopNotification","closeNotification","otherNotification","isEditorAttachedToDom","addNotification","getNotifications","serviceMessage","isF12","notificationApi","WindowManager","WindowManagerImpl","funcBind","fireCloseEvent","otherDialog","storeSelectionAndOpenDialog","openDialog","fireOpenEvent","addDialog","windowManagerImpl","displayNotification","notificationManager","displayError","logError","createLoadError","initError","toContentSkinResourceName","transformToUrls","cssLinks","contentCssFile","isBundledCssSkinName","isContentCssSkinName","ImageScanner","uploadStatus","cachedPromises","images","getAllImages","isUploaded","promises","imageSrc","imageInfo","newPromise","invalidDataUri","getByUri","uriType","blobUriToBlob","imageToBlobInfo","UploadStatus","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","isPending","markPending","markUploaded","removeFailed","Uploader","pendingPromises","defaultHandler","xhr","XMLHttpRequest","withCredentials","credentials","upload","onprogress","json","responseText","path1","path2","basePath","FormData","filename","send","uploadHandler","handlerSuccess","handlerFailure","resolvePending","blobInfos","openNotification","pendingUploadBlobInfo","uploadBlobInfo","uploadBlobs","createUploader","EditorUpload","toBlobInfo","rnd","seed","createObjectURL","findFirst","cachedBlobInfo","removeByUri","revokeObjectURL","BlobCache","uploader","imageScanner","urlFilters","aliveGuard","replaceString","replaceImageUrl","targetUrl","replacementUrl","replacementString","replaceUrlInUndoStack","uploadImages","scanForImages","imageInfos","imagesToRemove","shouldDispatchChange","filteredResult","uploadInfo","convertURL","replaceImageUriInView","uploadError","uploadUri","sugarElement","parentOpt","isEmptyForPadding","addPaddingToEmpty","dispatchChange","uploadImagesAuto","isValidDataUriImage","imgElm","resultItem","replaceBlobUris","editorUpload","source_view","genericBase","cellBase","cellFormats","tablecellbackgroundcolor","tablecellverticalalign","tablecellbordercolor","borderColor","tablecellclass","tableclass","tablecellborderstyle","borderStyle","tablecellborderwidth","borderWidth","each$3","isPreviewItem","parsedSelectorToHtml","ancestry","sItem","wrapInHtml","parentCandidate","ancestorName","parentRequired","elmRule","getRequiredParent","siblingElm","parentSiblings","parseSelectorItem","$0","$3","$4","previewCss","previewStyles","removeVars","previewFrag","previewElm","rawParentFontSize","parentFontSize","Formatter","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","textAlign","float","marginLeft","marginRight","aligncenter","alignright","alignjustify","bold","fontWeight","italic","fontStyle","underline","strikethrough","strike","forecolor","hilitecolor","fontname","lineheight","lineHeight","fontsize_class","blockquote","subscript","superscript","_fmt","_itemName","removeformat","FormatRegistry","formatChangeState","setup$s","disableCaretContainer","setup$v","nodeOrRange","setup$u","toggleFormat","matchFormat","closestFormat","matchAllFormats","matchNodeFormat","canApplyFormat","shouldIgnoreCommand","UndoManager","addUndoLevel","isFirstTypedCharacter","addNonTypingUndoLevel","isMeta","isDirty","modKey","inputType","isInsertFromPasteOrDrop","addKeyboardShortcuts","nonTypingKeycodes","placeholderAttr","isKeyboardEvent","isDeleteEvent","blockBoundary","getBlockPosition","containerElm","blockPosition","getClosestHost","extractChildren","getChildrenUntilBlockBoundary","removeEmptyRoot","nestedBlockMerge","toBlock","insertionPoint","isEmptyBefore","sidelongBlockMerge","getInlineToBlockDescendants","newFromBlockDescendants","trimBr","mergeBlockInto","parentsAndSelf$1","findInsertionPoint","getInsertionPoint","mergeBlocks","block1","block2","backspaceDelete$a","fromBlockPos","toBlockPos","blockPos","lastPositionInBlock","skipLastBr","isDifferentBlocks","hasSameHost","isValidBlock","hasValidBlocks","isNotAncestorial","readFromRange","isRawNodeInTable","deleteRange$2","noPrevious","noNext","isSelectionInTable","isEverythingSelected","emptyEditor","deleteRangeMergeBlocks","backspaceDelete$9","_forward","showCaret","getNodeRange","renderRangeCaret","caretPositionNode","caretPositionBeforeNode","ceRoot","renderCaretAtRange","isBeforeBoundary","isAfterBoundary","deleteContentAndShowCaret","peekCaretPosition","caretRange","deleteRange","trimEmptyTextNode","backspaceDelete$8","getNextPosFn","isBeforeFn","nextCaretPosition","normalizedNextCaretPosition","deleteBoundaryText","getEdgeCefPosition","atStart","isCefAtEdgeSelected","DeleteAction","moveToElement","moveToPosition","findCefPosition","isDeleteFromCefDifferentBlocks","toCefElm","blockElm","deleteEmptyBlockOrMoveToCef","getAncestorCe","caretLocation","isAtContentEditableBlockCaret","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","getContentEditableAction","hideFakeCaret","deleteElement$1","paddEmptyElement","backspaceDelete$7","isTextEndpoint","endpoint","isElementEndpoint","createMarker","getEndpoint","Range","backspaceDelete$6","startBlock","endBlock","backspaceDelete$5","deleteCaret$2","isText$2","startsWithCaretContainer","endsWithCaretContainer","createZwsp","insertInline","insertBefore$1","insertAfter$1","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","caretNode","renderCaret","evaluateUntil","fns","Location","rescope$1","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","start$1","isValidLocation","readLocation","getName","outside","betweenInlines","fromInline","toInline","hasSameParentBlock","skipNoMovement","fromLocation","toLocation","location2","location1","findLocationSimple","moveRel","modify","BreakType","walk$1","getBreakType","currentPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastRect","newRect","lastDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","getPositionsAbove","getPositionsBelow","isAtFirstLine","isAtLastLine","getClosestPositionAbove","getClosestPositionBelow","isContentEditableFalse$5","distanceToRectLeft$1","distanceToRectRight$1","findClosestClientRect","oldClientRect","oldDistance","newDistance","getNodeClientRects","toArrayWithNode","VDirection","walkUntil","isAboveFn","isBeflowFn","targetClientRect","upUntil","Up","downUntil","Down","getLastClientRect","isAboveLine","lineNumber","aboveLineNumber","isLine","isLineNumber","moveToRange","renderRangeCaretOpt","moveHorizontally","isBefore","isAfter","rangeIsInContainerBlock","moveVertically","caretClientRect","linePositions","nextLinePositions","nextLineRect","dist1","dist2","caretPositions","isBelowFn","positionsUntil","closestNextLineRect","getLineEndPoint","lineInfo","moveToLineEndPoint$3","setCaretPosition","setSelected","renderCaretLocation","findLocation","getPositionFromRange","findLocationTraverse","findLocation$1","move$3","moveWord","_caret","hasSelectionModifyApi","moveByWord","setupSelectedState","isInlineTarget$1","inlineBoundaries","selectedInlines","targetInlines","toggleInlines","caretValue","isAtZwsp","safeRemoveCaretContainer","inlines","_inline","renderInsideInlineCaret","moveNextWord","movePrevWord","moveToLineEndPoint$2","linePoint","outsideLoc","setCaretLocation","deleteFromTo","rangeFromPositions","backspaceDelete$4","rescope","toPosition","hasOnlyTwoOrLessPositionsLeft","backspaceDeleteCollapsed","getParentsUntil","hasOnlyOneChild","getFormatNodes","parentInlines","isFormatElement$1","getFormatNodesAtStart","getParentInlines","deleteCaret$1","hasMultipleChildren","getParentInlinesUntilMultichildInline","deleteLastPosition","createCaretFormatAtStart","isBrInEmptyElement","createCaretFormatAtStart$1","rangeStartsAtTextContainer","requiresDeleteRangeOverride","rangeStartsAtStartOfTextContainer","startParent","rangeStartParentIsFormatElement","endParent","isEqualNode","rangeStartAndEndHaveSameParent","rangeEndsAtEndOfEndContainer","rangeEndsAtEndOfStartContainer","rangeEndsAfterEndOfStartContainer","rangeEndsAtOrAfterEndOfStartContainer","backspaceDelete$3","updateFormats","missingFormats","updateCaretFormat","deleteRange$1","refreshCaret","hasAncestorInlineCaret","hasAncestorInlineCaretAtStart","requiresRefreshCaretOverride","deleteElement","backspaceDelete$2","isNearMedia","deleteCaret","parseIndentValue","getIndentStyleName","useMargin","canOutdent","getBlocksToIndent","indentStyleName","intentValue","validateBlocks","isListComponent","parentIsListComponent","indentUnit","indentValue","parsedValue","indentElement","outdent","backspaceDelete$1","findAction","isBlockElement","isValidTarget","shouldRemoveTextNode","createRootBlock","insertEmptyLine","checkClassName","replaceMatchWithSpan","prevChar","findStartTagIndex","isValidContent","nonEditableRegExps","re","blockCaretContainer","handleBlockContainer","findBlockCaretContainer","isContentEditableFalse$4","exitPreBlock","getVisualCaretPosition$1","moveH$2","moveToCeFalseHorizontally","getHorizontalRange","flipDirection","moveV$4","moveToCeFalseVertically","getVerticalRange","moveToLineEndPoint$1","selectToEndPoint","curRng","moveV$3","getClosestTargetBlock","isAtFirstOrLastLine","moveCaretToNewEmptyLine","moveV$2","summary","move$2","baseKeyPattern","matchesEvent","defaultPatterns","match$1","executeWithDelayedAction","defaultDelayedPatterns","matchDelayed","moveH$1","moveV$1","moveToLineEndPoint","CellLocation","isEligible","isContentEditableFalse$3","getClosestCell","getYAxisValue","isTargetCorner","corners","tds","deflate","getCorners","corner","newCorner","oldCorner","oldDist","newDist","findClosestCorner","getClosestCellAbove","getClosestCellBelow","isAtTableCellLine","startsWithWrapBreak","startsWithBrBreak","breakPos","hasNextBreak","isAtFirstTableCellLine","isAtLastTableCellLine","navigateHorizontally","_td","isCaretAtStartOrEndOfTable","getTable","insertFn","renderBlock","navigateVertically","findClosestPositionInAboveCell","getClosestAbovePosition","findClosestPositionInBelowCell","getClosestBelowPosition","mover","moveH","moveV","tabGo","_current","getCellFirstCursorPosition","tabForward","tabBackward","rootElements","DOM$7","alwaysNext","textBefore","scanLeft","scanRight","repeatLeft","isWhitespace","stripTrigger","initRange","includeWhitespace","firstChar","findTrigger","toLast","isText$1","toLeaf","lookupWithContext","getDatabase","startText","autocompleters","lookupByTrigger","_element","isPreviousCharContent","isStartOfWord","ac","fieldStrings","autocompleterSchema","createAutocompleter","triggers","datasetValues","dv","setup$k","activeAutocompleter","uiActive","fireAutocompleterEnd","getAutocompleters","newContext","getTriggerContext","doLookup","lookupInfo","matchLength","commenceIfNecessary","fireAutocompleterUpdate","fireAutocompleterStart","readActiveRange","selRange","innerRange","outerRange","startComparison","endComparison","isRangeInsideOrEqual","editorCommands","setupEditorInput","emptyNodeContents","isEntireNodeSelected","getParentDetailsElementAtPos","isInDetailsElement","setCaretToPosition","moveCaretToDetailsPos","shouldPreventDeleteIntoDetails","granularity","parentDetailsAtCaret","inEmptyParentBlock","isFirstBlock","isLastBlock","parentDetailsAtNewPos","shouldPreventDeleteSummaryAction","detailElements","detailsElements","startInSummary","startSummary","endInSummary","isPartiallySelectedDetailsElements","startDetails","endDetails","isPartialDelete","isCaretInTheEndOf","isCaretAtEndOfSummary","isCaretInLastPositionInBody","isCaretInTheBeginningOf","isCaretAtStartOfSummary","isCaretInFirstPositionInBody","getDetailsElements","shouldPreventDeleteAction","appendAllChildNodes","handleDeleteActionSafari","createAndFireInputEvent","specifics","currentTarget","eventPhase","AT_TARGET","originalTarget","explicitOriginalTarget","isTrusted","cancelable","InputEvent","fireInputEvent","fireBeforeInputEvent","platform$2","isMacOSOriOS","moveToCaretPosition","firstNonWhiteSpaceNodeSibling","getEditableRoot","editableRoot","getParentBlock$1","setForcedBlockAttrs","forcedRootBlockAttrs","attrStyles","attrClassesOpt","attrClasses","currentClassesOpt","currentClasses","filteredClasses","newClasses","appliedAttrs","remainingAttrs","createNewBlock","keepStyles","newBlockName","parentBlockName","hasParent","isListBlock","isListItem","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","isEmptyAnchor","containerAndPreviousSiblingName","canSplitBlock","normalizeZwspOffset","blockbreak","isAfterLastNodeInContainer","isCef","collapsedAndCef","createNewBlock$1","isCaretAtStartOrEndOfBlock","normalizedOffset","containerAndNextSiblingName","insertNewBlockAfter","containerBlockName","optionValue","shouldEndContainer","startNodeName","startNodeParent","wrapSelfAndSiblingsInDefaultBlock","isAtDetailsEdge","isLastEmptyBlockInDetails","getDetailsRoot","insertNewLine","containerParent","parentBlockStyles","hasFirstChild","previousChildren","insert$4","parentBlockParent","afterTable","parentBlockSugar","prevBrOpt","includeZwspInRange","trimZwsp","trimLeadingLineBreaks","firstChilds","trimInlineElementsOnLeftSideOfBlock","addBrToBlockIfNeeded","fakeEventName","moveSelectionToBr","brElm","extraBr","insertBrBefore","insertBrAfter","hasBrAfter","isAnchorLink","isInsideAnchor","insertBrOutsideAnchor","linebreak","anchorLocation","readInlineAnchorLocation","isControlKey","hasRightSideContent","insertBrAtCaret","newLineAction","shouldBlockNewLine","_shiftKey","shouldBlockNewLine$1","inListBlock","requiredState","isListItemParentBlock","getParentBlockName","inCefBlock","inPreBlock","shouldPutBrInPre","inBrContext","shouldInsertBr","_editor","canInsertIntoEditableRoot","rootEditable","isInRootWithEmptyOrCEF","isCefOpt","predicates","insertBreak","execEditorDeleteCommand","logicalAction","platform$1","isIOSSafari","handleEnterKeyEvent","isPageUpDown","setNodeChangeBlocker","blocked","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","insertSpaceOrNbspAtSelection","locationToCaretPosition","checkPos","insertInlineBoundarySpaceOrNbsp","insertSpaceInSummaryAtSelectionOnFirefox","domUtils","insertSpaceOrNbspAtPosition","tableTabNavigation","setup$e","setup$m","executeKeydownOverride$4","setup$l","isBackspaceKeydown","unmodifiedGranularity","getModifiedGranularity","isWord","applyAction","executeKeydownOverride$3","executeKeyupOverride","setup$j","iOSSafariKeydownBookmark","koreanCharRegex","isCaretAfterKoreanCharacter","iOSSafariKeydownOverride","iOSSafariKeyupOverride","setup$i","executeKeydownOverride$1","normalizeNbspsInEditor","setup$g","executeKeydownOverride","setup$c","executeKeydownOverride$2","setup$h","executeKeyupAction","setup$f","NodeChange","lastPath","nativeRng","fakeRng","isSameElementPath","currentPath","imageId","eventId","mkSetEventFn","transfer","setDragstartEvent","setDropEvent","setDragendEvent","isInDragStartEvent","modeId","mkSetModeFn","setMode$1","setReadWriteMode","setReadOnlyMode","setProtectedMode","checkMode","expectedMode","isInReadWriteMode","isInProtectedMode","validDropEffects","validEffectAlloweds","createDataTransfer","dataTransferImpl","DataTransfer","dropEffect","effectAllowed","allowed","itemsImpl","normalizeItems","setDragImage","imageData","setHtmlData","internalMimeType","internalHtmlMime","internalMark","isMarked","pasteBinDefaultContent","isPasteBin","isDefaultPasteBinContent","trimHtml","s1","s2","processResult","cancelled","pasteHtml$1","isAbsoluteUrl","linkSelection","pasteHtmlFn","createLink","insertImage","isImageUrl","createImage","createIdGenerator","createPasteDataTransfer","doPaste","shouldSimulateInputEvent","preProcessArgs","firePastePreProcess","filteredContent","preProcess","tempBody","postProcessArgs","firePastePostProcess","postProcessFilter","filterContent","doPasteAction","smartInsertContent","pasteHtml","internalFlag","pasteText","encodedText","rootTag","rootAttrs","tagOpen","openContainer","tagClose","paragraphs","toBlockElements","getDataTransferItems","contentType","hasContentType","clipboardContent","hasHtmlOrText","pasteImageData","clipboardData","kind","getAsFile","allowedExtensions","extension","lowerExt","mimeOverrides","jpg","jpe","jfi","jif","jfif","pjpeg","pjp","getImageMimeType","getImagesFromDataTransfer","fileResults","imageItem","existingBlobInfo","useFileName","extractFilename","createBlobInfo","pasteImage","insertClipboardContent","plainTextMode","isInternal","isPlainTextHtml","isPlainText","isAbsoluteUrl$1","ignoreElements","registerEventsAndFilters","pasteBin","pasteFormat","keyboardPastePlainTextState","isKeyboardPasteEvent","isBrokenAndroidClipboardEvent","getLastRng","registerEventHandlers","isWebKitFakeUrl","isDataUri","isPasteInsert","registerDataImageFilter","setClipboardData","setHtml5Clipboard","contenteditable","offscreenRange","hasSelectedContent","isTableSelection","getCaretRangeFromEvent","setFocusedRange","rgbRegExp","rgbToHex","removeWebKitStyles","webKitStylesOption","webKitStyles","outputStyles","compareInput","outputStyle","draggingInternallyState","lastRngCell","pasteBinElm","create$6","pasteBinClone","copyAndRemove","pasteBinClones","dirtyWrappers","cleanWrapper","PasteBin","filterFunc","addPreProcessFilter","togglePlainTextPaste","setup$9","hasImage","dropContent","plainTextContent","isPlainTextFileUrl","internalContent","needsInternalDrop","parentTransparent","needsCustomInternalDrop","isInternalDrop","trimmedContent","hasNoSummary","brokenDetailElements","setupSummaryDeleteByDragFix","isContentEditableFalse$2","getClosestCef","findEdgeCaretCandidate","onTripleClickSelect","startRng","clickNode","getClosestScope","cef","findClosestBlockRange","FakeCaretPosition","distanceToRectLeft","distanceToRectRight","splitRectsPerAxis","prevRect","boundingClientRectFromRects","isInsideY","boundingRect","vertical","r1","r2","overlap","overlapY","collidesY","horizontalDistance","_y","closestChildCaretCandidateNodeRect","findCloserTextNode","caretCandidateRect","findClosestCaretCandidateNodeRect","distance","sortedRects","sndClosest","tryFindSecondBestTextNode","horizontalRects","verticalRects","above","below","closestFakeCaretCandidate","prevScope","childNodesWithoutGhost","uncheckedChildren","traverseUp","closestCaretCandidateNodeRect","Before","After","clientInfo","getAbsolutePosition","getTargetProps","makeDragEvent","dataTransferForDispatch","originalMode","getDragImage","getEvent","setEvent","cloneDataTransfer","makeDataTransferCopyForDragEvent","BUBBLING_PHASE","CAPTURING_PHASE","NONE","movementX","movementY","offsetX","offsetY","initUIEvent","initMouseEvent","makeDndEvent","makeDndEventFromMouseEvent","isContentEditableFalse$1","createGhost","clonedElm","scrollEditor","behavior","scrollRight","scrollUp","scrollDown","removeElement","dispatchDragEvent","throttledPlaceCaretAt","caretInfo","state_","dragging","mouseEventOriginatedFromWithinTheEditor","targetPos","relX","applyRelPos","calculatePosition","bodyPosition","getBodyPosition","scrollPosition","getScrollPosition","mousePosition","iframePosition","inlineScroll","iframeScroll","getBodyScroll","getMousePosition","calc","bodyElm","mouseY","mouseX","outerMouseY","outerMouseX","moveGhost","stopDragging","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","isLeftMouseButtonPressed","ceElm","isDraggable","elmPos","relY","dragHandler","dropHandler","dragElement","isValidDropTarget","getRawTarget","dropTarget","removeElementWithPadding","getHtmlData","dragEndHandler","getContentEditableRoot","SelectionOverrides","realSelectionId","isFakeSelectionTargetElement","isWithinCaretContainer","isRangeInCaretContainer","normalizeVoidElementSelection","setElementSelection","afterNode","targetClone","realSelectionContainer","setupOffscreenSelection","nodeElm","selectElement","removeElementSelection","contentEditableRoot","transposedPoint","isInsideElementContentArea","isXYInContentArea","closestContentEditable","isFakeSelectionElement","preventFileDrop","preventFileDropIfUIElement","editorRoot","eventNames","blockUnsupportedFileDrop","renderFocusCaret","getNormalizedTextOffset","generatePath","generatePathRange","resolvePath","nodePath","optNode","resolvePathRange","cleanEmptyNodes","deleteRng","getParentBlock","resolveFromDynamicPatterns","patternSet","beforeText","dynamicPatterns","dynamicPatternsLookup","inlinePatterns","getBeforeText","newMarker","rangeFromMarker","markerPrefix","pathRange","textEnd","textStart","startParentNode","removeMarker","isReplacementPattern","findPatternStartFromSpot","startPattern","patternContent","searchText","startEndIndex","startPatternIndex","nextSpot","findPattern$3","normalizedMatches","endPathRng","endRng","resultsOpt","findPatternsRec","remainingPatterns","requireGap","startRange","findPatternStart","startPathRng","generatePathRangeFromRange","patternsWithoutCurrent","applyPattern$2","patternRange","findPatterns$2","matchesWithSortedPatterns","hasSameMatches","sortedMatch","getBestMatches","applyMatches$2","matchesWithMarkers","matchesWithEnds","endMarker","startMarker","addMarkers","markerRange","applyReplacementPattern","markerEndRange","markerStartRange","patternMarker","applyPatternWithContent","stripPattern$1","textAfter","createApplyPattern","stripPattern","formatSet","isBlockFormatName","findPattern$2","sortedPatterns","sortPatterns","createFindPatterns","findPattern","skipFullMatch","applyPattern$1","findPattern$1","findPatterns$1","applyPattern","findPatterns","checkKeyEvent","codes","charCodes","keyCodes","getPatternSet","createPatternSet","queryCommandSupported","hasDynamicPatterns","hasTextPatternsLookup","dynamicPatternSet","inlineMatches","blockMatches","getMatches$1","insert$5","applyMatches$1","getMatches","applyMatches","handleBlockPatternOnSpace","handleInlineTrigger","handleInlineKey","charCode","Quirks","isGecko","isWebKit","setEditorCommandState","selectAll","documentElementEditingFocus","selectControlElements","visualAidsAnchorClass","disableBackspaceIntoATable","setGeckoEditingOptions","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","tapLinksAndImages","blockFormSubmitInsideEditor","refreshContentEditable","serializeRng","allRng","allContentsSelected","emptyEditorWhenDeleting","isAllContentSelected","getAttributeApplyFunction","setAttributeNode","isSelectionAcrossElements","removeStylesWhenDeletingAcrossBlockElements","DOM$6","getRootName","removeUndefined","mkParserSettings","mkSchemaSettings","getStyleSheetLoader$1","loadContentCss","fontCss","removeCss","contentCssText","allStylesheets","framedFonts","bundledCss","normalCss","bundledPromises","makeStylesheetLoadingPromises","contentStyle","appendStyle","initEditorWithInitialContent","startContent","loadInitialContent","bindPendingEventDelegates","fireInit","moveSelectionToFirstCaretPosition","initInstanceCallback","autoFocus","focusEditor","destroyed","initEditor","contentBodyLoaded","readonly","_editableRoot","hasEditableRoot","createParser","mkSerializerSettings","annotator","_nodeChangeDispatcher","debounceLongpress","setup$p","preventSummaryToggle","initialStateOption","serializedStateOption","filterDetails","contentEditableAttrName","editClass","nonEditClass","hasEditClass","hasNonEditClass","convertRegExpsToNonEditable","setup$n","deleteCommand","forwardDeleteCommand","setup$q","rootNodeName","hasBlockParent","setup$o","updatePlaceholder","isNonTypingKeyboardEvent","showPlaceholder","isTypingKeyboardEvent","isVisuallyEmpty","firePlaceholderToggle","setup$r","setupRtcThunk","editorCast","rtcPlugin","getRtcSetup","nul","makeNoopAdaptor","rtcEditor","defaultVars","_undoManager","_locks","_node","_similar","_rfl","_details","getRawModel","makeRtcAdaptor","rtc","isRemote","setup$t","firePreInit","spellcheck","quirks","firePostRender","directionality","protect","preInit","licenseKey","isGplKey","isValidGeneratedKey","validateLicenseKey","validateEditorLicenseKey","cancelProgress","canceled","progressTimeout","setProgressState","startProgress","setupRtc","_rtcMode","DOM$5","DOM$4","createThemeFalseResult","renderThemeFalse","renderThemeFalseIframe","iconPackName","currentIcons","loadIcons","svgData","addIcon","initIcons","Theme","documentBaseUrl","initTheme","Model","initModel","initializedPlugins","Plugin","pluginInstance","pluginInitError","initPlugin","trimLegacyPrefix","initPlugins","renderInfo","orgDisplay","renderFromLoadedTheme","iframeHeight","renderFromThemeFunc","renderThemeUi","uiApiFacade","augmentEditorUiApi","getContentCssUrls","getFontCssUrls","appendContentCssFromSettings","boxInfo","iframeTitle","translatedTitle","customAttrs","frameBorder","allowTransparency","createIframeElement","iframeHTML","bodyId","bodyClass","translatedAriaText","getIframeHtml","createIframe","hidden","orgVisibility","setupIframeBody","init$1","DOM$3","hasSkipLoadPrefix","getIconsUrlMetaFromName","scriptLoader","isThemeLoaded","isModelLoaded","themeUrl","themeLoadError","loadTheme","modelUrl","modelLoadError","loadModel","languageCode","languageUrl","languageLoadError","loadLanguage","defaultIconsUrl","customIconsUrl","getIconsUrlMetaFromUrl","urlMeta","iconsLoadError","loadPlugin","pluginLoadError","loadPlugins","normalizePlugins","trimmedPlugins","extractSections","hasSection","sectionResult","getMobileOverrideOptions","mobileOptions","table_grid","object_resizing","toolbar_mode","toolbar_sticky","getExternalPlugins","userDefinedExternalPlugins","external_plugins","combineOptions","isMobileDevice","defaultOptions","defaultOverrideOptions","deviceOverrideOptions","extendedOptions","isOnMobile","sectionOptions","forcedPlugins","forced_plugins","desktopPlugins","mobileConfig","getSectionConfig","platformPlugins","mobilePlugins","getPlatformPlugins","combinedPlugins","combinePlugins","processPlugins","registerCommands$a","toggleAlign","addCommands","JustifyLeft","JustifyCenter","JustifyRight","JustifyFull","JustifyNone","registerExecCommands$2","alignStates","registerQueryStateCommands","trimOrPad","trimOrPadLeftRight","insertAtCaret","processValue$1","insertedContent","insertContent$1","legacyPropNames","isFont","getFontProp","legacyPropName","getProperty","getSpecifiedFontProp","getComputedFontProp","getFontSize","getFontFamily","findFirstCaretElement","mapRange","getCaretElement","bindRange","fromFontSizeNumber","fontSizeNumber","getFontStyleValues","fontClasses","getFontSizeClasses","normalizeFontNames","topParentBlock","getTopParentBlock","queryCommandEnabled","registerCommands$9","mceAddUndoLevel","mceEndUndoLevel","Undo","Redo","registerCommands$6","mceSelectNodeDepth","_command","mceSelectNode","registerCommands$1","mceCleanup","insertHorizontalRule","insertText","insertHTML","mceInsertContent","mceSetContent","mceReplaceContent","mceNewDocument","registerCommands$8","applyLinkToSelection","linkDetails","mceInsertLink","registerCommands$4","Indent","Outdent","registerCommands$5","InsertNewBlockBefore","InsertNewBlockAfter","registerCommands$3","insertParagraph","mceInsertNewLine","InsertLineBreak","registerCommands$2","fontNameAction","fontSizeAction","lineHeightAction","registerExecCommands$1","isFormatMatch","fontNameQuery","fontSizeQuery","specifiedStyle","lineHeightQuery","registerQueryValueCommands","registerCommands$7","mceRemoveNode","mcePrint","print","mceFocus","restoreBookmark","bookmarkRng","contentEditableHost","getContentEditableHost","hasContentEditableFalseParent","mceToggleVisualAid","registerExecCommands","selectionSafeCommands","isSelectionSafeCommand","EditorCommands","lowerCaseCommand","commandList","setContentEditable","toggleReadOnly","removeFakeSelection","setEditorReadonly","setCommonEditorCommands","restoreFakeSelection","unsetEditorReadonly","allowedEvents","nativeEvents","EventDispatcher","isNative","bindings","toggleEvent","beforeFire","wrappedCallback","currentName","bindingName","filteredHandlers","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","dispatcherArgs","customEventRootDelegates","getEventTarget","eventRoot","isListening","isClickEvent","getAnchorHrefOpt","targetEl","isReadOnlyAllowedEvent","processReadonlyEvents","bindEventDelegate","delegates","eventRootElm","editors","EditorObservable","_pendingNativeEvents","unbindAllNativeEvents","stringListProcessor","getErrorMessage","isValidResult","processValue","defaultModes","switchToMode","activeMode","availableModes","oldMode","activate","deactivate","editorReadOnly","fireSwitchMode","keyCodeLookup","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","parseShortcut","isModifier","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","cmdFunc","normalizeCommandFunc","createShortcut","addContextToolbar","addContextForm","addSidebar","addView","create$3","Editor","loadedCSS","isNotDirty","documentBaseURL","normalizedOptions","copiedOptions","normalizeOptions","initialOptions","rawInitialOptions","isRegistered","isBuiltInSpec","getBuiltInProcessor","processDefaultValue","immutable","unset","lookupFn","rawPatterns","_ctx","rawOptions","hasRemovedPlugins","hasRemovedOptions","isLegacyMobileTheme","listJoiner","themesMessage","pluginsMessage","optionsMessage","logRemovedWarnings","hasDeprecatedPlugins","hasDeprecatedOptions","logDeprecatedWarnings","logWarnings","_setBaseUrl","baseURI","design","undoLevel","registerReadOnlySelectionBlockers","setMode","registerMode","setupCallback","getStyleSheetLoader","formEventDelegate","resetContent","_mceOldSubmit","triggerSave","isEncodingXml","save","_beforeUnload","set_dirty","getParam","loadArgs","saveArgs","is_removing","setupArgs$1","getContent$2","initialContent","oldState","urlConverterCallback","urlObject","addVisual$1","setEditableRoot","fireEditableRootStateChange","fireRemove","restoreOriginalStyles","fireDetach","remove$1","automatic","restoreForm","clearDomReferences","_scanForImages","beforeUnloadDelegate","boundGlobalEvents","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","isQuirksMode","compatMode","majorVersion","minorVersion","releaseDate","tinyMCEPreInit","srcScript","overrideDefaults","base_url","pluginBaseUrls","plugin_base_urls","pluginBaseUrl","pluginName","invalidInlineTargets","provideResults","initEditors","initCount","execCallback","findTargets","isInvalidInlineTarget","createEditor","createId","existingEditor","editorId","editorOptions","addI18n","FakeClipboard","dataValue","relativePosition","targetW","targetH","relChars","Rect","inflate","findBestRelativePosition","constrainRect","rels","intersect","cropRect","x1","y1","clampRect","fixedSize","cx2","cy2","underflowX1","underflowY1","overflowX2","overflowY2","fromClientRect","tasks","resultFns","resources","loadErrMsg","runErrMsg","task","waiter","resolveCb","rejectCb","awaiter","localStorage","removeItem","publicApi","geom","LocalStorage","ImageUploader","showNotification","TreeWalker","Serializer","Selection","tinymce$1","tinyMCE","exportToWindowGlobal","exportToModuleLoaders","sfc","__vccOpts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","globalThis","toStringTag","expectsLowerCase","tmp","klass","aValidType","bValidType","aHasKey","bHasKey","__v_isRef","arg","detached","effects","cleanups","currentEffectScope","fromParent","scheduler","deps","lastShouldTrack","ptr","deferStop","onStop","_effect","lazy","runner","depsMap","Map","debuggerEventExtraInfo","shouldTrack","oldTarget","newLength","allowRecurse","getOwnPropertyNames","instrumentations","isReadonly","targetIsArray","hadKey","deleteProperty","ownKeys","isShallow","rawKey","hadItems","observed","method","targetIsMap","isPair","isKeyOnly","innerIterator","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","proxy","Proxy","newVal","__v_isShallow","_rawValue","useDirectValue","objectWithRefs","_set","_object","_defaultValue","_setter","isSSR","_dirty","_cacheable","throwInDev","vnode","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","appContext","errorHandler","job","deduped","Infinity","HTMLElement","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","cleanupBuffer","app","rawArgs","isUnmounted","isModelListener","modelArg","modifiersKey","handlerName","onceHandler","emitted","asMixin","emitsCache","emits","__scopeId","_id","isNonScopedSlot","_n","renderFnWithContext","prevInstance","Component","withProxy","propsOptions","slots","renderCache","setupState","inheritAttrs","fallthroughAttrs","shapeFlag","proxyToUse","dirs","prevProps","nextProps","emitsOptions","nextKeys","subTree","__isSuspense","n1","n2","parentComponent","parentSuspense","isSVG","slotScopeIds","optimized","rendererInternals","patch","hiddenContainer","suspense","pendingBranch","ssContent","ssFallback","um","unmount","newBranch","newFallback","activeBranch","isInFallback","isHydrating","pendingId","hydrate","hydrateNode","isSlotChildren","eventListener","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","mountFallback","registerDep","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","suspenseId","asyncResolved","doRemove","trackBlock","singleChild","singleRoot","dynamicChildren","provides","parentProvides","treatDefaultAsFactory","flush","immediate","onTrack","onTrigger","forceTrigger","isMultiSource","onCleanup","baseGetter","ssrCleanup","__watcherHandles","unwatch","isMounted","isLeaving","isUnmounting","leavingVNodes","persisted","onBeforeEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","prevTransitionKey","hasFound","rawProps","innerChild","enterHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","delayLeave","earlyRemove","delayedLeave","_leaveCb","leavingVNodesCache","callHook","callAsyncHook","beforeEnter","leavingVNode","afterHook","cancelHook","_enterCb","leave","keepComment","parentKey","keyedFragmentCount","patchFlag","__asyncLoader","loader","loadingComponent","errorComponent","suspensible","userOnError","resolvedComp","pendingRequest","retries","thisRequest","__asyncResolved","delayed","ce","__isKeepAlive","include","sharedContext","__v_cache","_unmount","storageContainer","pruneCache","pruneCacheEntry","isDeactivated","vnodeHook","onVnodeMounted","da","onVnodeUnmounted","pendingCacheKey","cacheSubtree","rawVNode","cachedVNode","wrappedHook","__wdc","keepAliveRoot","injected","__weh","lifecycle","directives","internalInstance","modifiers","mounted","prevVNode","oldBindings","maybeSelfReference","warnMissing","renderItem","dynamicSlots","noSlotted","isCE","validSlotContent","rendered","scopeId","vnodes","preserveCaseIfNecessary","$","$el","$data","$props","$attrs","$slots","$refs","refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","$watch","__isScriptSetup","accessCache","normalizedProps","publicGetter","cssModule","globalProperties","__cssModules","unscopables","strats","mixins","extendsOptions","strat","methods","beforeCreate","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","unmounted","activated","deactivated","errorCaptured","serverPrefetch","merged","provide","inject","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","isAbsent","hasDefault","propsDefaults","propsCache","normalizedKey","booleanIndex","stringIndex","ctor","expectedTypes","rawSlot","rawSlots","needDeletionCheck","deletionComparisonTarget","$stable","isNativeTag","performance","optionMergeStrategies","warnHandler","compilerOptions","optionsCache","rootComponent","rootProps","installedPlugins","_uid","_props","_context","_instance","install","mixin","directive","mount","rootContainer","isHydrate","__vue_app__","Fragment","Text","Comment","Static","rawRef","oldRawRef","isUnmount","refValue","oldRef","_isString","_isRef","doSet","existing","mt","mountComponent","patchProp","createText","createComment","isFragmentStart","onMismatch","handleMismatch","domType","needToAdoptContent","staticCount","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","hydrateChildren","forcePatchValue","vnodeHooks","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","_vnode","createHydrationFns","__VUE__","__VUE_DEVTOOLS_GLOBAL_HOOK__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processComponent","mountElement","patchElement","mountChildren","unmountChildren","needCallTransitionHooks","oldProps","newProps","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","updateComponent","initialVNode","nextVNode","prevChildren","nextChildren","updateComponentPreRender","bu","originNext","nextTree","prevTree","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","prevShapeFlag","patchKeyedChildren","patchUnkeyedChildren","commonLength","nextChild","parentAnchor","l2","keyToNewIndexMap","patched","toBePatched","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","increasingNewIndexSequence","arrI","nextIndex","moveType","performLeave","moveStaticNode","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","removeStaticNode","performRemove","bum","mc","pbc","createApp","ch1","ch2","SVGElement","targetSelector","targetAnchor","isReorder","__isTeleport","mainAnchor","wasDisabled","currentContainer","currentAnchor","nextTarget","_lpa","ut","disableTracking","__v_isVNode","transformer","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","extraProps","mergeRef","mergedProps","flag","numberOfNodes","asBlock","slotFlag","toMerge","exposed","exposeProxy","setupContext","bc","rtg","sp","isStateful","setupResult","resolvedResult","__ssrInlineRender","ssrRender","devtoolsRawSetupState","_compile","_rc","skipOptions","globalMixins","resolved","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","expose","includeInferred","displayName","__name","getterOrOptions","debugOptions","onlyGetter","excludedKeys","getAwaitable","awaitable","propsOrChildren","createComponentInstance","setupComponent","renderComponentRoot","setCurrentRenderingInstance","isVNode","normalizeVNode","createElementNS","prefixed","rawName","now","Comp","VueCustomElement","initialProps","super","_def","_connected","_resolved","_numberProps","_createVNode","attachShadow","_resolveProps","connectedCallback","_update","_resolveDef","disconnectedCallback","_setAttr","MutationObserver","mutations","observe","isAsync","numberProps","_applyStyles","asyncDef","declaredPropKeys","_setProp","_getProp","shouldReflect","shouldUpdate","CustomEvent","updateTeleports","setVars","childList","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","baseProps","durations","enterDuration","leaveDuration","finishEnter","isAppear","finishLeave","_isLeaving","makeEnterHook","_vtc","explicitTimeout","_endId","resolveIfNotStale","propCount","endEvent","ended","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","moveClass","movedChildren","webkitTransform","transitionDuration","_moveCb","cssTransitionProps","oldPos","_assign","castToNumber","domValue","modelValue","_modelValue","elementValue","isSetModel","selectedVal","_binding","isMultiple","esc","eventKey","_vod","prevValue","nextValue","transitionClasses","isCssString","currentDisplay","invokers","_vei","existingInvoker","invoker","_vts","attached","originalStop","_stopped","needRemove","_trueValue","_falseValue","removeAttributeNS","containerOrSelector","getSSRProps","modelToUse","messages","additionalMessage","isComponent","inSSR","isStatic","constType","callee","returns","newline","isSlot","consequent","alternate","stateStack","currentOpenBracketCount","currentOpenParensCount","currentStringType","newLoc","numberOfCharacters","linesCount","lastNewLinePos","allowEmpty","exp","dynamicOnly","tagType","ssr","callPath","propsWithInjection","parentCall","propKeyName","searchValue","replaceValue","removeHelper","compatConfig","gt","lt","amp","apos","quot","getNamespace","getTextMode","isVoidTag","isPreTag","decodeEntities","rawText","p1","onWarn","comments","inVPre","removedWhitespace","shouldCondense","inPre","nestedIndex","contentStart","closeIndex","wasInPre","wasInVPre","isPreBoundary","isVPreBoundary","isSelfClosing","inlineTemplateProp","currentSource","isBuiltInComponent","codegenNode","nameSet","quote","isQuoted","unexpectedChars","isPropShorthand","dirName","valueLoc","innerStart","innerEnd","rawContentLength","rawContent","preTrimContent","endTokens","originalSource","searchString","doNotHoistNode","originalCount","hoistedCount","constantType","hoist","vSlot","transformHoist","constantCache","returnType","generatedPropsType","childType","expType","keyType","valueType","prefixIdentifiers","hoistStatic","cacheHandlers","nodeTransforms","directiveTransforms","expressionPlugins","slotted","ssrCssVars","bindingMetadata","isTS","nameMatch","helpers","hoists","imports","temps","identifiers","vFor","vPre","vOnce","childIndex","inVOnce","currentCount","helperString","replaceNode","removalIndex","onNodeRemoved","addIdentifiers","removeIdentifiers","identifier","hoisted","exitFns","onExit","nodeRemoved","assets","resolver","multilines","deindent","comma","needNewline","needsParens","indentLevel","isNested","processCodegen","ifNode","parentCondition","isTemplateIf","userKey","keyIndex","keyProperty","vnodeCall","parseResult","forNode","valueAlias","keyAlias","objectIndexAlias","renderExp","isTemplate","keyProp","keyExp","isStableFragment","fragmentFlag","childBlock","needFragmentWrapper","slotOutlet","inMatch","LHS","RHS","valueContent","iteratorMatch","keyContent","keyOffset","indexContent","memoArgs","buildSlotFn","slotsProperties","hasDynamicSlots","onComponentSlot","hasTemplateSlots","hasNamedDefaultSlot","implicitDefaultChildren","seenSlotNames","conditionalBranchIndex","slotElement","slotDir","slotChildren","slotLoc","slotName","slotProps","dirLoc","staticSlotName","slotFunction","vIf","vElse","conditional","buildDefaultSlotProperty","vnodeTag","isExplicitDynamic","isProp","isDir","builtIn","isDynamicComponent","vnodeProps","vnodeChildren","vnodePatchFlag","vnodeDynamicProps","dynamicPropNames","vnodeDirectives","shouldUseBlock","propsBuildResult","dirArgs","runtime","trueExpression","modifier","hasDynamicTextChild","propsNamesString","elementLoc","mergeArgs","runtimeDirectives","hasRef","hasClassBinding","hasStyleBinding","hasHydrationEventBinding","hasDynamicKeys","hasVnodeHook","pushMergeArg","analyzePatchFlag","isEventHandler","isVBind","isVOn","directiveTransform","needRuntime","propsExpression","classKeyIndex","styleKeyIndex","hasDynamicKey","isHandlerKey","classProp","styleProp","knownProps","nonNameProps","slotArgs","expectedLen","augmentor","shouldCache","isMemberExp","isInlineStatement","hasMultipleStatements","hasText","callArgs","WeakSet","rawExp","expString","bindingType","assignmentExp","expression","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","isModuleMode","ast","sourceMap","optimizeImports","runtimeGlobalName","runtimeModuleName","ssrRuntimeModuleName","withoutNewLine","onContextCreated","hasHelpers","useWithBlock","VueBinding","preamble","toJSON","getOwnPropertySymbols","asAttr","baseResult","directiveToUse","isInvalidType","handlerExp","keyModifiers","nonKeyModifiers","eventOptionModifiers","modifierPostfix","targetQueue","onQueue","defaultSettings","localSettingsSaveId","currentSettings","fallbacks","getSettings","setSettings","perf_hooks","pluginId","proxiedOn","proxiedTarget","setRealTarget","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","_modules","oldScope","_scope","getters","_makeLocalGettersCache","wrappedGetters","computedObj","computedCache","strict","_withCommit","rootState","namespaced","parentState","moduleName","local","noNamespace","_type","_payload","_options","payload","commit","forEachMutation","forEachAction","rootGetters","_devtoolHook","forEachGetter","rawGetter","forEachChild","gettersProxy","splitPos","localType","pluginDescriptor","setupFn","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","__VUE_DEVTOOLS_PLUGINS__","homepage","logo","packageName","componentStateTypes","addTimelineLayer","addInspector","treeFilterPlaceholder","getInspectorTree","inspectorId","rootNodes","getInspectorState","modulePath","nodeId","gettersKeys","storeState","leafKey","_custom","abstract","moduleMap","_children","editInspectorState","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","subscribeAction","_time","groupId","subtitle","textColor","rawModule","_rawModule","rawState","addChild","getChild","rawRootModule","targetModule","newModule","this$1$1","rawChildModule","devtools","_committing","_actionSubscribers","_subscribers","_devtools","topFromScrollTop","scrollTopFromTop","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","doneResult","isGeneratorFunction","genFun","awrap","iter","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","enumerableOnly","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","prim","toPrimitive","hint","_toPrimitive","_toPropertyKey","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","injectKey","$store","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","vuex","globalFetch","_ref","_callee","urlOrRequest","request","Request","headers","page_id","_x","_ref2","_callee2","_context2","_x2","_x3","post","_ref3","_callee3","noHeader","pageId","noReturn","_context3","sendRequest","_x4","_x5","_x6","_x7","_x8","_x9","deleteRequest","_ref4","_callee4","_context4","_x10","_x11","_x12","_x13","put","_ref5","_callee5","_context5","_x14","_x15","_x16","_x17","_x18","_ref6","_callee6","_context6","Headers","_x19","_x20","_x21","_x22","_x23","_x24","_x25","pageOverlayReturntarget","article_overlay_open","page_overlay_open","page_overlay_content","page_overlay_content_data","page_overlay_returntarget","burger_menu_links","secondary","article_overlay_data","sub_navigation_links","generalLink","subLinks","dictionary_visible","user_id","user_has_notifications","show_user","user_authorized","user_name","user_profile_img","set_dictionary_visible","open_page_overlay","pageOverlayOpeningCallback","close_page_overlay","pageOverlayClosingCallback","reset_page_overlay","set_user_id","set_user_has_notifications","set_show_user","set_user_authorized","set_user_name","set_user_profile_img","set_page_overlay_content","set_page_overlay_content_data","set_burger_menu_links","linkData","set_page_overlay_returntarget","set_article_overlay_data","set_sub_navigation_links","allLinks","set_article_overlay_open","set_page_id","closePageOverlay","openPageOverlay","overlayContent","returnTarget","getArticleOverlayContent","myHeaders","fetchConfig","setPageId","setUserData","userData","isObjectNotNullOrEmpty","userId","firstName","lastName","userAuthorized","showUser","userProfileImg","userHasNotifications","setUserProfileImage","profileImage","trackPurchaseData","_window","dataLayer","orderId","ecommerce","purchaseEvent","collections","set_collections","set_labelCollection","collectionName","labels","returnCollection","labelCollection","labelKey","emptyIfMissing","existLabel","is_searching","facets","populated_facet_ids","queries","sorting","show_results","search_inprogress","more_search_inprogress","firstPageSize","showMorePageSize","skip_take","scoped_total","replaceQueryInUrl","search_overlay_scope","filter_overlay_scopes","search_page_redirecturl","autocomplete_result","autocomplete_inprogress","dictionary_data","set_is_searching","set_dictionary_data","set_replaceQueryInUrl","bool","set_search_page_redirecturl","set_filter_overlay_scopes","guids","set_scoped_result","guid","add_populated_facet_ids","add_scoped_result","set_scoped_total","set_scoped_facets","begin_search","complete_search","new_scope","_scope$firstPageSize","_scope$showMorePageSi","take","set_scoped_query","set_scoped_skip_take","_scope$skip","_scope$take","begin_autocomplete","set_autocomplete_result","set_sorting_value","complete_autocomplete","begin_more_search","complete_more_search","patch_scoped_facets","facet","scopedFacets","deepClone","facetGroup","facetValues","facetValue","facetId","setSearchQuery","initSearchScope","searchParams","facetParams","facetGroupId","groupedFacetParams","performSearch","searchRequestGET","hits","totalHits","getUrlQuery","performZeroSearch","getBaseSearchUrl","nonEmptyFacetIds","facetIdsWithCount","performMoreSearch","refreshSearches","initAutocomplete","getAutocomplete","autocompleteRequestGET","_getters$getFacets","initialQueryParameters","urlParams","urlParamsKeyValue","_state$skip_take$scop","URLSearchParams","getUrl","_getters$getFacets2","_state$skip_take$scop2","getFacets","_step","_iterator","_createForOfIteratorHelper","filteredFacetValues","newFacetGroup","allPrimaryTags","_getters$getFacets3","facetGroupType","selectedTags","_getters$getFacets4","dictionaryData","dictionaryFilterBySearch","dictionarySearch","word","canShowMore","skipTake","wordDefinitions","add_word_definition","wordId","wordDefinition","fetch_word_definition","getWordDefinitionById","signUpCompleteShowReceipt","signUpEventId","isSubmitting","completeSignup","set_signUpEventId","set_submitting","signUpToEvent","fundraiseCreationCompleteShowReceipt","isFundraiseImageUploading","personalStoryImagesUploading","personalDonationShowReceipt","fundraiseCreationEventId","donation_settings","donationId","linkToInformationHowDonationBenefits","defaultPreset","recurring","isEditing","isFundraiseImageUploadError","isPersonalStoryImageUploadError","completeFundraiseCreation","completePersonalDonation","set_fundraiseCreationEventId","set_donation_settings","set_fundraise_image_uploading","isUploading","add_personal_story_image_uploading","remove_personal_story_image_uploading","set_fundraise_image_upload_error","set_personal_story_image_upload_error","set_editing","setEditing","discardUploadedImage","FETCHMETHOD","uploadFundraiseImage","createPersonalfundraising","continueUrl","updatePersonalfundraising","deletePersonalfundraising","submitPersonalDonation","isPbs","paymentMethod","paymentUrl","submitPersonalDonation2","fundraisingCampaignId","showReceipt","errorMessage","personalDonationInput","stafetId","donationFor","donationTeam","donationParticipant","donationFlowId","userInputs","steps","currentStep","basketTotalPrice","teams","participants","store_personal_donation_input","set_stafet_id","set_donation_for","set_donation_team","team","set_donation_participant","participant","set_teams","set_participants","set_donation_flow_id","set_user_inputs","set_steps","set_current_step","set_basket","set_basket_total_price","price","set_error_message","set_is_submitting","teamId","nonMatchingValuesList","_toConsumableArray","updatedBasket","totalPrice","intPrice","donationSubmit","getUserInputsBody","formdata","deltagerId","sponsorId","holdKode","isAnonymous","taxDeduction","cpr","cvr","companyLogo","sessionStorage","donationStotLysSubmit","stafetKode","supportSelectorSubmissionModel","supportStafet","supportHold","supportDeltager","filterList","_updateBasketAndTotals","mappedArray","cart","lineItems","mappedItem","_item$prices","_item$prices2","_item$validationError","productNumber","sku","imageUrl","hasErrors","validationErrors","variantData","minAmount","minQuantityPerOrder","maxAmount","maxQuantityPerOrder","variant","quantity","displayPrice","prices","priceType","displayBeforePrice","soldOut","alreadyRemoved","_mapBasketItem","_getMappedBasketItems","totals","containsUdlaansvare","basketState","SET_BASKET_ERRORS","hasValidationErrors","SET_BASKET_CONTAINS_UDLAANSVARE","SET_BASKET","SET_BASKET_TOTALS","_totals$lineItemsCoun","_totals$subTotal","_totals$discountTotal","_totals$taxTotal","_totals$total","_totals$shippingTotal","productsAmount","lineItemsCount","productsPrice","subTotal","discount","discountTotal","VAT","taxTotal","shippingTotal","isShippingFree","areAllItemsFree","isOrderFree","SET_INITIAL_BASKET_TOTALS_PRODUCTS_AMOUNT","newTotals","fetchBasket","addToBasket","basketPageUrl","adjustQuantity","newquantity","removeItems","updateActiveDeliveryType","shippingMethod","checkoutState","sessionStorageCheckoutState","retrievedState","checkoutSteps","_getCreateOrderData","_p$invoice$public$pub","_p$invoice","_p$invoice$public$pub2","_p$invoice2","_p$invoice$company$co","_p$invoice3","_p$payment$paymentDat2","_p$payment$paymentDat3","_state$stepTwo$pickUp","purchaseData","_p$payment$paymentDat","payment","paymentData","customerType","invoice","userInformation","stepTwo","activeDeliveryType","companyOrInstitutionName","company","companyName","publicInstitutionNameInput","companyDepartmentOrInstitutionDepartment","companyDepartment","publicInstitutionDepartmentOrContact","deliveryAddress","addressOption","addressLine1","pickUpAddressData","addressLine","zipCode","postalCode","city","department","servicePointId","showDifferentAddress","delivery","contactFirstName","contactLastName","deliveryName","deliveryDepartment","publicInstitutionUserId","publicInstitutionEan","companyCvr","invoiceAddress","mobilePhone","bankInformation","bankRegistrationNumber","pbsData","reg","bankAccountNumber","checkoutStore","_checkoutState","stepOne","showPickUpAddresses","differentAddressData","deliveryDataValidationSuccess","pickUpAddresses","activeDeliveryAddress","stepThree","paymentDataValidationSuccess","activePaymentMethod","public","udlaanData","startDate","endDate","latitude","longitude","udlaansData","terms","error_overlay_scope","set_checkout_steps","set_udlaans_data","setStateInSessionStorage","set_service_points","servicePoints","servicePoint","set_purchase_data_invoice","set_purchase_data_delivery","set_purchase_data_payment","set_show_different_address","set_show_pick_up_addresses","set_active_delivery_type","set_active_delivery_address","set_pick_up_address_data","clear_pick_up_address_data","set_different_address_data","set_payment_data","set_active_payment_method","set_payment_data_validation_success","set_delivery_data_validation_success","complete_purchase","update_checkout_step","_state$checkoutSteps","nextStepNumber","nextStep","stepNumber","update_checkout_step_been_filled","_state$checkoutSteps2","beenFilled","fetchServicePoints","placeOrder","hasError","placeOrderFrivillige","stateToSave","onbeforeunload","is_submitting","member_list_data","memberList","member_data","memberName","memberRoles","memberImgSrc","memberProfileText","memberImgAlt","answerLink","member_group_id","selected_member_id","active_member_id","active_group_id","direct_message_thread_id","direct_message_thread_data","direct_message_threads","set_add_users_data","new_chat_users","show_user_search","theme_statistics","group_statistics","post_statistics","post_latest_comment","post_comments","set_member_list_data","memberListData","set_member_data","memberData","set_direct_message_thread_id","chatId","set_direct_message_thread_data","set_direct_message_threads","threads","add_users_data","set_theme_statistics","themeId","statistics","set_group_statistics","set_post_statistics","postId","set_post_latest_comment","latest_comment","set_post_comments","set_new_chat_users","set_show_user_search","getGroupStatistics","getThemeStatistics","getPostStatistics","getPostLatestComment","getPostComments","submitLikePost","like","getMemberListData","_callee7","_context$state$member","_context7","getMemberData","_callee8","_context8","getDirectMessageThreads","_callee9","_url","_response","_config$chatId","_context9","toProfileId","refreshDirectMessageThreads","_callee10","_context10","submitSavePost","_callee11","_context11","submitNewComment","_callee12","_context12","submitNewSubComment","_callee13","_context13","submitLikeComment","_callee14","_context14","submitDeleteComment","_callee15","_context15","submitEditComment","_callee16","_context16","submitMemberApplication","_callee17","applicationUrl","_context17","removeForumProfilePicture","_callee18","_context18","submitForumProfilePicture","_callee19","_context19","submitCreatePost","_callee20","_context20","submitEditPost","_callee21","_context21","deletePost","_callee22","_context22","submitCreateGallery","_callee23","_context23","submitSaveProfile","_callee24","_context24","submitEditGallery","_callee25","_context25","getDirectMessageThreadData","_callee26","_context26","submitDirectMessageThreadComment","_callee27","threadDataPromise","messageThreadsPromise","_context27","editDirectMessageThreadComment","_callee28","_context28","commentId","deleteDirectMessageThreadComment","_callee29","_context29","deleteDirectMessageThread","_callee30","_context30","addUserDirectMessageThreadComment","_callee31","_context31","searchForUser","_callee32","_context32","clearSearchForUser","createNewDirectMessageThread","_callee33","_context33","userIds","clearDirectMessageThread","chat","chatIcon","chatName","leaveGroup","_callee34","_context34","returnUrl","rejectNotification","_callee35","_context35","notificationId","approveNotification","_callee36","_context36","rejectGruppeadgangsanmodning","_callee37","_context37","gruppeadgangsanmodningId","approveGruppeadgangsanmodning","_callee38","_context38","createCancerForumProfile","_callee39","_context39","deleteCancerProfile","_callee40","_context40","deleteCancerProfileAndData","_callee41","_context41","createEvent","_callee42","_context42","editEvent","_callee43","_context43","EVENT_EDIT","deleteEvent","_callee44","_context44","DELETE_EVENT","editFrivilligeProfile","_callee45","_context45","ROOT_MAPPE_KODE","member_list_data_total","active_request_roles_data","active_pending_roles_list","active_confirmed_roles_list","active_overlay_mode","active_item_name","active_item_id","activity_list","edit_mode_active","active_group_name","active_folder_id","active_folder_name","active_file_name","active_file_id","delete_item_type","delete_item_id","delete_item_name","file_type_dropdown_options","folder_dropdown_options","globalGruppeKode","set_file_type_dropdown_options","set_member_list_data_total","set_folder_dropdown_options","_o$value","set_active_request_roles_data","set_activity_list","set_active_pending_roles_list","set_active_confirmed_roles_list","set_active_overlay_mode","set_edit_mode_active","set_delete_item_type","set_delete_item_id","set_delete_item_name","set_active_item_id","set_active_item_name","set_active_folder_name","set_active_file_name","set_global_gruppe_kode","gruppeKode","get_global_folder_id","setActiveOverlayMode","setActiveItemName","setEditModeActive","setGlobalGruppeKode","getDeleteItemType","getDeleteItemName","getDeleteItemId","delete_type","getActiveItemName","getActiveItemId","getActivePendingAndConfirmedRolesList","roles","allRoles","newPendingRoles","newConfirmedRoles","roleStatus","getFolderDropdownOptions","getMemberRequestRolesData","active_user_id","fetchGruppemedlemmerData","members","removeMember","frivilligprofilId","submitCreateOrEditFolderOrFile","parentMappeKode","mappeName","submitGroupAccessRequest","folder","submitCreateNewFile","submitUploadNewFile","mappeKode","submitMoveFileOrFolder","submitConfirmDelete","deleteStatus","submitConfirmDeleteProfile","frivillige","submitConfirmDeleteMember","updateEvent","joinGroup","_config$reason","dataArray","_dataArray$find","totalNumberOfTeams","previousTeams","teamLights","teamLightsTotal","teamDonations","teamDonationsTotal","teamParticipantDetails","set_previous_teams","teamslist","set_total_number_of_teams","set_team_lights","set_team_lights_total","set_team_participant_details","set_team_donations","set_team_donations_total","getPreviousTeams","getTeamParticipantDetails","getTeamDonations","getTeamLights","joinATeamSubmit","_getFieldValue","_getFieldValue2","deltagere","getFieldValue","childDeltagere","isChild","isFighter","marketing","sflNewsletter","fighterNewsletter","donationItems","lysposer","ownTextLysposer","lysposeSubmissionModels","shirt","freeLunch","firstTimeFighter","joinAsAFighterSubmit","joinATeam","fighter","addDeltagereSubmit","createTeamSubmit","_sourceUrl$searchPara","previousHoldkode","relativeUrl","teamName","slogan","donationGoal","newsletter","editTeamSubmit","stafetProfileUpdatedSubmit","submitDeleteStafetProfile","submitUpdateStafetProfile","ruter","ruteUpdates","deltagerRuteUpdates","set_team_id","set_ruter","set_deltagere","init_rute_counter","ruteId","increment_rute_counter","decrement_rute_counter","set_rute_counter","reset_rute_update","init_deltager_counter","increment_deltager_counter","decrement_deltager_counter","set_deltager_counter","reset_deltager_update","getDeltagerRuteAmount","_ref7","shouldDisableApplyButton","_ref8","getStafetRoundCounter","ruterArray","rute","ruteName","meters","detailsKm","detailsRounds","dynamicUpdate","deltagereResult","deltager","ruterForDeltager","participantName","participantRole","stafetRoundCounterSubmit","_ref9","deltagerArray","submitting","aktivitet_list","rolle_list","gruppe_list","imgSrc","profileText","imageAlt","SET_AKTIVITET_LIST","SET_ROLLE_LIST","SET_GRUPPE_LIST","SET_IS_SUBMITTING","SET_MEMBER_DATA","fetchAktiviteter","fetchGrupper","activityId","fetchRoller","submitRoleRequest","deleteRolletildeling","createProfil","submitFrivilligProfilePicture","removeFrivilligProfilePicture","editFrivilligprofil","fetchMemberData","userProfileId","deleteFrivilligprofil","lottery_ticket","isWinningTicket","prize","SET_LOTTERY_ROUNDS","lottery_rounds","SET_LOTTERY_TICKET","getLotteryTicketResult","lotteryTicketId","roundNumber","logout","createFrivilligjob","getGruppeemner","jobId","GETMETHOD","updateFrivilligjob","removeFrivilligjobImage","submitFrivilligjobImage","deleteFrivilligjob","dictionary","fundraising","donation","checkout","forum","set_form","formObject","update_form","allOtherForms","setForm","stafet","stafetRoundCounter","frivilligprofil","lottery","mitid","frivilligjob","factBoxContentId","onMounted","factBoxDom","dictionaryWordHighlight","containingParent","paragraph","toggleDisplay","factBoxContentDom","Store","factbox","factBoxContentElement","_createElementVNode","xmlns","viewBox","stroke","Derived","hasNativeReflectConstruct","sham","Super","NewTarget","ReferenceError","startAt","perView","focusAt","autoplay","hoverpause","bound","swipeThreshold","dragThreshold","perSwipe","touchRatio","touchAngle","animationDuration","rewindDuration","animationTimingFunc","waitForTransition","peek","cloningRatio","breakpoints","swipeable","carousel","slide","nav","EventsBus","hop","Glide","_t","extensions","glide","transformers","Run","Transition","Move","_o","_i","wait","later","leading","throttled","at","remaining","trailing","matched","nodeList","EventsBinder","closure","Components","Direction","multiplier","Sizes","slideWidth","Gaps","Clones","Peek","Html","Events","collectSlides","slides","_r","Translate","TRANSFORMERS","translate3d","mozTransform","getStartIndex","isOffset","getTravelDistance","travelDistance","startWidth","token","setupSlides","setupWrapper","wrapperSize","reductor","_Glide$settings","cloneCount","_clone","_Components$Html","half","_i2","_i3","Resize","Binder","Build","typeClass","removeClasses","_Glide$settings$class","calculate","isStart","isEnd","viewSize","calculateForwardIndex","isBound","normalizeForwardIndex","calculateBackwardIndex","normalizeBackwardIndex","_m","Swipe","swipeSin","swipeStartX","swipeStartY","passive","bindSwipeStart","swipe","bindSwipeMove","bindSwipeEnd","subExSx","subEySy","powEX","powEY","swipeHypotenuse","swipeCathetus","asin","PI","_Glide$settings2","swipeDistance","swipeDeg","unbindSwipeMove","unbindSwipeEnd","_Glide$settings3","unbindSwipeStart","changedTouches","Images","dragstart","Anchors","prevented","Controls","_arrowControls","addBindings","removeActive","controls","setArrowState","resetArrowState","disableArrow","removeBindings","Keyboard","press","Autoplay","Breakpoints","_Core","subClass","superClass","_super","_createElementBlock","_normalizeClass","_hoisted_2","_hoisted_4","_toDisplayString","_hoisted_5","truncateSummary","_hoisted_3","dayRange","_hoisted_6","monthName","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","statusColor","statusDisplayName","typeDisplayName","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","quotee","_preset$transform","urlWithoutQueryParams","recipe_4_5","locationCard_5_4","reportCard_4_5","imageTransform","$setup","layoutA","useStore","groupsCount","_statistics$value","colorTheme","svgIcon","SliderCardBasic","ActivitySliderCard","PodcastSliderCard","CaseCard","ReportCard","ThemeCard","glideBehaviour","contentJson","carouselId","_news$activities$case","componentRootEl","glidePosition","displayProperties","configFunction","viewportSize","numberOfCases","glideConfig","configCaseCarousel","configPodcastCarousel","configFeaturedGroups","configByViewport","unifyCardHeight","sliderDOM","_event$target","_nextCard$attributes$","nextCard","_hoisted_1","_Fragment","_renderList","_createCommentVNode","_createBlock","_resolveDynamicComponent","_ctx$link","ContentCarousel","_component_SliderCardBasic","_component_ContentCarousel","rx","tooltipName","tooltipAccessibleName","_props$tooltipName","wordPopup","closeButton","clickOutsideHandler","showDialog","arrowPosition","currentLeftPosition","currentRightPosition","currentBottomPosition","popupWidth","calculatedLeftPosition","exceedsBottomEdge","exceedsLeftEdge","exceedsRightEdge","calculatedRightPosition","tapTrap","_cache","_withKeys","toggleAccordion","accordionTarget","DOMs","accordion","actionResponseText","lifeTime","fadeDuration","visibilityStatusClass","lifeTimeMinusAnimationTime","_normalizeStyle","numberOfMembers","numberOfPosts","memberCount","postsCount","_statistics$value2","handleLeaveGroup","spotCardData","handleButtonClick","linkRef","buttonTitle","buttonFill","GroupDetails","SpotCard","SpotCardGrid","spotCard","isSearching","showNotMemberComponents","_store$state$search$r","_ctx$groups","_ctx$groups2","_component_SpotCardGrid","_component_SpotCard","_component_ThemeCard","_component_GroupDetails","users","roleCardData","startDeleteRoleOverlay","groupRoleId","activityName","roleName","groupName","isApproved","ActiveRoleListCard","rolesData","_props$rolesData","pendingRoles","confirmedRoles","_ctx$rolesData","_ctx$confirmedRoles","_component_ActiveRoleListCard","_ctx$rolesData2","_ctx$pendingRoles","returnedLabel","deleteCallback","hideStatus","hideEdit","GetLabel","displayActionButtons","editUrl","tagindex","_withModifiers","$event","_hoisted_27","formLink","localValue","onChangeCallback","formFieldName","customConfig","TooltipComponent","isRequired","isValidationError","errorMessageLabel","helpMessageLabel","minDate","maxlength","validatorFunction","radioOptions","selectOptions","readOnly","isRichText","_props$modelValue","autoSelectFirstRadio","inputHasValidationErrors","formFieldFormBinder","formFieldCommonOptions","_component_TooltipComponent","startAmount","displayMessage","setAmount","doNotUseInputValidation","ariaDescribedby","preventWrongInput","onInput","headerList","richText","replaceAll","decodeURI","getDocumentIcon","acceptedFileTypes","fileErrorMessage","maxAttachments","fileIdCount","isOriginal","filesToRemove","filesToAdd","clearValidationError","formatFileSize","sizeKB","addFile","eventFiles","eventFile","MAX_FILE_SIZE_MB","newFile","removeFile","fileToRemove","srcset","altText","AmountSelector","handleDeleteButton","miniBasket","errorMaxAmountMessage","errorMinAmountMessage","cancelRemoveItem","displayMaxAmountMessage","displayMinAmountMessage","validationError","displaySoldOutMessage","displayAlreadyRemovedFromBasket","displayAlreadyRemoved","displaySoldOut","focusTarget","inputAmount","debounce","_component_AmountSelector","_ctx$getLabel","BasketCard","showPaymentOptions","basketCards","displayObsMessage","_store$state$basket$t","_store$state$basket$t2","displayBasketErrorMessageClass","asideResults","_component_BasketCard","_ctx$asideResults","_ctx$asideResults2","_ctx$asideResults$isS","_ctx$asideResults3","_ctx$asideResults4","_ctx$asideResults5","_ctx$asideResults6","_hoisted_28","_hoisted_29","_hoisted_30","_ctx$asideResults7","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_38","_hoisted_39","BasketAside","dataLoaded","cartIsEmpty","deleteItemsQueue","variables","itemSku","onRemoveItem","onCancelRemoveItem","_component_BasketAside","onBeforeMount","variants","currentVariantSku","pdf","soldOutText","soldOutReason","rolePageUrl","hasRequiredRights","_props$currentVariant","_variantData$value$st","unSubmitted","parsedVariants","placeholderVariant","variantList","pdfData","currentVariant","currentUrlName","productUrlName","displayHasRequiredRightsMessage","updatePageUrlWithVariantName","newUrl","_replaceLastElementInUrl","urlName","updateDisplayNoVariantChosenMessage","displayNoVariantChosenMessage","addToCart","openRequestRoleOverlay","outOfStock","_ctx$pdfData","_component_CaseCard","glideId","determineGlideConfig","onTransitionendCallback","_methods$statePropNam","_methods$parent","_options$persistent","statePropName","opening","closing","cancelAction","tabTrap","valueToValidate","nonEmptyString","cvrNumber","ValidationRequired","__g","core","__e","O","P","Attributes","bitmap","SHARED","SRC","TO_STRING","TPL","inspectSource","safe","that","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","expProto","U","W","R","IS_INCLUDES","propertyIsEnumerable","$this","fromIndex","A","K","T","aLen","getSymbols","isEnum","re1","re2","USE_SYMBOL","D","C","unicode","ignoreCase","reCopy","forced","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","strfn","rxfn","defined","SPLIT","$split","maybeCallNative","internalSplit","lastLength","lastLastIndex","splitLimit","separatorCopy","splitter","unicodeMatching","lim","IS_MAP","callbackfn","REPLACE","$replace","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","keyAttributeName","inAttributes","inSkip","inPatch","assert","assertInPatch","functionName","assertNotInAttributes","assertNotInSkip","assertInAttributes","updatePatchContext","setInAttributes","setInSkip","Blank","truncateArray","applyAttr","attrNS","applyProp","setStyleValue","updateAttribute","elStyle","nodesCreated","nodesDeleted","markCreated","markDeleted","notifyChanges","NodeData","nameOrCtor","_attrsArr","staticsApplied","hasEmptyAttrsArr","getAttrsArr","initialAllocationSize","createArray","importSingleNode","fallbackKey","localName","keyAttrName","keyAttr","attrsArr","recordAttributes","defaultMatchFn","expectedNameOrCtor","expectedKey","currentParent","focusPath","matchFn","argsBuilder","attrsBuilder","getArgsBuilder","getAttrsBuilder","clearUnvisitedDOM","maybeParentNode","getNextNode","enterNode","exitNode","createNode","getNamespaceForTag","alignWithDOM","existingNode","getMatchingNode","insertReferenceNode","moveBefore","currentElement","createPatcher","patchConfig","prevContext","prevDoc","prevFocusPath","prevArgsBuilder","prevAttrsBuilder","prevCurrentNode","prevCurrentParent","prevMatchFn","previousInAttributes","previousInSkip","isDocumentRoot","getAncestry","getFocusedPath","retVal","assertVirtualAttributesClosed","createPatchInner","openElement","openTags","assertNoUnclosedTags","createPatchOuter","expectedNextNode","expectedPrevNode","maybeStartNode","maybeCurrentNode","wasUpdated","wasChanged","assertPatchElementNoExtras","patchInner","patchOuter","bufferStart","queueChange","prevValuesMap","prevAttrsMap","diffAttrs","updateCtx","updateFn","calculateDiff","diffStatics","statics","staticsIndex","elementOpenStart","elementOpenEnd","elementOpen","varArgs","elementClose","currentNameOrCtor","assertCloseMatchesOpenTag","currentPointer","assertNoChildrenDeclaredYet","skipNode","setKeyAttributeName","clearCache","getKey","isDataInitialized","applyAttrs","applyStatics","elementVoid","formatted","caretpos","onSelect","suggestions","_loop","suggestion","forslagstekst","getIteratorMethod","BREAK","RETURN","ITERATOR","iterFn","setImmediate","clearImmediate","MessageChannel","Dispatch","nextTick","port2","port1","onmessage","importScripts","WebKitMutationObserver","promise","$$resolve","$$reject","domain","exit","standalone","characterData","versions","v8","FakePromise","PromiseRejectionEvent","isReject","reaction","exited","_h","unhandled","onunhandledrejection","onrejectionhandled","_w","onFulfilled","onRejected","capability","promiseCapability","$index","alreadyCalled","race","minLength","retryDelay","renderCallback","initialRenderCallback","adgangsadresserOnly","stormodtagerpostnumre","supplerendebynavn","fuzzy","fetchImpl","paramName","paramValue","statusText","responseURL","getAllResponseHeaders","setRequestHeader","AutocompleteController","currentRequest","skipVejnavn","adgangsadresseid","multilinje","startfra","_executeRequest","selectCallback","_requestCompleted","tekst","_handleResponse","_handleFailedRequest","_getAutocompleteResponse","_scheduleRequest","isBinary","inputElm","controllerOptions","optionName","controller","updateControllerOnTextChange","newCaretpos","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","onTextChange","lastEmittedText","lastEmittedCaretpos","suggestionContainerElm","inputText","handleInputChanged","emitTextChange","selectSuggestion","selectedSuggestion","keydownHandler","focusHandler","blurHandler","inputChangeHandler","inputMouseUpHandler","updateScheduled","updateInput","shouldUpdateInput","setSuggestions","selectAndClose","setRenderCallback","setSelectCallback","setInitialRenderCallback","selectInitial","addressLineValue","zipCodeValue","cityValue","addressPlaceholder","zipCodePlaceholder","cityPlaceholder","addressLabel","zipCodeLabel","cityLabel","onchangeCallback","onclickCallback","_props$addressLineVal","_props$zipCodeValue","_props$cityValue","watchEffect","mainInput","zipcodeInput","cityInput","dawaAutocomplete","postnr","postnrnavn","etage","dør","adresseringsvejnavn","husnr","clearAddress","onBlur","checkoutScrollToTop","FormInputTextField","FormAddressField","hideAllErrors","firstNameInput","firstNameInputFilled","nameValidator","lastNameInput","lastNameInputFilled","phoneInput","phoneInputFilled","phoneValidator","emailInput","emailInputFilled","emailValidator","addressLineInput","addressLineInputFilled","textAreaValidator","postalCodeInputFilled","cityInputFilled","postalCodeInput","customerTypeInput","isCompany","isPublicInstitution","companyNameInput","companyNameInputFilled","companyNameValidator","companyDepartmentInput","companyDepartmentInputFilled","companyCvrInput","companyCvrInputFilled","cvrValidator","publicInstitutionNameInputFilled","publicInstitutionDepartmentOrContactFilled","publicInstitutionUserIdFilled","publicInstitutionEanFilled","eanNumber","inputIsValid","addressFilled","companyDetailsFilled","publicInstitutionDetailsFilled","showCompanyInputs","showPublicInstitutionInputs","checkoutInvoicePayload","_component_FormInputTextField","autcomplete","_component_FormAddressField","isChosenDelivery","_totals$value$isShipp","_totals$value","determineLabelCollection","updateShowDifferentAddress","updateShowPickUpAddresses","handleShowDifferentAddress","handleChosenDelivery","isStepSubmitting","onUpdated","deliveryNameInput","deliveryNameInputFilled","deliveryDepartmentInput","deliveryDepartmentInputFilled","handleSendToStore","getLabelCheckout","addressResults","displayInputErrors","isDeliveryDataValid","addressRadioInput","setPickUpAddressInStore","handleAddressSelected","getFormAddressFieldLabel","addressKey","DeliveryCard","DeliveryAddress","PickUpAddress","onSubmitCallback","activeDeliveryAddressData","checkoutDeliveryPayload","toStepOne","_component_DeliveryCard","_component_DeliveryAddress","_renderSlot","_component_PickUpAddress","gradientUnits","paymentType","paymentMethodInState","paymentMethodFilled","commitPaymentInputToStore","isAllValid","paymentPayload","paymentOptions","setPaymentTypeOnEnter","determineActivePaymentMethod","currentPaymentMethod","optionIndex","preserveAspectRatio","_hoisted_37","WebshopPaymentSelector","displayUdlaansvarePickupMessage","getLabelCheckoutNavigation","noDeliveryTitle","_store$state$checkout","termsInput","termsInputFilled","paymentDataValidationStatus","_store$state$checkout2","_store$state$basket","checkoutPaymentPayload","handleSendToStep","_component_WebshopPaymentSelector","_hoisted_34","_hoisted_35","_hoisted_36","toStepTwo","CheckoutStepOne","CheckoutStepTwo","CheckoutStepThree","activeStep","determineCheckoutStepContent","handleStepClick","clickedStepNumber","validClickedStepNumber","stepTitle","cssClass","themeName","_document$querySelect","copyText","confirmAction","deleteItemType","deleteItemName","handleRegret","FormCheckbox","cancerForumName","cancerForumConsent","consent","cancerForumErrorLabel","submitCreateProfile","setConsent","_checkbox$checked","_component_FormCheckbox","nonEmptyStringValidator","phonenumber","postalCodeValidator","scriptLoaded","scriptTag","injectScriptTag","reinitialize","apiKey","cloudChannel","modelEvents","tinymceScriptSrc","outputFormat","conf","vueEditor","elementId","inlineEditor","modelBind","mounting","initWrapper","isMounting","inputPlugins","finalInit","normalizedEvents","prevVal","scriptSrc","rerender","getEditor","elementRef","isEditContext","FormInputDropdown","FormRadioGroup","_props$userInfo$nameO","_props$userInfo","_props$userInfo$descr","_props$userInfo2","_props$userInfo$share","_props$userInfo3","_props$userInfo$manda","_props$userInfo4","_props$userInfo5","_props$userInfo6","_props$userInfo7","_props$userInfo8","_props$userInfo9","_props$userInfo$start","_props$userInfo10","_props$userInfo$start2","_props$userInfo11","_props$userInfo$endDa","_props$userInfo12","_props$userInfo$endTi","_props$userInfo13","_props$userInfo$addre","_props$userInfo14","_props$userInfo$posta","_props$userInfo15","_props$userInfo$city","_props$userInfo16","submitPath","nameOfEvent","shareInMainCalendar","mandatoryRegistration","maxParticipants","contactPersonOther","contactPersonName","contactPersonEmail","contactPersonPhone","endTime","showSpinner","contactTypeEnum","SELF","OTHER","contactType","contactTypeRadioOptions","contactPersonMyself","fieldsConfig","updateConfigAndReturnValidState","showError","showErrorAddress","validAddress","validPostalCode","validCity","startDateValidator","startDateStr","startTimeStr","endDateValidator","endDateStr","endTimeStr","isStartDateValid","isEndDateValid","_props$userInfo17","updateContactType","_component_editor","_ctx$maxParticipants","_component_FormRadioGroup","componentDOM","componentKey","DOMComponentKey","getFormattedData","overlayMode","editModeActive","FormInputNameField","FormInputEmailField","FormInputPhoneField","_props$external$userD","_props$external$userD2","_props$external$userD3","_props$external$userD4","_props$external$userD5","_props$external$userD6","_props$external$userD7","_props$external$userD8","_props$external$userD9","_props$external$userD10","_props$external$userD11","_props$external$userD12","_props$external$userD13","_props$external$userD14","phoneNumber","consentBool","newsletterBool","addressValidator","_component_FormInputNameField","_component_FormInputPhoneField","AttachmentsEditor","FormInputTextarea","subjects","jobInfo","_props$jobInfo","_props$jobInfo$startD","_props$jobInfo2","_props$jobInfo$startT","_props$jobInfo3","_props$jobInfo$endDat","_props$jobInfo4","_props$jobInfo$endTim","_props$jobInfo5","_props$jobInfo$expira","_props$jobInfo6","_props$jobInfo7","_props$jobInfo8","_props$jobInfo9","_props$jobInfo10","_props$jobInfo11","_props$jobInfo12","_props$jobInfo$placeN","_props$jobInfo13","_props$jobInfo$addres","_props$jobInfo14","_props$jobInfo$postal","_props$jobInfo15","_props$jobInfo$city","_props$jobInfo16","_props$jobInfo$isCoun","_props$jobInfo17","_props$jobInfo$isSelf","_props$jobInfo18","_props$jobInfo$contac","_props$jobInfo19","_props$jobInfo$contac2","_props$jobInfo20","_props$jobInfo$contac3","_props$jobInfo21","_props$jobInfo22","_props$jobInfo$hasSpe","_props$jobInfo23","_props$jobInfo$hasSpe2","_props$jobInfo24","activeImage","isPeriodValid","expirationDate","hasImageChanged","jobData","jobTitle","aboutJob","offerDescription","expectationDescription","placeName","isCountrywide","isSelfContactPerson","timeConsumption","hasSpecificTime","hasSpecificDate","isDateValid","dateStr","validatePeriod","formatDateTime","timeString","combinedDatetime","isFutureDate","submitCreateJob","setSubject","setSpecificDateCheckbox","setSpecificTimeCheckbox","handleTimeConsumptionSelector","setImage","setIsCountryWide","_component_AttachmentsEditor","_props$content","_props$content2","_props$content3","galleryTitle","galleryContent","galleryImages","showInputErrors","isGallery","onFileChange","fileTypeDropdown","fileTypeDropdownOptions","dokumentType","_component_FormInputDropdown","groupDescription","_props$content$title","_props$content$descri","postTitle","postContent","postFilesToAdd","postFilesToRemove","fileId","redirectUrl","updateTextarea","_ctx$content$files","_ctx$content","ActionResponseBox","ctaId","displayCopyResponse","handleCopyLink","writeText","actionResponseLifeTime","actionResponseFadeOutTime","_component_ActionResponseBox","fadeOut","extraLink","continueUrlWithData","cancerforumProfileId","deleteProfileAndData","deleteProfile","deleteComment","frivilligjobId","redirectAfterDeleteUrl","domId","wordObject","_props$wordObject","wordArticleUrl","fetchDefinition","dictionaryWordDom","higlightDom","dictionaryWordMountedEvent","DictionaryWord","wordObjects","currentWordObject","wordData","DictionaryDOM","Dictionary","showFilter","filterLetter","displayList","letter","startLettersComplete","startLettersDisplay","_dictionaryData$value","filterOnLetter","letterindex","wordindex","allResults","profileId","scrollTreadInToView","handleInputText","searchMessages","searchResults","startNewMessage","changeChat","onOnchange","resultImgSrc","resultImgAlt","hasNotification","firstMessage","creationDate","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","AttachmentsViewer","userSearchTake","newCommentModel","editCommentModel","userSearchModel","userSearchRef","editCommentId","displayInputError","newChatUsers","attachmentsComponent","chatContentComponent","chats","scrollToBottom","listOfUsers","_store$state$forum$ad","showUserSearch","editCommentObj","editCommentFiles","attachments","editCommentFilesToAdd","editCommentFilesToRemove","showCreateNewChatUsersLabel","handleCreateNewChat","addUserToThread","_userSearchRef$value","getClassModifier","editComment","_callback","deleteThread","_callback2","showSearchForUser","saveEditComment","cancelEditComment","onKeyup","timestamp","commentIndex","author","edited","createdOn","_component_AttachmentsViewer","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","DirectMessageNavigation","DirectMessageThread","_component_DirectMessageNavigation","_component_DirectMessageThread","cardData","cardButtonIcons","activeActionTarget","enterFunctions","currentCardFunctions","functionButton","determineStartOverlayFunction","currentOverlay","exitOnEscape","currentCardElement","currentCardFileLink","getLabelOrEmpty","activeActionLink","updateDate","createdDate","createdBy","renameIcon","deleteIcon","moveIcon","downloadLink","FileListCard","parentMappeName","parentMappeUrl","hasParentMappe","initFetchPosts","startOverlayFunction","overlay","_component_FileListCard","showCustomDonation","otherAmount","updateOtherAmount","modifierClass","note","readMoreUrl","_props$readMoreUrl","initTags","tagsTitle","subjectOptions","tagsDropdown","returnTags","handleSubjectsOptions","newTag","alreadyExisting","handleDeleteTag","clickedTagName","hasProfileImage","isSubmissionError","profilePicture","onPictureChange","picture","submitProfilePicture","t0","_profilePicture$value","profilePicturePath","_profilePicture$value2","_ctx$profilePicture","_ctx$profilePicture2","_ctx$profilePicture$u","ProfilePicture","interests","notificationWhenCommentOnSavedPosts","notificationWhenDirectMessage","notificationWhenNewDocument","notificationWhenPostsOnGroups","addressVisible","phonenumberVisible","emailVisible","hasNewsletterSubscription","deleteProfileRedirectUrl","_props$userData","_props$userData$descr","_props$userData$notif","_props$hasNewsletterS","_props$notificationWh","_props$notificationWh2","_props$notificationWh3","_props$notificationWh4","password","notificationFrequency","isSubscribedToNewsletter","gruppeemner","phoneNumberVisible","activeProfilePicture","notificationfrequencyOptions","setInterest","interest","setNotification","notificationSettings","setNewsletterSubscription","saveProfile","profileImageSrc","startUserInfoOverlay","isFrivilligContext","startDeleteUserOverlay","_component_ProfilePicture","_component_FormInputTextarea","groupsList","hasGroupsButton","noGroupsButton","sliderContentJson","sliderId","groupTitle","userInfoExpanded","componentName","_deltagere$runderegis","componentToShow","changesSaved","saveChanges","closeModal","isIndependent","isStafet","closeFlow","forceUseReturn","_wrapRegExp","Day","Month","Year","SequenceNumber","dayPart","monthPart","yearPart","year","getFullYear","day","month","getMonth","getDate","isValidDate","_cprScales","cprWithoutDash","cprNumber","cprArray","cprMod11Validation","cprValidator","previousStepCallback","nextStepCallback","skipStepCallback","submitCallback","updateBasketCallback","holdId","tshirtSizes","donationAmounts","loggedIn","holdData","holdList","redirectToEditProfile","editProfileLinkText","lysposeMinimumAmount","donationMinimumAmount","_stafetCommonStepsProps","submitRetry","submitErrorTitle","submitErrorMessage","submitReturnButtonText","submitRetryButtonText","DropdownWithTags","_props$content$member","_props$content$member2","_props$content$member3","_props$content$member4","_props$content$notifi","_props$content$notifi2","_props$content$notifi3","_props$content$notifi4","_props$content$member5","_props$content$member6","_props$content$member7","personalInfo","ProfileName","relationToCancer","cancerType","memberDiagnosis","cancerTypeChanged","memberRegion","dateOfBirth","memberDateOfBirth","gender","memberGender","NotificationForNewPostInMyGroups","postInGroup","NotificationForDirectMessage","privateMessage","NotificationForCommentOnMySavedPosts","commentOnMyPost","NotificationForNewCommentInMyGroups","commentInMyGroups","NotificationFrequency","frequency","hasProfilePicture","memberImgName","memberImgSize","changePasswordUrl","genderOptions","setCancerTypes","relationToCancerOptions","_component_DropdownWithTags","cancerTypeOptions","regionOptions","_component_FormInputEmailField","_userInformation$valu","displayErrorMessages","disablePhoneInput","updatedUserInformation","addNDaysToDate","setDate","toISOString","FormInputDateField","_store$state$checkout3","_store$state$checkout4","_store$state$checkout5","_store$state$checkout6","udlaanStartDate","udlaanEndDate","udlaanComment","udlaanMinStartDate","udlaanMinEndDate","udlaanStartDateValidator","udlaanEndDateValidator","isUdlaanStartDateValid","isUdlaanEndDateValid","deliveryPayload","_component_FormInputDateField","_component_CheckoutStepTwo","hideCompany","hideDepartment","FrivilligeCheckoutStepOne","FrivilligeCheckoutStepTwo","checkoutInvoice","_props$userData$first","_props$userData$lastN","_props$userData$email","_props$userData$phone","_props$userData$addre","_props$userData$posta","_props$userData$city","invoiceCopy","newCheckoutSteps","checkoutDeliveryStepTitle","handlePostClick","isMasked","postText","latestComment","commentsCount","hasComments","authorId","_ctx$latestComment","_ctx$latestComment2","_ctx$latestComment3","_ctx$latestComment4","_hoisted_48","_ctx$latestComment5","GroupPost","FeaturedPostSpotCard","featuredPostSpotCards","isMember","isLoggedIn","universId","_props$featuredPostSp","_props$featuredPostSp2","numberOfItems","numFeaturedPosts","posts","totalAmount","getMorePosts","_component_featuredPostSpotCard","_component_GroupPost","redirect","loginUrl","closedGroup","openCalendarOverlay","openMedlemsOverlay","openDeleteOverlay","hasFetchedGruppeemner","detailsPageUrl","__onScrollCallbacks","onscroll","buildThresholdList","thresholds","scrollToFirstError","errorElement","elementRect","viewportOffset","cancelUrl","isMindegave","draft","showUnsavedChangesWarning","_props$draft$contactF","_props$draft","_props$draft$contactL","_props$draft2","_props$draft$mobilePh","_props$draft3","_props$draft$email","_props$draft4","_props$draft$cprNo","_props$draft5","_props$draft$cvrNo","_props$draft6","_props$draft$addressL","_props$draft7","_props$draft$postalCo","_props$draft8","_props$draft$city","_props$draft9","_props$draft$paymentM","_props$draft10","_props$draft11","_props$draft12","_props$draft$companyN","_props$draft13","_props$draft$comments","_props$draft14","_props$draft$isTaxDed","_props$draft15","donationSettings","handleBeforeUnload","cprNumberInput","cprNo","cprNumberInputFilled","cvrNumberInput","cvrNo","cvrNumberInputFilled","paymentMethodInput","paymentMethodInputFilled","anonymousDonationInput","isPrivate","commentsInput","commentsInputFilled","taxDeductibleInput","isTaxDeductible","donationAmountInput","donationAmountInputFilled","customDonationAmountInput","customDonationAmountInputIsValid","_donationSettings$val","forceCustomAmountValidation","minimumAmount","customDonation","valueinputfield","enableCustomDonation","addressIsRequired","cprIsRequired","cvrIsRequired","_props$draft16","_props$draft18","_props$draft19","_props$draft$totalPri","_props$draft20","_props$draft17","showCpr","showAddress","disableCustomDonation","donationPayload","referrer","donationKey","isAuthenticated","creatorProfile","ownsPersonalFundraising","detailItems","loginLogoutButton","editFundraising","qrCode","fundraisingId","_ctx$detailItems","_ctx$creatorProfile","_ctx$creatorProfile2","logoutButtonText","loginButtonText","imgUrlBase64","imgAlt","imgUrl","Intl","NumberFormat","currency","maximumFractionDigits","rawProgress","numberOfImages","breadcrumbs","breadcrumb","crumb","crumbindex","showCardTitle","hidable","imageRatio","imageType","isExternalLink","transformImage","urlTarget","labelColorTheme","iconText","smallTitle","street","locationInfo","phoneLabel","emailLabel","emailAddress","daysOne","timeSlotOne","daysTwo","timeSlotTwo","sortingHandler","sortingValue","isInternalLink","_props$result$isInter","_props$result$url","sortOptions","urlMap","counselling","donations","gallery","patientAssociations","jobs","SearchResultCard","RecipeCard","ActivityCard","FrivilligjobCard","LocationCard","FundraisingCard","SortDropdown","DonationCard","GalleryCard","SimpleCard","hideNoResults","avoidSetQueryInUrl","isMultisearch","_news$recipe$events$d","_store$state$search$q","_store$state$search$r2","hit","totalCount","_store$state$search$s","_store$getters$search","searchLabelCollection","_URLSearchParams$get","_urlMap$type","generalSearch","hideTotalCount","hideTags","showSearchTitleCount","showCtaButton","displayModifications","gridModifications","listModifications","flatResults","flatMap","resultCount","totalCountLabel","searchTitleCountLabel","_getLabel","spotCardIndex","getMoreResults","clearFilterOnTag","gridTypeList","shouldRenderSpotCard","isLastRender","realIndex","_NewsPage$LongreadPag","documentType","_PodcastPage$RecipePa","_component_SortDropdown","facetName","groupKey","getResultImageRatio","getResultImageType","_props$content$groupI","GroupCard","hovedgruppekode","disableInitialSearch","initFetchGroups","resultFocusIndex","isNotCancerforum","searchQuery","showResults","displaySearchResults","newResults","newestResult","isKeydownEvent","_args2","_component_GroupCard","totalNumberOfNotifications","guery","removeNotification","actionsElementId","getActionsElementId","getMoreNotifications","trackData","primaryTagsDisplayed","hasTags","tagDisplay","uniquePrimaryTags","termInput","filterOnTag","startFilterOverlay","isClosedGroup","isUserAwaitingAccess","buttonText","handleClick","getInitialButtonText","zoomIn","zoomOut","rotateLeft","rotateRight","rotateDisabled","zoomDisabled","cancelAnimationFrame","imgs","scrollDisabled","escDisabled","moveDisabled","titleDisabled","maskClosable","teleport","swipeTolerance","zoomScale","maxZoom","minZoom","pinchDisabled","imgRef","imgState","setImgSize","maxScale","lastScale","rotateDeg","initX","initY","lastX","lastY","loadError","gesturing","wheeling","H","N","V","Z","J","Q","ee","te","oe","le","onMouseDown","onMouseMove","ae","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","ue","be","ve","ge","he","we","ye","ze","ke","onWheel","onMousemove","onDblclick","onDragstart","toolbarMethods","rotate","VueEasyLightbox","imgRatio","visibleRef","indexRef","imgsRef","activeImg","mobileSlider","showMultiple","activeIndex","updateActiveImg","_ctx$activeImg$alt","_component_vue_easy_lightbox","_withCtx","showStafetRoundCounter","showDonationReceipt","showStafetTeamSignupReceipt","showStafetTeamCreationReceipt","showStafetTeamUpdateReceipt","showCreateHold","showProfileDeleted","showChangesSaved","showProfileCreated","showStafetDonationReceipt","showDeleteCancerProfileModal","showDeletePostOverlay","showDeleteCommentOverlay","showDeleteEventModal","showFrivilligeShopWrongRoleModal","showCalendarOverlay","showLoginOverlay","startBurgermenu","startSearchoverlay","startDonationFlow","headerOptions","_el","InfoCarouselDOM","createProfileUrl","_props$loginUrl","_props$createProfileU","gtmActive","descriptionWrapper","decodeHtml","htmlRaw","txt","descriptionRaw","descriptionHtml","lotteryRounds","lotteryDropdown","controlNumber","displayFormValidationError","displayLotteryTicketError","lotteryTicket","showResultPage","controlNumberValidationErrorLabel","lotteryDropdownOptions","roundName","roundId","resp","_ctx$lotteryTicket","_ctx$lotteryTicket2","saleLabelText","canMessage","canRemove","fetchGruppemedlemmer","canRemoveMembers","handleRemoveMember","strings","loadMore","getRolleText","roller","gruppeName","rolleName","_ctx$memberCount","member","imageSource","memberRole","memberDetails","memberDataFetched","activeFileName","activeFolderName","activeName","folderDropdown","folderDropdownOptions","submitMoveFile","getLabelFromStore","createHoldUrl","_props$createHoldUrl","reactivateHoldUrl","selectedPreviousTeam","teamlist","handleCreateTeam","handleReactivateTeam","teamindex","orders","orderNumber","toLocaleString","orderIndex","productName","productId","smallScreenMode","userName","SubNavProfile","toggleMobileMenu","_store$state$main$sub","originalTrigger","clonedLink","escCloseHandler","closeMobileMenu","SubNavigationMobile","linkIndex","ariaCurrent","_component_sub_nav_profile","mobileMenuOpen","bodysize","overlayElement","resizeObserver","ResizeObserver","unobserve","contentRect","oldScrollY","subNav","showClass","addScrollCallback","scrolledOverViewportHeight","_DOM$querySelector","_DOM$querySelector2","donateButton","overlayLinksEl","PrimaryLink","SecondaryLink","_document$querySelect2","isSimple","showReturnLink","showFunctionalButtons","primaryLinkFirstLast","linkindex","hasSecondaryLinks","_component_PrimaryLink","_component_SecondaryLink","simpleCta","_store$state$search$a","_store$state$search$a2","searchPageUrl","redirectToSearchPage","totalResultCount","facetGroups","filterResults","closeOverlay","groupindex","facetindex","succesButtonData","successButtonData","SuccessPage","isValidEmail","firstNameFilled","lastNameFilled","isValidPhone","consentChecked","_component_SuccessPage","PersonalDonationStep3","_personalDonationInpu","_personalDonationInpu2","_personalDonationInpu3","_personalDonationInpu4","_personalDonationInpu5","_personalDonationInpu6","_personalDonationInpu7","_personalDonationInpu8","_personalDonationInpu9","_personalDonationInpu10","_personalDonationInpu11","_personalDonationInpu12","_personalDonationInpu13","_personalDonationInpu14","_personalDonationInpu15","donationType","donationPresets","donationPresetDefault","pbsFieldsVisible","donationPresetsSelectedIndex","taxDeductible","pbsRegInput","pbsRegInputFilled","pbsAccnumInput","pbsAccnumInputFilled","donationAmount","paymentButtonTextAddition","presetSingleIndexAmount","presetRecurringIndexAmount","donationTypeChangeHandler","_donationPresetsSelec","onBeforeUnmount","hidePBSfields","showPBSfields","submitDonation","_pbsRegInput$value","_pbsAccnumInput$value","recurringDonation","isCustomAmount","_component_PersonalDonationStep3","_props$groupId","_ctx$memberListData$t","_store$state$main$pag","applicationContent","isInputError","_applicationContent$v","uploadedFiles","uploadedfile","_file$value","_ctx$file","lysposeFormUrl","_props$teamId","_props$lysposeFormUrl","holdetsLys","showLoadMore","lys","_component_DonationCard","getTeamParticipantEmails","addDeltagerFormUrl","donationFormUrl","_props$addDeltagerFor","_props$donationFormUr","participantList","participantEmails","getDonateToParticipantUrl","getLysposeToParticipantUrl","supportParticipantLabel","labelName","getParticipantFullName","_participant$lastName","totalAmountCollected","deltagerFeeAmount","lysposerCount","listOfDonations","hasProfile","listOfRecipients","maxRegistrationCount","_store$state$stafetRo","amountKey","handleSetRoundCount","intValue","handleAddOneRound","handleRemoveOneRound","handleSubmit","StafetRoundCounter","participantData","_component_StafetRoundCounter","StafetRoundCounterAccordion","_component_StafetRoundCounterAccordion","createEventUrl","allowedToEdit","GUID","activities","_component_ActivityCard","_components","BurgerMenu","ConfirmChanges","ConfirmDeleteProfile","OpretHoldOverlay","ChangesSaved","SearchOverlay","LoginOverlay","DonationReceiptOverlay","FilterOverlay","HoldetsDeltagere","HoldetsDonationer","HoldetsLys","ArticleOverlay","SignUpForm","ProfileDeleted","FlowEditModal","PersonalDonation","MemberListOverlay","MemberListOverlayFVL","MemberOverlay","MemberOverlayProfileCard","ClosedGroupOverlay","CreateFolderOverlay","CreateNewFileOverlay","UploadNewFileOverlay","ConfirmDeleteOverlay","DeleteRoleOverlay","MoveFileOverlay","DeleteFrivilligjobOverlay","TilmeldHoldKvittering","TilmeldProfilKvittering","HoldOprettelseKvittering","HoldetsRoundCounterOverlay","HoldRedigerKvittering","DeleteCancerProfileModal","DeletePostOverlay","DeleteCommentOverlay","DeleteEventModal","FrivilligeShopWrongRoleModal","CalendarOverlay","FVLConfirmDeleteProfile","overlayState","displayOverlayContent","startPosition","initialTop","verticalMotion","closeSliderGrip","closeSliderGripBehaviour","novalidate","enctype","argument","argStr","dirtyDate","dirtyNumber","dirtyAmount","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","fourthOfJanuary","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","firstWeek","targetLength","sign","signedYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","dirtyDelimiter","absOffset","hours","minutes","localize","era","ordinalNumber","Y","signedWeekYear","weekYear","quarter","M","L","week","I","isoWeek","dayOfYear","setUTCMonth","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","originalDate","formatLong","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","utcDate","UTC","getHours","getMinutes","getSeconds","getMilliseconds","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","full","long","medium","short","lastWeek","yesterday","today","tomorrow","nextWeek","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","rem100","narrow","abbreviated","wide","am","midnight","noon","morning","afternoon","evening","night","parsePattern","dirtyFormatStr","_options$locale2","_options$locale2$opti","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","allowArrayLike","normalCompletion","didErr","_e2","Setter","_utcDate","_Setter","ValueSetter","validateValue","priority","subPriority","_Setter2","DateToSystemTimezoneSetter","_super2","timestampIsSet","convertedDate","setFullYear","setHours","Parser","dateString","_Parser","EraParser","parseFnResult","mapFn","seconds","twoDigitYear","currentYear","isCommonEra","absCurrentYear","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","dirtyWeek","ISOWeekParser","dirtyISOWeek","DateParser","isLeapYear","DayOfYearParser","dirtyDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setUTCMinutes","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","subFnOptions","setters","tokens","usedTokens","incompatibleTokens","incompatibleToken","usedToken","fullToken","_ret","uniquePrioritySetters","setterArray","_step2","_iterator2","dirtyMonth","dateWithDesiredMonth","daysInMonth","monthIndex","lastDayOfMonth","setMonth","setMinutes","setSeconds","setMilliseconds","dirtyHours","dirtyMinutes","dirtySeconds","dirtyMilliseconds","dirtyDateToCompare","dateToCompare","dirtyLeftDate","dirtyRightDate","dateLeft","dateRight","dateTimeDelimiter","timeZoneDelimiter","timezone","dirtyInterval","_options$step","dates","currentDate","dayOfMonth","endOfDesiredMonth","getDay","dirtyYear","years","months","weeks","days","dateWithMonths","dateWithDays","msToAdd","MODE","hour","minute","second","timezoneZ","timezoneHH","timezoneHHMM","DateTimeFormat","timeZone","hour12","hourCycle","formatToParts","dateTimePattern","plainTime","YY","YYY","YYYY","YYYYY","MM","DDD","MMDD","Www","WwwD","HH","HHMM","HHMMSS","additionalDigits","restDateString","weekday","isBetween","dp__overlay_cell_active","dp__overlay_cell","dp__overlay_cell_disabled","dp__overlay_cell_pad","dp__overlay_cell_active_disabled","dp__cell_in_between","allowStopPropagation","fromEntries","_options$additionalDi","dateStrings","parseYearResult","century","isWeekDate","_year","isoWeekYear","timezoneString","_hours","menuFocused","shiftKeyInMenu","control","setMenuFocused","setShiftKey","monthYear","actionRow","selectionGrid","timePicker","monthPicker","buildMatrix","buildMultiLevelMatrix","setTimePickerBackRef","setSelectionGrid","setTimePicker","setTimePickerElements","arrowRight","arrowLeft","arrowUp","arrowDown","clearArrowNav","setMonthPicker","refSets","menuAppearTop","menuAppearBottom","vNext","vPrevious","enableSeconds","is24","weekPicker","yearPicker","enableTimePicker","static","solo","multiCalendars","toggleOverlay","calendarWrap","calendarDays","openTimePicker","closeTimePicker","incrementValue","decrementValue","openTpOverlay","amPmButton","openYearsOverlay","openMonthsOverlay","nextMonth","prevMonth","nextYear","prevYear","ariaLabels","showSelect","showCancel","showNow","showPreview","previewFormat","enterSubmit","tabSubmit","openMenu","rangeSeparator","textInput","closeOnScroll","modeHeight","allowPreventDefault","closeOnClearValue","closeOnAutoApply","noSwipe","keepActionRow","onClickOutside","defaultedTransitions","defaultedMultiCalendars","defaultedStartTime","defaultedAriaLabels","defaultedFilters","defaultedActionRow","defaultedPreviewFormat","defaultedTextInput","defaultedInline","defaultedConfig","getDefaultPattern","getDefaultStartTime","formatLocale","modelAuto","modelType","partialRange","multiDates","utc","padStart","emitTimezone","internalModelValue","checkBeforeEmit","parseExternalModelValue","autoApply","formatInputValue","emitModelValue","center","menuRef","menuRefInner","inputRef","pickerWrapperRef","altPosition","inputEl","autoPosition","DOCUMENT_FRAGMENT_NODE","openOnTop","menuStyle","xCorrect","setMenuPosition","getScrollableParent","shadowRender","shadow","transitionName","showTransition","menuTransition","calendars","maxDate","arrMapValues","disabledDates","disabledWeekDays","yearRange","allowedDates","disabledTimes","validateDate","validateMonthYearInRange","isDateRangeAllowed","noDisabledRange","checkMinMaxRange","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","minRange","maxRange","matchDate","mapDatesArrToMap","highlightedDates","isValidTime","ignoreTimeValidation","maxTime","minTime","hideNavigationButtons","showLeftIcon","showRightIcon","dark","hideNavigation","disableMonthYearSelect","disableYearSelect","menuClassName","dayClass","calendarCellClassName","monthNameFormat","hideOffsetDates","autoRange","noToday","nowButtonLabel","escClose","spaceConfirm","monthChangeOnArrows","presetDates","partialFlow","preventMinMaxNavigation","multiDatesLimit","reverseYears","arrowNavigation","disableTimeRangeValidation","highlightWeekDays","highlightDisabledDays","teleportCenter","weekNumName","weekStart","weekNumbers","calendarClassName","monthChangeOnScroll","dayNames","customProps","selectText","cancelText","hideInputIcon","clearable","inputClassName","fixedStart","fixedEnd","noHoursOverlay","noMinutesOverlay","noSecondsOverlay","hoursGridIncrement","minutesGridIncrement","secondsGridIncrement","hoursIncrement","minutesIncrement","secondsIncrement","sixWeeks","focusStartDate","showLastInRange","timePickerInline","flowStep","dp__pointer","dp__disabled","dp__input_readonly","dp__input","dp__input_icon_pad","dp__input_valid","dp__input_invalid","dp__input_focus","dp__input_reg","setParsedDate","onKeypress","menuMount","calendarWidth","selectDate","closePicker","isLast","skipButtonRef","headerRefs","useRelative","dp__overlay","dp__overlay_col","dp__btn","dp__button","dp__overlay_action","dp__over_action_scroll","dp__button_bottom","dp__overlay_container","dp__container_flex","dp__container_block","focusGrid","dp__flex_row","onMouseover","stretch","dp__instance_calendar","dp__menu_inner","dp__flex_display","dp__inner_nav_disabled","groupedMonths","groupedYears","setHoverDate","selectMonth","selectYear","onSelected","onHoverValue","onActivate","onToggle","setHoverValue","closeTimePickerBtn","disabledTimesConfig","dateWithoutDays","mstoSub","dp__time_col","dp__time_col_block","dp__time_col_reg_block","dp__time_col_reg_inline","dp__time_col_reg_with_button","dp__time_col_sec","dp__time_col_sec_with_button","openChildCmp","dp__inc_dec_button","dp__inc_dec_button_inline","dp__tp_inline_btn_top","dp__inc_dec_button_disabled","dp__time_display","dp__time_display_block","dp__time_display_inline","dp__tp_inline_btn_bottom","onResetFlow","toggleTimePicker","onOverlayClosed","onAmPmChange","disabledArr","setTime","updateHours","updateMinutes","updateSeconds","getSetDateTime","updateTimeValues","getSecondsValue","assignStartTime","updateTime","handleMonthYearChange","updateMonthYear","fromNav","updateModelValue","showSelectionGrid","toggleMonthPicker","toggleYearPicker","onSetRef","dp__year_disable_select","mappedDates","endX","endY","cmp","dp__marker_dot","dp__marker_line","dp__calendar","dp__calendar_next","triggerTransition","classData","dp__active_date","dp__range_start","dp__cell_disabled","onMouseenter","onMouseleave","De","Qe","$t","Fe","Te","Mt","rn","getCalendarDays","Ft","Tt","ln","ot","Vt","Ea","getMarker","handleScroll","handleSwipe","handleArrow","xt","presetDate","selectCurrentDate","getDayClassData","clearHoverDate","isRangeStart","isRangeEnd","dp__cell_offset","dp__cell_highlight","dp__cell_highlight_active","dp__today","dp__date_hover","dp__range_end","dp__range_between","dp__date_hover_start","dp__date_hover_end","dp__cell_auto_range","dp__cell_auto_range_start","dp__cell_auto_range_end","dp__range_between_week","getSidebarProps","onMount","onUpdateMonthYear","onSelectDate","onHandleSpace","onSetHoverDate","onHandleScroll","onHandleSwipe","onTooltipOpen","onTooltipClose","onOverlayOpened","updateFlowStep","childMount","resetFlow","dp__menu_disabled","dp__menu_readonly","dp__menu","dp__menu_index","dp__relative","switchView","dp__menu_content_wrapper","noTz","onUpdateFlowStep","onFocusMenu","onAutoApply","onRangeStart","onRangeEnd","onInvalidFixedRange","onTimeUpdate","onTimePickerOpen","onTimePickerClose","onRecalculatePosition","onClosePicker","onInvalidSelect","onSelectNow","dp__main","dp__theme_dark","dp__theme_light","dp__flex_display_with_input","Jt","en","tn","zn","closeMenu","clearValue","onScroll","updateInternalModelValue","setMonthYear","parseModel","onSetInputDate","onSetEmptyDate","onRealBlur","onFlowStep","VueDatePicker","isUpdate","personalFundraising","hasPhoneNumber","_props$personalFundra","_props$personalFundra2","_props$personalFundra3","_props$personalFundra4","_props$personalFundra5","_props$personalFundra6","_props$personalFundra7","_props$personalFundra8","_props$personalFundra9","_props$personalFundra10","_props$personalFundra11","_props$personalFundra12","_props$personalFundra13","_props$personalFundra14","_props$personalFundra15","_props$personalFundra16","_props$personalFundra17","_props$personalFundra18","_props$personalFundra19","headline","Headline","dateOfbirth","DateOfBirth","fundraisingTarget","FundraisingTarget","dateOfdeath","DateOfDeath","EndDate","fundraiseReason","FundraiseReason","fundraisePersonDescription","FundraisePersonDescription","personalStoryImage","personalStoryImages","fundraiseImage","datePickerRefDateOfBirth","datePickerRefDateOfDeath","datePickerRefEndDate","notificationSms","SmsNotification","notificationEmail","EmailNotification","isUploadingFundraiseImage","headlineFilled","dateOfbirthFilled","endDateFilled","dateOfdeathFilled","fundraisingTargetFilled","fundraiseReasonFilled","fundraisePersonDescriptionFilled","personalStoryImageFilled","fundraiseImageFilled","phoneNumberFilled","fundraiseImageUploader","Id","personalStoryImageUploader","singlePersonalStoryImageUploader","disableSubmit","showPhoneNumberInput","discardFileId","dateOfDeath","fundraiseDescription","coverImage","selectEndDate","selectDateOfBirth","selectDateOfDeath","customPosition","previousButtonPressed","defaultRedirectUrl","deleteButtonPressed","formatFilesize","roundedMb","_component_VueDatePicker","_hoisted_54","imageIndex","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","_hoisted_75","_hoisted_76","_hoisted_77","_hoisted_78","_hoisted_80","mapImage","Name","Url","canReply","subComments","editCommentContent","subCommentContent","subCommentFilesToAdd","isAddingSubcomment","isEditingComment","addSubCommentRef","subCommentSubmitButtonDisabled","handleSaveEditedComment","handleEditComment","handleDeleteComment","handleCancelEditedComment","_props$comment","_props$comment2","scrollToAddSubComment","_addSubCommentRef$val","canEdit","subComment","indexSub","_component_PostComment","canLike","PostComment","newComments","subcomments","handleLike","handleSave","startDeleteOverlay","scrollToElement","newCommentContent","newCommentFilesToAdd","isSubmitButtonDisabled","hasMemberAccess","openMemberOverlay","consentCheckbox","readyToSubmit","sendInfomationToServer","messageLabelText","BuySection","isSoldOut","products","productsSearch","materials","materialsSearch","frivilligUrlMap","ProductCard","MaterialCard","NoSearchResults","webshopContext","_products$productsSea","_materialsSearch$prod","_frivilligUrlMap$type","webshopSearch","gridType","_products$materials$p","_ctx$result","fundingAmount","_ctx$result2","formattedString","_ctx$result3","queryString","ProjectCard","SearchFilteredTags","initFetchProjects","_ctx$results","_ctx$tags","_component_SearchFilteredTags","_component_ProjectCard","receiptResults","orderDate","product","productTitle","productTitleAdditional","isUdlaansvare","productQuantity","productPrice","deliveryType","deliveryPrice","initFetchRelays","relays","getRelayDescription","relay","timestampStart","timestampEnd","dateStart","dateEnd","monthStart","monthEnd","dateFromTo","toLocaleDateString","activeTimeslot","roleActivityId","roleId","roleGroupId","roleGroupCheckbox","roleGroupTextField","activitySelectOptions","groupSelectOptions","kode","roleSelectOptions","roleGroupTextFieldFilled","handleActivitiesSelector","handleRoleSelector","handleGroupSelector","handleGroupCheckbox","handleGroupTextField","handleSubmitRoleRequest","aktivitetsId","rolleId","gruppekode","gruppeText","roleGroup","RequestRole","ActiveRolesList","_component_ActiveRolesList","_component_RequestRole","overlayType","overlayComponent","createFundraise","currentUrl","existingItems","getItemFromStorage","nonMatchingKeysObject","getListWithNonMatchingValues","updatedItems","setItemToStorage","existingList","formularName","formular","addToVuex","handleFighterCheck","submitFormular","updateItemFromStorage","submitFormular2","clearFormular","startSignUp","nextStepLabel","previousStepLabel","skipStepLabel","excludeMail","numberOfAdults","numberOfChildren","adults","callbackData","totalNumberOfParticipants","validateParticipants","handleCallbackData","isNumberOfParticipantsValid","isAdultsValid","isChildrenValid","fieldsValiditiy","setNumberOfAdults","updateAdults","setNumberOfChildren","registerDeltagereSelectAdultNumberLabel","registerDeltagereSelectAdultNumberErrorMessage","registerDeltagereSelectChildNumberLabel","registerDeltagereSelectChildNumberErrorMessage","registerDeltagereAdultTitle","registerDeltagereNameLabel","registerDeltagereNameErrorMessage","registerDeltagereEmailLabel","registerDeltagereEmailErrorMessage","registerDeltagereChildTitle","inTotalLabel","inTotalPrice","StafetHeader","StafetAddDeltager","StafetPayment","StafetActions","holdkode","adultPrice","childPrice","updateAddParticipants","yourInformationTotalNewAdultDeltagereLabel","yourInformationTotalDeltagereLabel","yourInformationTotalNewChildDeltagereLabel","updateBasket","goToPayment","_component_StafetHeader","_component_StafetAddDeltager","_component_StafetPayment","yourInformationTotalTitle","yourInformationTotal","_component_StafetActions","formNavigationLastStep","dependentField","dependentFieldValue","dependentFieldValidator","STAFET_JOIN_A_TEAM","STAFET_DONATION","STAFET_JOIN_AS_FIGHTER","STAFET_CREATE_A_TEAM","ADD_DELTAGERE","shirtSize","isFighterFreeLunch","hold","storedFields","sessionStorageIdentifierEnum","updateLocalRefs","stepModel","validateField","fieldValidator","handleErrorMessage","selectYourHoldTitle","selectYourHoldLabel","selectYourHoldErrorMessage","isChildBoolLabel","joinAsFighterTitle","joinAsFighterDescription","joinAsFighterBoolLabel","selectYourFighterTshirtTitle","selectYourFighterTshirtDescription","selectYourFighterTshirtLabel","selectYourFighterTshirtErrorMessage","fighterArrangementTitle","fighterArrangementDescription","fighterArrangementBoolLabel","formNavigationNextStep1","TEAM","STAFET","DELTAGER","isTeamSelected","isTeam","supportTypeEnum","isDeltagerSelected","isDeltager","isSupportTypeValid","isTeamValid","teamValidator","isDeltagerValid","deltagerValidator","supportTypeHandler","teamHandler","participantHandler","supportSelectorConfig","yourSupportSelectorDropdownLabel","shown","yourSupportSelectorDropdownErrorMessage","defaultOption","yourSupportSelectorDropdownPlaceholder","yourSupportSelectorDropdownOptionStafet","yourSupportSelectorDropdownOptionHold","yourSupportSelectorDropdownOptionDeltager","yourSupportSelectorDropdownHoldLabel","yourSupportSelectorDropdownHoldErrorMessage","yourSupportSelectorDropdownHoldPlaceholder","yourSupportSelectorDropdownDeltagerLabel","showErrorMessage","yourSupportSelectorDropdownDeltagerErrorMessage","yourSupportSelectorDropdownDeltagerPlaceholder","handleChangeCallback","numberOfDonations","isLysposerDedicated","addPersonalNote","dedicatedTypeAll","lysposeDedicatedToAll","lightPersonalNoteAll","donationAmountList","dedicationTypeOptions","inMemoryOf","inSupportOf","lysposeDedicatedTo","personalNote","lysposeDedicatedType","_props$data","dedicatedTypeValid","lightDedicatedToValid","setDedicationTypeAll","setLightDedicatedToAll","setPersonalNoteAll","toggleAddPersonalNote","toggleDedicatedLightBag","updateLightDedicatedTo","updatePersonalNote","updateDedicationType","isLysposeDedicatedCheckboxLabel","personalNoteCheckboxLabel","personalizeLightBagsTitle","dedicationTypeTextLabel","dedicationTypePlaceholder","dedicationTypeErrorMessage","lightDedicatedToTextLabel","lightDedicatedToErrorMessage","lightDedicatedToHelpTextLabel","lightDedicatedToAll","personalNoteTextLabel","personalNoteErrorMessage","personalNoteHelpTextLabel","SupportSelector","StafetLysPoserList","AdvancedRadio","lysposeQuantityOption1","lysposeQuantityOption2","lysposeQuantityOption3","donationPerLightBag","lightBagMeta","supportSelector","editorControlledDonationAmountList","taendEtLysUnitLabel","StafetFlowLightBagsMetaListLabels","taendEtLysCustomizeLysposeBoolDedicatedLabel","taendEtLysCustomizeLysposeBoolOwnNoteLabel","taendEtLysLysposeTitle","taendEtLysLysposeDedicatedToLabel","taendEtLysLysposeDedicatedToErrorMessage","taendEtLysLysposeDedicatedToSubtext","taendEtLysLysposePersonalNoteLabel","taendEtLysLysposePersonalNoteSubtext","taendEtLysLysposePersonalNoteErrorMessage","taendEtLysLysposeDedicatedTypeLabel","taendEtLysLysposeDedicatedTypePlaceholder","taendEtLysLysposeDedicatedTypeErrorMessage","taendEtLysLysposeDedicatedTypeInMemoryOf","taendEtLysLysposeDedicatedTypeInSupportOf","showDonationAmoutErrorMessage","showDonationPerLightBagErrorMessage","chooseCustomAmount","setDonationAmount","updateLightBagMeta","updateSupportSelector","setDonationPerLightBag","taendEtLysTitle","taendEtLysDescription","_component_AdvancedRadio","taendEtLysSelectQuantityLabel","taendEtLysSelectCustomQuantityLabel","taendEtLysSelectQuantityErrorMessage","_component_SupportSelector","taendEtLysSelectAmountLabel","taendEtLysSelectAmountPlaceholder","taendEtLysSelectAmountErrorMessage","taendEtLysCustomizeLysposeTitle","_component_StafetLysPoserList","formNavigationNextStep2","formNavigationSkipStep","formNavigationPrevStep","addMoreParticipants","adultParticipants","childParticipants","totalLength","toggleAddMoreParticipants","registerDeltagereTitle","registerDeltagereBoolLabel","formNavigationNextStep3","disableValidation","_userInputs$find","_getFieldValue3","_getFieldValue4","_getFieldValue5","_getFieldValue6","_getFieldValue7","_getFieldValue8","showFirstNameErrorMessage","showLastNameErrorMessage","showEmailErrorMessage","showPhoneErrorMessage","showConsentErrorMessage","setFirstTimeFighter","yourInformationTitle","yourInformationFirstTimeFighterBoolLabel","yourInformationFirstNameLabel","yourInformationFirstNameErrorMessage","yourInformationLastNameLabel","yourInformationLastNameErrorMessage","yourInformationEmailLabel","yourInformationEmailErrorMessage","yourInformationPhoneNumberLabel","yourInformationPhoneNumberErrorMessage","yourInformationConsentBoolLabel","yourInformationConsentBoolErrorMessage","yourInformationNewsLetterBoolLabel","yourInformationFighterNewsletterBoolLabel","yourInformationTotalYourDeltagergebyrLabel","formNavigationNextStep4","finalStepName","toReversed","allStepsComplete","stepData","completed","currentStepName","StafetDeltagPaaHoldStepOne","StafetDeltagPaaHoldStepTwo","StafetDeltagPaaHoldStepThree","StafetDeltagPaaHoldStepFour","FormStepSubmitting","headerSteps","mapStafetHeaderSteps","_getCommonComputedFie","getCommonComputedFields","stepsConfig","handleStepCompleted","unCompletedSteps","yourInformationTotalFighterLabel","yourInformationTotalTaendteLysLabel","setFighterNewsletter","tshirtSize","participateInFreeLunch","showTshirtSizeErrorMessage","setParticipateInFreeLunch","setTshirtSize","formNavigationPreviousStep","setJoinATeam","setIsChild","fighterJoinHoldTitle","fighterJoinHoldDescription","fighterJoinHoldCheckboxLabel","fighterJoinHoldCheckboxErrorMessage","fighterIsChildCheckboxLabel","fighterJoinHoldDropdownLabel","fighterJoinHoldDropdownErrorMessage","yourInformationNewsletterBoolLabel","fighterJoinHoldTotalTitle","fighterJoinHoldTotal","fighterJoinHoldTotalFighter","fighterJoinHoldTotalDeltagergebyr","StafetDeltagSomFighterStepOne","StafetDeltagSomFighterStepTwo","StafetDeltagSomFighterStepThree","donationTypeEnum","PRIVATE","COMPANY","yourSupportPrivateSupportRadioLabel","yourSupportCompanySupportRadioLabel","isDonationAmountValid","showDonationAmountErrorMessage","updateComment","updateDonationType","yourSupportTitle","yourSupportPrivateSupportRadioErrorMessage","yourSupportAmountLabel","yourSupportAmountPlaceholder","yourSupportAmountErrorMessage","yourSupportCommentLabel","yourSupportCommentPlaceholder","yourSupportCommentErrorMessage","_props$userData2","_props$userData3","showCprErrorMessage","setTaxDeduction","yourInformationAnonymousCheckbox","yourInformationAnonymousCheckboxErrorMessage","yourInformationTaxDeductionCheckbox","yourInformationTaxDeductionCheckboxErrorMessage","yourInformationTaxDeductionCheckboxTooltip","yourInformationCprLabel","yourInformationCprErrorMessage","_props$userData4","companyAddress","companyPostalCode","companyCity","companyWebsite","showCvrErrorMessage","showCompanyNameErrorMessage","showCompanyAddressErrorMessage","yourInformationCompanyTitle","yourInformationCompanyNameLabel","yourInformationCompanyNameErrorMessage","yourInformationCompanyAddressLabel","yourInformationCompanyZipCodeLabel","yourInformationCompanyCityLabel","yourInformationCompanyAddressErrorMessage","yourInformationCompanyWebAddressLabel","yourInformationCompanyWebAddressErrorMessage","yourInformationCompanyLogoLabel","yourInformationCompanyLogoFileFormats","yourInformationCvrLabel","yourInformationCvrErrorMessage","StafetDonationStepPrivat","StafetDonationStepVirksomhed","StafetDonationStepOne","StafetDonationStepTwo","minimumDonationAmount","isFormUnavailable","formUnavailable","yourInformationTotalDonationHold","yourInformationTotalDonationDeltager","yourInformationTotalDonationStafet","formNavigationNextStep","_props$userData$isAno","yourInformationAnonymousLabel","StafetDonationTaendLysStepOne","StafetDonationTaendLysStepTwo","StafetDonationTaendLysStepThree","showDescriptionErrorMessage","showTeamNameErrorMessage","showDonationGoalErrorMessage","showSloganErrorMessage","aboutYourHoldTitle","aboutYourHoldHoldnavnLabel","aboutYourHoldHoldnavnErrorMessage","aboutYourHoldDonationGoalLabel","aboutYourHoldDonationGoalErrorMessage","aboutYourHoldDonationGoalSubtext","personalizeYourHoldTitle","personalizeYourHoldDescription","personalizeYourHoldLogoLabel","personalizeYourHoldLogoFileFormats","personalizeYourHoldReasonLabel","personalizeYourHoldReasonErrorMessage","personalizeYourHoldSloganLabel","personalizeYourHoldSloganErrorMessage","StafetOpretHoldStepOne","newsLetterBool","StafetOpretHoldStepTwo","editProfileLink","removeProfileLink","editPasswordLink","_props$userData$newsl","_props$userData$fight","mailSettingsBool","mailSettingsFighterNewsletterBool","setMailSettingBool","setMailSettingFighterNewsletterBool","openConfirmPageOverlay","openDeletePageOverlay","_ctx$userData$phoneNu","editProfilePasswordLinkLabel","editProfileInformationLinkLabel","emailSettingsTitle","emailSettingsDescription","emailSettingsCheckboxNewsletterLabel","emailSettingsCheckboxFighterNewsletterLabel","emailSettingsSaveChangesLabel","deleteProfileDescription","deleteProfileButtonLabel","imgTopPosSticky","imgTopPosStickyInt","stickySliderElementImageContainer","observer","IntersectionObserver","handleIntersection","rootMargin","stickyElm","imageContainer","totalContainerHeight","handleResize","containerRight","textContentArea","isIntersecting","intersectionRect","changeBackgroundColor","changeImage","boundingClientRect","nextElement","getNextElement","currentIndex","containers","parentContainer","imageContainers","contentWrapper","textContentHeight","imgHeight","participantsText","captainText","captains","membersCount","donationGoals","donationGoalsText","currencyText","donationTotal","captain","TeamListCard","filterShown","teamsShownAmount","_component_TeamListCard","numberOfDeltagere","initContent","_store$state$main$use","totalNumberOfPosts","initialItemsCount","itemsCount","_store$state$basket2","itemsCountString","startMegaMenu","FactBox","SecondaryArticleSpotsDOM","contentjson","SecondaryArticleSpots","TooltipDOM","tooltipname","PageIdInit","Accordion","ActionResponseBoxDOM","ActiveGroupsDOM","ActiveGroups","ActiveRoleListCardDOM","roleCard","ActiveRolesListDOM","ActivityCardDOM","AdvancedRadioDOM","tooltiptext","errormessagelabel","helpmessagelabel","isrequired","radiooptions","AmountSelectorDOM","ArticleAnchor","ArticleAnchors","CommunityAttachmentsDOM","CommunityAttachmentsViewerDOM","BasketDOM","Basket","BasketAsideDOM","BasketCardDOM","BreadCrumb","primaryLinksData","secondaryLinksData","simpleCtaElement","simpleCtaData","BuySectionDOM","_BuySectionDOM$datase","_BuySectionDOM$datase2","_BuySectionDOM$datase3","_BuySectionDOM$datase4","_BuySectionDOM$datase5","CalendarOverlayDOM","_parseInt","_parseInt2","CaseCardDOM","CaseCarouselDOM","CaseCarousel","CaseModuleDOM","CaseModule","CategoryPickerDOM","CategoryPicker","ChangesSavedDOM","CheckoutContentDOM","CheckoutContent","CheckoutHeader","CheckoutStepThreeDOM","CheckoutStepTwoDOM","ClosedGroupOverlayDOM","ColorPreview","ConfirmChangesDOM","ConfirmDeleteOverlayDOM","ConfirmDeleteProfileDOM","ContactBanner","CarouselDOM","ContributionSelectorDOM","ContributionSelector","CreateCancerForumProfileDOM","CreateCancerForumProfile","CreateEventDOM","handleComponentProps","CreateEvent","CreateFolderOverlayDOM","_CreateFolderOverlay$","CreateFrivilligeProfileDOM","CreateFrivilligeProfile","CreateFrivilligJobDOM","CreateFrivilligJob","CreateGalleryDOM","_CreateGalleryDOM$dat","_CreateGalleryDOM$dat2","CreateGallery","CreateNewFileOverlayDOM","CreatePostDOM","_CreatePostDOM$datase","_CreatePostDOM$datase2","_CreatePostDOM$datase3","_CreatePostDOM$datase4","CreatePost","CTABoxDOM","CTABox","DeleteCancerProfileModalDOM","DeleteEventModalDOM","DeleteFrivilligjobOverlayDOM","DeleteRoleOverlayDOM","DeliveryAddressDOM","DeliveryCardDOM","DictionaryListDOM","showfilter","DictionaryList","DirectMessageNavigationDOM","externalData","DirectMessagesContentDOM","exturnalData","DirectMessagesContent","DirectMessageThreadDOM","DocumentAndFolderListDOM","_DocumentAndFolderLis","_DocumentAndFolderLis2","DocumentAndFolderList","DonationAmountDOM","DonationAmount","DonationCardDOM","DonationReceiptOverlayDOM","DropdownWithTagsDOM","tagstitle","selectoptions","EditFrivilligProfileDOM","EditFrivilligProfile","FeaturedGroupsDOM","FeaturedGroups","FeaturedPostSpotCardDOM","FeatureNavigationTeamDOM","FeatureNavigationTeam","FileListCardDOM","FlowEditModalDOM","FlowHeaderDOM","FlowHeader","FormAddressFieldDOM","FormAddressFieldGroupDOM","FormAddressFieldGroup","FormCheckboxDOM","FormInputCprFieldDOM","FormInputCprField","FormInputCvrFieldDOM","FormInputCvrField","FormInputDateFieldDOM","FormInputDropdownDOM","FormInputEmailFieldDOM","FormInputNameFieldDOM","FormInputPhoneFieldDOM","FormInputTextareaDOM","FormInputTextFieldDOM","FormRadioGroupDOM","FormStepSubmittingDOM","FormStepZeroDOM","FormStepZero","ForumEditProfileDOM","ForumEditProfile","FrivilligeCheckoutContentDOM","_externalData$userDat","FrivilligeCheckoutContent","FrivilligeCheckoutStepOneDOM","FrivilligeCheckoutStepTwoDOM","FrivilligePostsListDOM","FrivilligePostsList","FrivilligeShopWrongRoleModalDOM","FrivilligGroupHeroDOM","gruppeIsClosed","FrivilligGroupHero","FrivilligjobAsideDOM","deleteRedirectUrl","FrivilligjobAside","FrivilligjobCardDOM","FullscreenMediaDOM","replaceWith","currentScrollTopVal","currentScrollTopValGeneral","maxScreenWidth","minBoxWidth","elementDistanceFromDocumentTop","scrolledFromTop","handleIntersect","modifiedRatio","newMaxWidth","currentRatio","intersectionRatio","scrollingDown","scrollingUp","ratioModifierFunction","imageAtTopOfPage","newOpacity","fullscreenMediaElement","FullscreenMedia","FundraiseFormDOM","_FundraiseFormDOM$dat","FundraiseForm","FundraisingAsideVueDOM","FundraisingAsideVue","FundraisingCardDOM","FundraisingHeroDOM","FundraisingHero","FVLConfirmDeleteProfileDOM","GalleryCardDOM","_JSON$parse","GeneralSearch","mountOn","GroupCardDOM","GroupDetailsDOM","GroupPostDOM","GroupSearchResultDOM","GroupSearchResult","GruppeadgangsanmodningListDOM","searchGuid","GruppeadgangsanmodningList","GtmTrackerDOM","trackJson","GtmTracker","numberOfPrimaryTags","HeroGeneralSearch","HeroSectionCancerforumDOM","HeroSectionCancerforum","HoldetsDeltagereDOM","teamid","HoldetsDonationerDOM","HoldetsLysDOM","HoldetsRoundCounterOverlayDOM","HoldOprettelseKvitteringDOM","ImageGalleryDOM","ImageGallery","IndependentHeader","InfoCarousel","LocationCardDOM","LoginOverlayDOM","LotteryFormDOM","LotteryForm","MaterialCardDOM","MemberListOverlayDOM","MemberListOverlayFVLDOM","MemberOverlayDOM","MemberOverlayProfileCardDOM","MitIdLogout","MoveFileOverlayDOM","NoSearchResultsDOM","NotificationListDOM","NotificationList","OpretHoldOverlayDOM","stafetkode","OrdreOverviewDOM","OrdreOverview","closeArticleOverlay","clickHandler","ARTICLEOVERLAY_DATA","lastNotFound","getLastAnchor","firstNotFound","getFirstAnchor","SubNavigation","TheHeader","componentsToInititalize","openArticleOverlay","DOM_LINKS","overlayLinks","richTextElement","OverlayLinkInterceptor","PageOverlay","openOverlayAutomatically","contentComponentToShow","PersonalDonationStep2aDOM","PersonalDonationStep2a","PersonalDonationStep3DOM","PersonalFundraisingDOM","CoverImage","PersonalFundraising","PickUpAddressDOM","PodcastSliderCardDom","PostAsideDOM","PostAside","PostCommentDOM","_PostCommentDOM$datas","_PostCommentDOM$datas2","_PostCommentDOM$datas3","PostCommentsDOM","_PostCommentsDOM$data","_PostCommentsDOM$data2","PostComments","PostHeaderDOM","PostHeader","PostHeaderAddCommentDOM","PostHeaderAddComment","PostsListDOM","_PostsListDOM$dataset","_groupData$numberOfMe","_groupData$id","_PostsListDOM$dataset2","groupData","PostsList","PreFooter","ProductCardDOM","ProductDetailDOM","ProductDetail","ProductList","ProductsCardsSliderDOM","ProductsCardsSlider","ProfileDeletedDOM","ProfilePictureDOM","_ProfilePictureDOM$da","_ProfilePictureDOM$da2","ProjectCardDOM","ProjectsListDOM","ProjectsList","ReceiptContentDOM","ReceiptContent","RelayListDOM","RelayList","ReportCardDom","RequestRoleDOM","RolesFormContentDOM","RolesFormContent","SearchAndCTADOM","SearchAndCTA","SearchFilteredTagsDOM","searchpageurl","SessionStorageFormularTestDOM","SessionStorageFormularTest","SignUpButtonDOM","SignUpButton","SignUpFormDOM","SimpleCardDOM","SortDropdownDOM","SpotCardGridDOM","StafetActionsDOM","StafetAddDeltagerDOM","StafetAddMoreDeltagerFlowDOM","_externalData$stafetI","StafetAddMoreDeltagerFlow","StafetDeltagPaaHoldFlowDOM","_externalData$holdId","_externalData$tshirtS","_externalData$holdLis","_externalData$amounts","_externalData$lyspose","_externalData$lyspose2","_externalData$lyspose3","_externalData$lyspose4","amounts","StafetDeltagPaaHoldFlow","StafetDeltagPaaHoldStepFourDOM","StafetDeltagPaaHoldStepOneDOM","StafetDeltagPaaHoldStepThreeDOM","StafetDeltagPaaHoldStepTwoDOM","StafetDeltagSomFighterFlowDOM","_StafetDeltagSomFight","StafetDeltagSomFighterFlow","StafetDeltagSomFighterStepOneDOM","StafetDeltagSomFighterStepThreeDOM","StafetDeltagSomFighterStepTwoDOM","StafetDonationFlowDOM","_externalData$minimum","_externalData$deltage","StafetDonationFlow","StafetDonationStepOneDOM","StafetDonationStepPrivatDOM","StafetDonationStepTwoDOM","StafetDonationStepVirksomhedDOM","StafetDonationTaendLysFlowDOM","StafetDonationTaendLysFlow","StafetDonationTaendLysStepOneDOM","StafetDonationTaendLysStepThreeDOM","StafetDonationTaendLysStepTwoDOM","StafetEditHoldFlowDOM","_externalData$holdnav","_externalData$holdDat","holdnavne","StafetEditHoldFlow","StafetHeaderDOM","StafetFlowLightBagsMetaListDOM","StafetFlowLightBagsMetaList","StafetOpretHoldFlowDOM","StafetOpretHoldFlow","StafetOpretHoldStepOneDOM","StafetOpretHoldStepTwoDOM","StafetPaymentDOM","StafetProfileFormDOM","_StafetProfileFormDOM","_StafetProfileFormDOM2","_StafetProfileFormDOM3","StafetProfileForm","StafetRoundCounterDOM","StafetRoundCounterAccordionDOM","StickySliderElement","SubbrandHeader","SuccessPageDOM","SupportSelectorDOM","TeamListDOM","TeamList","TeamListCardDOM","TextEditorDOM","TextEditor","ThemeCardDOM","TilmeldHoldKvitteringDOM","loginurl","createprofileurl","hasprofile","TilmeldProfilKvitteringDOM","UploadNewFileOverlayDOM","UserPostsListDOM","_exturnalData$userDat","_UserPostsListDOM$dat","exturnal","UserPostsList","WebshopHeader","WebshopPaymentSelectorDOM"],"sourceRoot":""}